diff options
author | Tor Egge <Tor.Egge@online.no> | 2022-09-16 11:43:00 +0200 |
---|---|---|
committer | Tor Egge <Tor.Egge@online.no> | 2022-09-16 11:43:00 +0200 |
commit | 681e43fc3dcbd6abed8a77242382a873fcd5cf68 (patch) | |
tree | 1eeb26317b658e1fe05543428000d41827e4159c /searchsummary/src/tests/docsummary/slime_filler/slime_filler_test.cpp | |
parent | 190678af7f110f1b69d58892934d6f054467b0a3 (diff) |
Factor out IStringFieldConverter from IJuniperConverter.
Diffstat (limited to 'searchsummary/src/tests/docsummary/slime_filler/slime_filler_test.cpp')
-rw-r--r-- | searchsummary/src/tests/docsummary/slime_filler/slime_filler_test.cpp | 27 |
1 files changed, 21 insertions, 6 deletions
diff --git a/searchsummary/src/tests/docsummary/slime_filler/slime_filler_test.cpp b/searchsummary/src/tests/docsummary/slime_filler/slime_filler_test.cpp index 777e42198f7..4ebdfb10cb7 100644 --- a/searchsummary/src/tests/docsummary/slime_filler/slime_filler_test.cpp +++ b/searchsummary/src/tests/docsummary/slime_filler/slime_filler_test.cpp @@ -36,6 +36,7 @@ #include <vespa/searchsummary/docsummary/docsum_field_writer.h> #include <vespa/searchsummary/docsummary/i_docsum_field_writer_factory.h> #include <vespa/searchsummary/docsummary/i_juniper_converter.h> +#include <vespa/searchsummary/docsummary/i_string_field_converter.h> #include <vespa/searchsummary/docsummary/linguisticsannotation.h> #include <vespa/searchsummary/docsummary/resultconfig.h> #include <vespa/searchsummary/docsummary/slime_filler.h> @@ -83,6 +84,7 @@ using document::WeightedSetFieldValue; using search::docsummary::AnnotationConverter; using search::docsummary::IDocsumFieldWriterFactory; using search::docsummary::IJuniperConverter; +using search::docsummary::IStringFieldConverter; using search::docsummary::DocsumFieldWriter; using search::docsummary::ResultConfig; using search::docsummary::SlimeFiller; @@ -184,15 +186,27 @@ class MockJuniperConverter : public IJuniperConverter { vespalib::string _result; public: - void insert_juniper_field(vespalib::stringref input, vespalib::slime::Inserter&) override { + void convert(vespalib::stringref input, vespalib::slime::Inserter&) override { _result = input; } - void insert_juniper_field(const document::StringFieldValue& input, vespalib::slime::Inserter&) override { - _result = input.getValueRef(); - } const vespalib::string& get_result() const noexcept { return _result; } }; +class PassThroughStringFieldConverter : public IStringFieldConverter +{ + IJuniperConverter& _juniper_converter; +public: + PassThroughStringFieldConverter(IJuniperConverter& juniper_converter) + : IStringFieldConverter(), + _juniper_converter(juniper_converter) + { + } + ~PassThroughStringFieldConverter() override = default; + void convert(const document::StringFieldValue& input, vespalib::slime::Inserter& inserter) override { + _juniper_converter.convert(input.getValueRef(), inserter); + } +}; + } class SlimeFillerTest : public testing::Test @@ -362,8 +376,9 @@ SlimeFillerTest::expect_insert_callback(const vespalib::string& exp, const Field Slime slime; SlimeInserter inserter(slime); MockJuniperConverter converter; - AnnotationConverter stacked_converter(converter); - SlimeFiller filler(inserter, tokenize ? (IJuniperConverter*)&stacked_converter : (IJuniperConverter *) &converter); + AnnotationConverter annotation_converter(converter); + PassThroughStringFieldConverter passthrough_converter(converter); + SlimeFiller filler(inserter, tokenize ? (IStringFieldConverter*) &annotation_converter : (IStringFieldConverter*) &passthrough_converter); fv.accept(filler); auto act_null = slime_to_string(slime); EXPECT_EQ("null", act_null); |