diff options
author | Tor Egge <Tor.Egge@yahoo-inc.com> | 2017-03-31 14:38:31 +0000 |
---|---|---|
committer | Tor Egge <Tor.Egge@yahoo-inc.com> | 2017-03-31 14:38:31 +0000 |
commit | caede4c2bc8596eebd0cfb58ba24c23aa86edc28 (patch) | |
tree | bf844f95b6867893a7d5a8fec5e03d3fc441830b /searchcore/src/tests/proton/common/document_type_inspector/document_type_inspector_test.cpp | |
parent | 81fac49e7f03ba33e399bc331e1df08781c8e940 (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.cpp | 69 |
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() |