summaryrefslogtreecommitdiffstats
path: root/searchlib/src/tests/features/util
diff options
context:
space:
mode:
Diffstat (limited to 'searchlib/src/tests/features/util')
-rw-r--r--searchlib/src/tests/features/util/.gitignore1
-rw-r--r--searchlib/src/tests/features/util/CMakeLists.txt8
-rw-r--r--searchlib/src/tests/features/util/FILES1
-rw-r--r--searchlib/src/tests/features/util/util_test.cpp40
4 files changed, 50 insertions, 0 deletions
diff --git a/searchlib/src/tests/features/util/.gitignore b/searchlib/src/tests/features/util/.gitignore
new file mode 100644
index 00000000000..14e50fdaf47
--- /dev/null
+++ b/searchlib/src/tests/features/util/.gitignore
@@ -0,0 +1 @@
+searchlib_util_test_app
diff --git a/searchlib/src/tests/features/util/CMakeLists.txt b/searchlib/src/tests/features/util/CMakeLists.txt
new file mode 100644
index 00000000000..95a0bf3b45d
--- /dev/null
+++ b/searchlib/src/tests/features/util/CMakeLists.txt
@@ -0,0 +1,8 @@
+# Copyright 2016 Yahoo Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
+vespa_add_executable(searchlib_util_test_app
+ SOURCES
+ util_test.cpp
+ DEPENDS
+ searchlib
+)
+vespa_add_test(NAME searchlib_util_test_app COMMAND searchlib_util_test_app)
diff --git a/searchlib/src/tests/features/util/FILES b/searchlib/src/tests/features/util/FILES
new file mode 100644
index 00000000000..f0bd0a06305
--- /dev/null
+++ b/searchlib/src/tests/features/util/FILES
@@ -0,0 +1 @@
+util_test.cpp
diff --git a/searchlib/src/tests/features/util/util_test.cpp b/searchlib/src/tests/features/util/util_test.cpp
new file mode 100644
index 00000000000..d2f97631d0f
--- /dev/null
+++ b/searchlib/src/tests/features/util/util_test.cpp
@@ -0,0 +1,40 @@
+// Copyright 2016 Yahoo Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
+#include <vespa/vespalib/testkit/test_kit.h>
+#include <vespa/searchlib/features/utils.h>
+#include <vespa/searchlib/fef/test/indexenvironment.h>
+#include <vespa/searchlib/fef/test/queryenvironment.h>
+
+using namespace search;
+using namespace search::fef;
+using namespace search::fef::test;
+using namespace search::features;
+
+SimpleTermData make_term(uint32_t uid) {
+ SimpleTermData term;
+ term.setUniqueId(uid);
+ return term;
+}
+
+struct TermLabelFixture {
+ IndexEnvironment indexEnv;
+ QueryEnvironment queryEnv;
+ TermLabelFixture() : indexEnv(), queryEnv(&indexEnv) {
+ queryEnv.getTerms().push_back(make_term(5));
+ queryEnv.getTerms().push_back(make_term(0));
+ queryEnv.getTerms().push_back(make_term(10));
+ queryEnv.getProperties().add("vespa.label.foo.id", "5");
+ queryEnv.getProperties().add("vespa.label.bar.id", "0"); // undefined uid
+ queryEnv.getProperties().add("vespa.label.baz.id", "10");
+ queryEnv.getProperties().add("vespa.label.fox.id", "7"); // non-existing
+ }
+};
+
+TEST_F("require that label can be mapped to term", TermLabelFixture) {
+ EXPECT_EQUAL((ITermData*)&f1.queryEnv.getTerms()[0], util::getTermByLabel(f1.queryEnv, "foo"));
+ EXPECT_EQUAL((ITermData*)0, util::getTermByLabel(f1.queryEnv, "bar"));
+ EXPECT_EQUAL((ITermData*)&f1.queryEnv.getTerms()[2], util::getTermByLabel(f1.queryEnv, "baz"));
+ EXPECT_EQUAL((ITermData*)0, util::getTermByLabel(f1.queryEnv, "fox"));
+ EXPECT_EQUAL((ITermData*)0, util::getTermByLabel(f1.queryEnv, "unknown"));
+}
+
+TEST_MAIN() { TEST_RUN_ALL(); }