aboutsummaryrefslogtreecommitdiffstats
path: root/searchcore/src/tests/proton/common/document_type_inspector/document_type_inspector_test.cpp
diff options
context:
space:
mode:
authorTor Egge <Tor.Egge@yahoo-inc.com>2017-03-31 14:38:31 +0000
committerTor Egge <Tor.Egge@yahoo-inc.com>2017-03-31 14:38:31 +0000
commitcaede4c2bc8596eebd0cfb58ba24c23aa86edc28 (patch)
treebf844f95b6867893a7d5a8fec5e03d3fc441830b /searchcore/src/tests/proton/common/document_type_inspector/document_type_inspector_test.cpp
parent81fac49e7f03ba33e399bc331e1df08781c8e940 (diff)
Change document type inspector to look at two document types at a time.
For reprocessing purposes, we need to know when a field exists in both old and new document type with same field type.
Diffstat (limited to 'searchcore/src/tests/proton/common/document_type_inspector/document_type_inspector_test.cpp')
-rw-r--r--searchcore/src/tests/proton/common/document_type_inspector/document_type_inspector_test.cpp69
1 files changed, 52 insertions, 17 deletions
diff --git a/searchcore/src/tests/proton/common/document_type_inspector/document_type_inspector_test.cpp b/searchcore/src/tests/proton/common/document_type_inspector/document_type_inspector_test.cpp
index 8f4d6f1f2fe..e323ef6fe8f 100644
--- a/searchcore/src/tests/proton/common/document_type_inspector/document_type_inspector_test.cpp
+++ b/searchcore/src/tests/proton/common/document_type_inspector/document_type_inspector_test.cpp
@@ -1,44 +1,79 @@
// Copyright 2016 Yahoo Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
#include <vespa/fastos/fastos.h>
#include <vespa/searchcore/proton/common/document_type_inspector.h>
-#include <vespa/searchlib/index/docbuilder.h>
#include <vespa/vespalib/testkit/testapp.h>
+#include <vespa/document/repo/configbuilder.h>
+#include <vespa/document/repo/documenttyperepo.h>
using namespace document;
using namespace proton;
-using namespace search::index;
+using document::config_builder::DocumenttypesConfigBuilderHelper;
+using document::config_builder::Struct;
-Schema
-getSchema()
+const int32_t doc_type_id = 787121340;
+const vespalib::string type_name = "test";
+const vespalib::string header_name = type_name + ".header";
+const vespalib::string body_name = type_name + ".body";
+
+DocumentTypeRepo::UP
+makeOldDocTypeRepo(void)
{
- Schema schema;
- schema.addSummaryField(Schema::SummaryField("f1", schema::STRING));
- schema.addSummaryField(Schema::SummaryField("f2", schema::STRING));
- return schema;
+ DocumenttypesConfigBuilderHelper builder;
+ builder.document(doc_type_id, type_name,
+ Struct(header_name), Struct(body_name).
+ addField("f1", DataType::T_STRING).
+ addField("f2", DataType::T_STRING).
+ addField("f3", DataType::T_STRING).
+ addField("f4", DataType::T_STRING));
+ return DocumentTypeRepo::UP(new DocumentTypeRepo(builder.config()));
+}
+
+DocumentTypeRepo::UP
+makeNewDocTypeRepo(void)
+{
+ DocumenttypesConfigBuilderHelper builder;
+ builder.document(doc_type_id, type_name,
+ Struct(header_name), Struct(body_name).
+ addField("f1", DataType::T_STRING).
+ addField("f2", DataType::T_STRING).
+ addField("f3", DataType::T_INT).
+ addField("f5", DataType::T_STRING));
+ return DocumentTypeRepo::UP(new DocumentTypeRepo(builder.config()));
}
struct Fixture
{
- Schema _schema;
- DocBuilder _builder;
+ DocumentTypeRepo::UP _oldRepo;
+ DocumentTypeRepo::UP _newRepo;
DocumentTypeInspector _inspector;
Fixture()
- : _schema(getSchema()),
- _builder(_schema),
- _inspector(_builder.getDocumentType())
+ : _oldRepo(makeOldDocTypeRepo()),
+ _newRepo(makeNewDocTypeRepo()),
+ _inspector(*_oldRepo->getDocumentType("test"), *_newRepo->getDocumentType("test"))
{
}
};
-TEST_F("require that existing fields are known", Fixture)
+TEST_F("require that unchanged fields are known", Fixture)
+{
+ EXPECT_TRUE(f._inspector.hasUnchangedField("f1"));
+ EXPECT_TRUE(f._inspector.hasUnchangedField("f2"));
+}
+
+TEST_F("require that changed fields are detected", Fixture)
+{
+ EXPECT_FALSE(f._inspector.hasUnchangedField("f3"));
+}
+
+TEST_F("require that partially missing fields are detected", Fixture)
{
- EXPECT_TRUE(f._inspector.hasField("f1"));
- EXPECT_TRUE(f._inspector.hasField("f2"));
+ EXPECT_FALSE(f._inspector.hasUnchangedField("f4"));
+ EXPECT_FALSE(f._inspector.hasUnchangedField("f5"));
}
TEST_F("require that non-existing fields are NOT known", Fixture)
{
- EXPECT_FALSE(f._inspector.hasField("not"));
+ EXPECT_FALSE(f._inspector.hasUnchangedField("not"));
}
TEST_MAIN()