more testing

Project: http://git-wip-us.apache.org/repos/asf/marmotta/repo
Commit: http://git-wip-us.apache.org/repos/asf/marmotta/commit/622a3009
Tree: http://git-wip-us.apache.org/repos/asf/marmotta/tree/622a3009
Diff: http://git-wip-us.apache.org/repos/asf/marmotta/diff/622a3009

Branch: refs/heads/MARMOTTA-584
Commit: 622a30099d3ed004de3d1869fe42f867d5bf81b7
Parents: 299272a
Author: Sebastian Schaffert <[email protected]>
Authored: Sat Dec 19 16:53:28 2015 +0100
Committer: Sebastian Schaffert <[email protected]>
Committed: Sat Dec 19 16:53:28 2015 +0100

----------------------------------------------------------------------
 .../ostrich/backend/test/PersistenceTest.cc     | 53 +++++++++++++++++++-
 1 file changed, 52 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/marmotta/blob/622a3009/libraries/ostrich/backend/test/PersistenceTest.cc
----------------------------------------------------------------------
diff --git a/libraries/ostrich/backend/test/PersistenceTest.cc 
b/libraries/ostrich/backend/test/PersistenceTest.cc
index 9878cd6..fdfc604 100644
--- a/libraries/ostrich/backend/test/PersistenceTest.cc
+++ b/libraries/ostrich/backend/test/PersistenceTest.cc
@@ -16,6 +16,8 @@
 
 using namespace boost::filesystem;
 
+using testing::Contains;
+
 namespace marmotta {
 namespace rdf {
 namespace proto {
@@ -42,7 +44,7 @@ class PersistenceTest : public ::testing::Test {
     }
 
     ~PersistenceTest() {
-        LOG(INFO) << "Destroying Test DB";
+        LOG(INFO) << "Destroying Test DB: " << testdir.string();
         delete db;
         remove_all(testdir);
     }
@@ -71,6 +73,55 @@ TEST_F(PersistenceTest, TestAddStatements) {
     }
 }
 
+
+TEST_F(PersistenceTest, TestGetStatements) {
+    std::vector<rdf::proto::Statement> stmts = {
+            rdf::Statement(rdf::URI("http://example.com/s1";), 
rdf::URI("http://example.com/p1";),
+                           rdf::URI("http://example.com/o1";)).getMessage(),
+            rdf::Statement(rdf::URI("http://example.com/s2";), 
rdf::URI("http://example.com/p1";),
+                           rdf::URI("http://example.com/o1";)).getMessage(),
+            rdf::Statement(rdf::URI("http://example.com/s1";), 
rdf::URI("http://example.com/p2";),
+                           rdf::URI("http://example.com/o2";)).getMessage(),
+            rdf::Statement(rdf::URI("http://example.com/s2";), 
rdf::URI("http://example.com/p2";),
+                           rdf::URI("http://example.com/o2";)).getMessage(),
+            rdf::Statement(rdf::URI("http://example.com/s1";), 
rdf::URI("http://example.com/p3";),
+                           rdf::URI("http://example.com/o3";)).getMessage(),
+    };
+
+    util::CollectionIterator<rdf::proto::Statement> it(stmts);
+    db->AddStatements(it);
+
+    EXPECT_EQ(5, db->Size());
+
+    rdf::Statement pattern1;
+    pattern1.setSubject(rdf::URI("http://example.com/s1";));
+    auto it1 = db->GetStatements(pattern1.getMessage());
+    for (int i=0; i<3; i++) {
+        ASSERT_TRUE(it1->hasNext());
+        EXPECT_THAT(stmts, Contains(it1->next()));
+    }
+    EXPECT_FALSE(it1->hasNext());
+
+    rdf::Statement pattern2;
+    pattern2.setObject(rdf::URI("http://example.com/o1";));
+    auto it2 = db->GetStatements(pattern2.getMessage());
+    for (int i=0; i<2; i++) {
+        ASSERT_TRUE(it2->hasNext());
+        EXPECT_THAT(stmts, Contains(it2->next()));
+    }
+    EXPECT_FALSE(it2->hasNext());
+
+    rdf::Statement pattern3;
+    pattern2.setPredicate(rdf::URI("http://example.com/p1";));
+    auto it3 = db->GetStatements(pattern2.getMessage());
+    for (int i=0; i<2; i++) {
+        ASSERT_TRUE(it3->hasNext());
+        EXPECT_THAT(stmts, Contains(it3->next()));
+    }
+    EXPECT_FALSE(it3->hasNext());
+}
+
+
 }
 }
 }

Reply via email to