summaryrefslogtreecommitdiffstats
path: root/vespalib
diff options
context:
space:
mode:
authorArne H Juul <arnej@yahoo-inc.com>2017-02-13 13:48:47 +0100
committerArne H Juul <arnej@yahoo-inc.com>2017-02-13 13:48:47 +0100
commit53cbd0dea93198bafd711e2318f453183fadd324 (patch)
treefbb9b19ec5e55f93c2f78fa3388adcbf23908509 /vespalib
parent4b7fd9b1cdf66084ab042a72532033256cfdda21 (diff)
add unit test for resolve()
Diffstat (limited to 'vespalib')
-rw-r--r--vespalib/src/tests/slime/slime_test.cpp35
1 files changed, 35 insertions, 0 deletions
diff --git a/vespalib/src/tests/slime/slime_test.cpp b/vespalib/src/tests/slime/slime_test.cpp
index 9418a999cbb..d8f2dceef0c 100644
--- a/vespalib/src/tests/slime/slime_test.cpp
+++ b/vespalib/src/tests/slime/slime_test.cpp
@@ -362,4 +362,39 @@ TEST("require that slime objects can be compared") {
EXPECT_NOT_EQUAL(Slime().setArray(), Slime().setObject());
}
+TEST("require that we can resolve to symbol table from a cursor") {
+ Slime slime;
+ Cursor &c1 = slime.setObject();
+ Cursor &c2 = c1.setArray("foo");
+ Cursor &c3 = c1.setLong("bar", 5);
+ Cursor &c4 = c2.addObject();
+ const Memory A("a");
+ const Memory B("b");
+ const Memory C("c");
+ const Memory D("d");
+ EXPECT_TRUE(slime.lookup(A).undefined());
+ EXPECT_TRUE(slime.lookup(B).undefined());
+ EXPECT_TRUE(slime.lookup(C).undefined());
+ EXPECT_TRUE(slime.lookup(D).undefined());
+
+ Symbol sa = c1.resolve(A);
+ Symbol sb = c2.resolve(B);
+ Symbol sc = c3.resolve(C);
+ Symbol sd = c4.resolve(D);
+ EXPECT_FALSE(sa.undefined());
+ EXPECT_FALSE(sb.undefined());
+ EXPECT_TRUE(sc.undefined());
+ EXPECT_FALSE(sd.undefined());
+
+ EXPECT_FALSE(slime.lookup(A).undefined());
+ EXPECT_FALSE(slime.lookup(B).undefined());
+ EXPECT_TRUE(slime.lookup(C).undefined());
+ EXPECT_FALSE(slime.lookup(D).undefined());
+
+ EXPECT_TRUE(sa == slime.lookup(A));
+ EXPECT_TRUE(sb == slime.lookup(B));
+ EXPECT_TRUE(sc == slime.lookup(C));
+ EXPECT_TRUE(sd == slime.lookup(D));
+}
+
TEST_MAIN() { TEST_RUN_ALL(); }