aboutsummaryrefslogtreecommitdiffstats
path: root/document/src/tests/documenttestcase.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'document/src/tests/documenttestcase.cpp')
-rw-r--r--document/src/tests/documenttestcase.cpp104
1 files changed, 44 insertions, 60 deletions
diff --git a/document/src/tests/documenttestcase.cpp b/document/src/tests/documenttestcase.cpp
index 089ab5a2a2d..fa59358f6d3 100644
--- a/document/src/tests/documenttestcase.cpp
+++ b/document/src/tests/documenttestcase.cpp
@@ -112,7 +112,7 @@ TEST(DocumentTest, testTraversing)
type.addField(primitive1);
type.addField(structl1s1);
- Document doc(type, DocumentId("doc::testdoc"));
+ Document doc(type, DocumentId("id:ns:test::1"));
doc.setValue(primitive1, IntFieldValue(1));
StructFieldValue l1s1(struct3);
@@ -184,7 +184,7 @@ TEST(DocumentTest, testVariables)
iiiaV.add(iiaV);
}
- Document doc(type, DocumentId("doc::testdoc"));
+ Document doc(type, DocumentId("id:ns:test::1"));
doc.setValue(iiiarrF, iiiaV);
{
@@ -291,7 +291,7 @@ TEST(DocumentTest, testModifyDocument)
type.addField(primitive1);
type.addField(structl1s1);
- Document::UP doc(new Document(type, DocumentId("doc::testdoc")));
+ Document::UP doc(new Document(type, DocumentId("id:ns:test::1")));
doc->setValue(primitive1, IntFieldValue(1));
StructFieldValue l1s1(struct3);
@@ -364,7 +364,7 @@ TEST(DocumentTest, testSimpleUsage)
type->addField(strF);
DocumentTypeRepo repo(*type);
- Document value(*repo.getDocumentType("test"), DocumentId("doc::testdoc"));
+ Document value(*repo.getDocumentType("test"), DocumentId("id:ns:test::1"));
// Initially empty
EXPECT_EQ(size_t(0), value.getSetFieldCount());
@@ -393,7 +393,7 @@ TEST(DocumentTest, testSimpleUsage)
value2.deserialize(repo, *buffer);
EXPECT_TRUE(value2.hasValue(intF));
EXPECT_EQ(value, value2);
- EXPECT_EQ(DocumentId("doc::testdoc"), value2.getId());
+ EXPECT_EQ(DocumentId("id:ns:test::1"), value2.getId());
// Various ways of removing
{
@@ -446,11 +446,11 @@ TEST(DocumentTest, testSimpleUsage)
// Output
EXPECT_EQ(
- std::string("Document(doc::testdoc, DocumentType(test))"),
+ std::string("Document(id:ns:test::1, DocumentType(test))"),
value.toString(false));
EXPECT_EQ(
std::string(
-" Document(doc::testdoc\n"
+" Document(id:ns:test::1\n"
" DocumentType(test, id -877171244)\n"
" : DocumentType(document) {\n"
" StructDataType(test.header, id 306916075) {\n"
@@ -465,7 +465,7 @@ TEST(DocumentTest, testSimpleUsage)
" " + value.toString(true, " "));
EXPECT_EQ(
std::string(
- "<document documenttype=\"test\" documentid=\"doc::testdoc\">\n"
+ "<document documenttype=\"test\" documentid=\"id:ns:test::1\">\n"
" <int>1</int>\n"
" <long>2</long>\n"
"</document>"),
@@ -483,11 +483,10 @@ TEST(DocumentTest, testSimpleUsage)
// Refuse to accept non-document types
try{
StructDataType otherType("foo", 4);
- Document value6(otherType, DocumentId("doc::"));
+ Document value6(otherType, DocumentId("id:ns:foo::1"));
FAIL() << "Didn't complain about non-document type";
} catch (std::exception& e) {
- EXPECT_THAT(e.what(), HasSubstr("Cannot generate a document with "
- "non-document type"));
+ EXPECT_THAT(e.what(), HasSubstr("Cannot generate a document with non-document type"));
}
// Refuse to set wrong types
@@ -563,7 +562,7 @@ TEST(DocumentTest, testReadSerializedFile)
ByteBuffer buf(len);
lseek(fd,0,SEEK_SET);
if (read(fd, buf.getBuffer(), len) != (ssize_t)len) {
- throw vespalib::Exception("read failed");
+ throw vespalib::Exception("read failed");
}
close(fd);
@@ -597,7 +596,7 @@ TEST(DocumentTest, testReadSerializedFileCompressed)
ByteBuffer buf(len);
lseek(fd,0,SEEK_SET);
if (read(fd, buf.getBuffer(), len) != len) {
- throw vespalib::Exception("read failed");
+ throw vespalib::Exception("read failed");
}
close(fd);
@@ -645,6 +644,7 @@ namespace {
* When adding new fields to the documents, use the version tagged with each
* file to ignore these field for old types.
*/
+
TEST(DocumentTest,testReadSerializedAllVersions)
{
const int array_id = 1650586661;
@@ -679,8 +679,7 @@ TEST(DocumentTest,testReadSerializedAllVersions)
// Create a memory instance of document
{
- Document doc(*docType,
- DocumentId("doc:serializetest:http://test.doc.id/"));
+ Document doc(*docType, DocumentId("id:ns:serializetest::http://test.doc.id/"));
doc.set("intfield", 5);
doc.set("floatfield", -9.23);
doc.set("stringfield", "This is a string.");
@@ -688,8 +687,7 @@ TEST(DocumentTest,testReadSerializedAllVersions)
doc.set("doublefield", 98374532.398820);
doc.set("bytefield", -2);
doc.setValue("rawfield", RawFieldValue("RAW DATA", 8));
- Document docInDoc(*docInDocType,
- DocumentId("doc:serializetest:http://doc.in.doc/"));
+ Document docInDoc(*docInDocType, DocumentId("id:ns:docindoc::http://doc.in.doc/"));
docInDoc.set("stringindocfield", "Elvis is dead");
//docInDoc.setCompression(CompressionConfig(CompressionConfig::NONE, 0, 0));
doc.setValue("docfield", docInDoc);
@@ -735,7 +733,6 @@ TEST(DocumentTest,testReadSerializedAllVersions)
std::vector<TestDoc> tests;
tests.push_back(TestDoc(TEST_PATH("data/document-cpp-v8-uncompressed.dat"), 8));
- tests.push_back(TestDoc(TEST_PATH("data/document-cpp-v7-uncompressed.dat"), 7));
tests.push_back(TestDoc(jpath + "document-java-v8-uncompressed.dat", 8));
for (uint32_t i=0; i<tests.size(); ++i) {
int version = tests[i]._createdVersion;
@@ -749,7 +746,7 @@ TEST(DocumentTest,testReadSerializedAllVersions)
ByteBuffer buf(len);
lseek(fd,0,SEEK_SET);
if (read(fd, buf.getBuffer(), len) != len) {
- throw vespalib::Exception("read failed");
+ throw vespalib::Exception("read failed");
}
close(fd);
@@ -833,9 +830,7 @@ TEST(DocumentTest, testGenerateSerializedFile)
{
const std::string file_name = TEST_PATH("data/crossplatform-java-cpp-doctypes.cfg");
DocumentTypeRepo repo(readDocumenttypesConfig(file_name));
- Document doc(*repo.getDocumentType("serializetest"),
- DocumentId(DocIdString("serializetest",
- "http://test.doc.id/")));
+ Document doc(*repo.getDocumentType("serializetest"), DocumentId("id:ns:serializetest::http://test.doc.id/"));
doc.set("intfield", 5);
doc.set("floatfield", -9.23);
@@ -848,8 +843,7 @@ TEST(DocumentTest, testGenerateSerializedFile)
const DocumentType *docindoc_type = repo.getDocumentType("docindoc");
EXPECT_TRUE(docindoc_type);
- Document embedDoc(*docindoc_type,
- DocumentId(DocIdString("docindoc", "http://embedded")));
+ Document embedDoc(*docindoc_type, DocumentId("id:ns:docindoc::http://embedded"));
doc.setValue("docfield", embedDoc);
@@ -874,7 +868,7 @@ TEST(DocumentTest, testGenerateSerializedFile)
int fd = open((serializedDir + "/serializecpp.dat").c_str(),
O_WRONLY | O_TRUNC | O_CREAT, 0644);
if (write(fd, buf->getBuffer(), buf->getPos()) != (ssize_t)buf->getPos()) {
- throw vespalib::Exception("write failed");
+ throw vespalib::Exception("write failed");
}
close(fd);
@@ -883,16 +877,16 @@ TEST(DocumentTest, testGenerateSerializedFile)
fd = open((serializedDir + "/serializecppsplit_header.dat").c_str(),
O_WRONLY | O_TRUNC | O_CREAT, 0644);
if (write(fd, hBuf.getBuffer(), hBuf.getPos()) != (ssize_t)hBuf.getPos()) {
- throw vespalib::Exception("write failed");
+ throw vespalib::Exception("write failed");
}
close(fd);
ByteBuffer bBuf(getSerializedSizeBody(doc));
doc.serializeBody(bBuf);
- fd = open(TEST_PATH("/serializecppsplit_body.dat").c_str(),
+ fd = open((serializedDir+ "/serializecppsplit_body.dat").c_str(),
O_WRONLY | O_TRUNC | O_CREAT, 0644);
if (write(fd, bBuf.getBuffer(), bBuf.getPos()) != (ssize_t)bBuf.getPos()) {
- throw vespalib::Exception("write failed");
+ throw vespalib::Exception("write failed");
}
close(fd);
@@ -904,10 +898,10 @@ TEST(DocumentTest, testGenerateSerializedFile)
doc.serialize(lz4buf);
lz4buf.flip();
- fd = open(TEST_PATH("/serializecpp-lz4-level9.dat").c_str(),
+ fd = open((serializedDir + "/serializecpp-lz4-level9.dat").c_str(),
O_WRONLY | O_TRUNC | O_CREAT, 0644);
if (write(fd, lz4buf.getBufferAtPos(), lz4buf.getRemaining()) != (ssize_t)lz4buf.getRemaining()) {
- throw vespalib::Exception("write failed");
+ throw vespalib::Exception("write failed");
}
close(fd);
}
@@ -915,15 +909,14 @@ TEST(DocumentTest, testGenerateSerializedFile)
TEST(DocumentTest, testGetURIFromSerialized)
{
TestDocRepo test_repo;
- Document doc(*test_repo.getDocumentType("testdoctype1"),
- DocumentId("doc:ns:testdoc"));
+ Document doc(*test_repo.getDocumentType("testdoctype1"), DocumentId("id:ns:testdoctype1::1"));
{
std::unique_ptr<ByteBuffer> serialized = doc.serialize();
serialized->flip();
EXPECT_EQ(
- vespalib::string(DocIdString("ns", "testdoc").toString()),
+ vespalib::string("id:ns:testdoctype1::1"),
Document::getIdFromSerialized(*serialized).toString());
EXPECT_EQ(vespalib::string("testdoctype1"),
@@ -937,8 +930,7 @@ TEST(DocumentTest, testGetURIFromSerialized)
serialized->flip();
Document doc2(test_repo.getTypeRepo(), *serialized, false, NULL);
- EXPECT_EQ(
- vespalib::string(DocIdString("ns", "testdoc").toString()), doc2.getId().toString());
+ EXPECT_EQ(vespalib::string("id:ns:testdoctype1::1"), doc2.getId().toString());
EXPECT_EQ(vespalib::string("testdoctype1"), doc2.getType().getName());
}
}
@@ -947,8 +939,7 @@ TEST(DocumentTest, testBogusserialize)
{
TestDocRepo test_repo;
try {
- std::unique_ptr<ByteBuffer> buf(
- new ByteBuffer("aoifjweprjwoejr203r+2+4r823++!",100));
+ auto buf = std::make_unique<ByteBuffer>("aoifjweprjwoejr203r+2+4r823++!",100);
Document doc(test_repo.getTypeRepo(), *buf);
FAIL() << "Failed to throw exception deserializing bogus data";
} catch (DeserializeException& e) {
@@ -956,7 +947,7 @@ TEST(DocumentTest, testBogusserialize)
}
try {
- std::unique_ptr<ByteBuffer> buf(new ByteBuffer("",0));
+ auto buf = std::make_unique<ByteBuffer>("",0);
Document doc(test_repo.getTypeRepo(), *buf);
FAIL() << "Failed to throw exception deserializing empty buffer";
} catch (DeserializeException& e) {
@@ -967,19 +958,17 @@ TEST(DocumentTest, testBogusserialize)
TEST(DocumentTest, testCRC32)
{
TestDocRepo test_repo;
- Document doc(*test_repo.getDocumentType("testdoctype1"),
- DocumentId(DocIdString("crawler", "http://www.ntnu.no/")));
+ Document doc(*test_repo.getDocumentType("testdoctype1"), DocumentId("id:ns:testdoctype1::crawler:http://www.ntnu.no/"));
- doc.setValue(doc.getField("hstringval"),
- StringFieldValue("bla bla bla bla bla"));
+ doc.setValue(doc.getField("hstringval"), StringFieldValue("bla bla bla bla bla"));
uint32_t crc = doc.calculateChecksum();
- EXPECT_EQ(277496115u, crc);
+ EXPECT_EQ(3987392271u, crc);
std::unique_ptr<ByteBuffer> buf = doc.serialize();
buf->flip();
- int pos = 20;
+ int pos = 30;
// Corrupt serialization.
buf->getBuffer()[pos] ^= 72;
@@ -1002,12 +991,11 @@ TEST(DocumentTest, testHasChanged)
{
TestDocRepo test_repo;
Document doc(*test_repo.getDocumentType("testdoctype1"),
- DocumentId(DocIdString("crawler", "http://www.ntnu.no/")));
+ DocumentId("id:ns:testdoctype1::crawler:http://www.ntnu.no/"));
// Before deserialization we are changed.
EXPECT_TRUE(doc.hasChanged());
- doc.setValue(doc.getField("hstringval"),
- StringFieldValue("bla bla bla bla bla"));
+ doc.setValue(doc.getField("hstringval"), StringFieldValue("bla bla bla bla bla"));
// Still changed after setting a value of course.
EXPECT_TRUE(doc.hasChanged());
@@ -1078,8 +1066,7 @@ TEST(DocumentTest, testSliceSerialize)
// bytebuffer.
TestDocMan testDocMan;
Document::UP doc = testDocMan.createDocument();
- Document::UP doc2 = testDocMan.createDocument(
- "Some other content", "doc:test:anotherdoc");
+ Document::UP doc2 = testDocMan.createDocument("Some other content", "id:ns:testdoctype1::anotherdoc");
ArrayFieldValue val(doc2->getField("rawarray").getDataType());
val.add(RawFieldValue("hei", 3));
@@ -1091,15 +1078,13 @@ TEST(DocumentTest, testSliceSerialize)
doc->serialize(buf);
EXPECT_EQ(getSerializedSize(*doc), buf.getPos());
doc2->serialize(buf);
- EXPECT_EQ(getSerializedSize(*doc) + getSerializedSize(*doc2),
- buf.getPos());
+ EXPECT_EQ(getSerializedSize(*doc) + getSerializedSize(*doc2), buf.getPos());
buf.flip();
Document doc3(testDocMan.getTypeRepo(), buf);
EXPECT_EQ(getSerializedSize(*doc), buf.getPos());
Document doc4(testDocMan.getTypeRepo(), buf);
- EXPECT_EQ(getSerializedSize(*doc) + getSerializedSize(*doc2),
- buf.getPos());
+ EXPECT_EQ(getSerializedSize(*doc) + getSerializedSize(*doc2), buf.getPos());
EXPECT_EQ(*doc, doc3);
EXPECT_EQ(*doc2, doc4);
@@ -1142,9 +1127,8 @@ TEST(DocumentTest, testCompressionConfigured)
Struct("serializetest.body").setId(45)
.addField("stringfield", DataType::T_STRING));
DocumentTypeRepo repo(builder.config());
- Document doc_uncompressed(
- *repo.getDocumentType("serializetest"),
- DocumentId("doc:test:test"));
+ Document doc_uncompressed(*repo.getDocumentType("serializetest"),
+ DocumentId("id:ns:serializetest::1"));
std::string bigString("compress me");
for (int i = 0; i < 8; ++i) { bigString += bigString; }
@@ -1206,7 +1190,7 @@ TEST(DocumentTest, testUnknownEntries)
DocumentTypeRepo repo(type2);
- Document doc1(type1, DocumentId("doc::testdoc"));
+ Document doc1(type1, DocumentId("id:ns:test::1"));
doc1.setValue(field1, IntFieldValue(1));
doc1.setValue(field2, IntFieldValue(2));
doc1.setValue(field3, IntFieldValue(3));
@@ -1235,12 +1219,12 @@ TEST(DocumentTest, testUnknownEntries)
doc3.deserializeBody(repo, body);
EXPECT_EQ(std::string(
- "<document documenttype=\"test\" documentid=\"doc::testdoc\">\n"
+ "<document documenttype=\"test\" documentid=\"id:ns:test::1\">\n"
"<int3>3</int3>\n"
"<int4>4</int4>\n"
"</document>"), doc2.toXml());
EXPECT_EQ(std::string(
- "<document documenttype=\"test\" documentid=\"doc::testdoc\">\n"
+ "<document documenttype=\"test\" documentid=\"id:ns:test::1\">\n"
"<int3>3</int3>\n"
"<int4>4</int4>\n"
"</document>"), doc3.toXml());
@@ -1297,7 +1281,7 @@ TEST(DocumentTest, testAnnotationDeserialization)
ByteBuffer buf(len);
lseek(fd,0,SEEK_SET);
if (read(fd, buf.getBuffer(), len) != len) {
- throw vespalib::Exception("read failed");
+ throw vespalib::Exception("read failed");
}
close(fd);