[tracker/graph: 4/6] libtracker-data: Test simple named graph insert and query



commit 33feec1891e14aa95c300c2223826271830ba27c
Author: Jürg Billeter <j bitron ch>
Date:   Tue Feb 16 08:12:12 2010 +0100

    libtracker-data: Test simple named graph insert and query

 configure.ac                                |    1 +
 tests/libtracker-data/Makefile.am           |    1 +
 tests/libtracker-data/graph/Makefile.am     |    7 +++++++
 tests/libtracker-data/graph/data-1.ontology |   16 ++++++++++++++++
 tests/libtracker-data/graph/data-1.rq       |    8 ++++++++
 tests/libtracker-data/graph/graph-1.out     |    1 +
 tests/libtracker-data/graph/graph-1.rq      |    5 +++++
 tests/libtracker-data/tracker-sparql-test.c |   27 +++++++++++++++++++++++----
 8 files changed, 62 insertions(+), 4 deletions(-)
---
diff --git a/configure.ac b/configure.ac
index 04603e7..4bafb57 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1662,6 +1662,7 @@ AC_CONFIG_FILES([
 	tests/libtracker-data/bound/Makefile
 	tests/libtracker-data/expr-ops/Makefile
 	tests/libtracker-data/functions/Makefile
+	tests/libtracker-data/graph/Makefile
 	tests/libtracker-data/nie/Makefile
 	tests/libtracker-data/nmo/Makefile
 	tests/libtracker-data/optional/Makefile
diff --git a/tests/libtracker-data/Makefile.am b/tests/libtracker-data/Makefile.am
index 8146c12..591f5b4 100644
--- a/tests/libtracker-data/Makefile.am
+++ b/tests/libtracker-data/Makefile.am
@@ -7,6 +7,7 @@ SUBDIRS = 			\
 	bound 			\
 	expr-ops		\
 	functions		\
+	graph			\
 	nie			\
 	nmo			\
 	optional		\
diff --git a/tests/libtracker-data/graph/Makefile.am b/tests/libtracker-data/graph/Makefile.am
new file mode 100644
index 0000000..74c152e
--- /dev/null
+++ b/tests/libtracker-data/graph/Makefile.am
@@ -0,0 +1,7 @@
+include $(top_srcdir)/Makefile.decl
+
+EXTRA_DIST = 		\
+	data-1.ontology	\
+	data-1.rq	\
+	graph-1.out	\
+	graph-1.rq
diff --git a/tests/libtracker-data/graph/data-1.ontology b/tests/libtracker-data/graph/data-1.ontology
new file mode 100644
index 0000000..e831f2a
--- /dev/null
+++ b/tests/libtracker-data/graph/data-1.ontology
@@ -0,0 +1,16 @@
+ prefix example: <http://example/> .
+ prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
+ prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
+ prefix tracker: <http://www.tracker-project.org/ontologies/tracker#> .
+ prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
+
+example: a tracker:Namespace ;
+	tracker:prefix "example" .
+
+example:A a rdfs:Class ;
+	rdfs:subClassOf rdfs:Resource .
+
+example:p a rdf:Property ;
+	rdfs:domain example:A ;
+	rdfs:range xsd:integer .
+
diff --git a/tests/libtracker-data/graph/data-1.rq b/tests/libtracker-data/graph/data-1.rq
new file mode 100644
index 0000000..1dac553
--- /dev/null
+++ b/tests/libtracker-data/graph/data-1.rq
@@ -0,0 +1,8 @@
+INSERT INTO example:graphA {
+	example:resource a example:A ;
+		example:p 42
+}
+INSERT INTO example:graphB {
+	example:resource a example:A ;
+		example:p 42
+}
diff --git a/tests/libtracker-data/graph/graph-1.out b/tests/libtracker-data/graph/graph-1.out
new file mode 100644
index 0000000..0476f74
--- /dev/null
+++ b/tests/libtracker-data/graph/graph-1.out
@@ -0,0 +1 @@
+"http://example/graphA";	"http://example/resource";
diff --git a/tests/libtracker-data/graph/graph-1.rq b/tests/libtracker-data/graph/graph-1.rq
new file mode 100644
index 0000000..b2464d2
--- /dev/null
+++ b/tests/libtracker-data/graph/graph-1.rq
@@ -0,0 +1,5 @@
+SELECT ?g ?s WHERE {
+	GRAPH ?g {
+		?s example:p 42
+	}
+}
diff --git a/tests/libtracker-data/tracker-sparql-test.c b/tests/libtracker-data/tracker-sparql-test.c
index 615d6fa..d89c2f0 100644
--- a/tests/libtracker-data/tracker-sparql-test.c
+++ b/tests/libtracker-data/tracker-sparql-test.c
@@ -69,6 +69,7 @@ const TestInfo tests[] = {
 	{ "functions/functions-tracker-loc-1", "functions/data-3", FALSE },
 	{ "functions/functions-xpath-1", "functions/data-1", FALSE },
 	{ "functions/functions-xpath-2", "functions/data-1", FALSE },
+	{ "graph/graph-1", "graph/data-1", FALSE },
 	{ "optional/q-opt-complex-1", "optional/complex-data-1", FALSE },
 	{ "regex/regex-query-001", "regex/regex-data-01", FALSE },
 	{ "regex/regex-query-002", "regex/regex-data-01", FALSE },
@@ -124,10 +125,28 @@ test_sparql_query (gconstpointer test_data)
 
 	/* load data set */
 	data_filename = g_strconcat (data_prefix, ".ttl", NULL);
-	tracker_data_begin_transaction ();
-	tracker_turtle_reader_load (data_filename, &error);
-	tracker_data_commit_transaction ();
-	g_assert_no_error (error);
+	if (g_file_test (data_filename, G_FILE_TEST_IS_REGULAR)) {
+		tracker_data_begin_transaction ();
+		tracker_turtle_reader_load (data_filename, &error);
+		tracker_data_commit_transaction ();
+		g_assert_no_error (error);
+	} else {
+		/* no .ttl available, assume .rq with SPARQL Update */
+		gchar *data;
+
+		g_free (data_filename);
+
+		data_filename = g_strconcat (data_prefix, ".rq", NULL);
+		g_file_get_contents (data_filename, &data, NULL, &error);
+		g_assert_no_error (error);
+
+		tracker_data_begin_transaction ();
+		tracker_data_update_sparql (data, &error);
+		tracker_data_commit_transaction ();
+		g_assert_no_error (error);
+
+		g_free (data);
+	}
 
 	query_filename = g_strconcat (test_prefix, ".rq", NULL);
 	g_file_get_contents (query_filename, &query, NULL, &error);



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]