summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarlos Garnacho <carlosg@gnome.org>2019-07-21 12:45:43 +0200
committerCarlos Garnacho <carlosg@gnome.org>2019-09-10 00:22:58 +0200
commit7620ec1de0cf24cba34eddb265e3b27e6b5de307 (patch)
tree5b17d845205f4b1777ca542c8cb62556d99c1d4a
parent03a923ac65d4657c8620b058365b0b69e19185b2 (diff)
downloadtracker-7620ec1de0cf24cba34eddb265e3b27e6b5de307.tar.gz
tests: Add tests for CONSTRUCT
-rw-r--r--tests/libtracker-data/construct/construct-pattern.out12
-rw-r--r--tests/libtracker-data/construct/construct-pattern.rq3
-rw-r--r--tests/libtracker-data/construct/construct-where.out8
-rw-r--r--tests/libtracker-data/construct/construct-where.rq1
-rw-r--r--tests/libtracker-data/construct/construct-with-modifiers.out4
-rw-r--r--tests/libtracker-data/construct/construct-with-modifiers.rq3
-rw-r--r--tests/libtracker-data/construct/data.ttl31
-rw-r--r--tests/libtracker-data/construct/test.ontology34
-rw-r--r--tests/libtracker-data/tracker-sparql-test.c3
9 files changed, 99 insertions, 0 deletions
diff --git a/tests/libtracker-data/construct/construct-pattern.out b/tests/libtracker-data/construct/construct-pattern.out
new file mode 100644
index 000000000..bda80d4c6
--- /dev/null
+++ b/tests/libtracker-data/construct/construct-pattern.out
@@ -0,0 +1,12 @@
+"a" "http://www.w3.org/1999/02/22-rdf-syntax-ns#type" "http://xmlns.com/foaf/0.1/Person"
+"b" "http://www.w3.org/1999/02/22-rdf-syntax-ns#type" "http://xmlns.com/foaf/0.1/Person"
+"c" "http://www.w3.org/1999/02/22-rdf-syntax-ns#type" "http://xmlns.com/foaf/0.1/Person"
+"d" "http://www.w3.org/1999/02/22-rdf-syntax-ns#type" "http://xmlns.com/foaf/0.1/Person"
+"a" "http://xmlns.com/foaf/0.1/name" "nameA"
+"b" "http://xmlns.com/foaf/0.1/name" "nameB"
+"c" "http://xmlns.com/foaf/0.1/name" "nameC"
+"d" "http://xmlns.com/foaf/0.1/name" "nameD"
+"a" "http://xmlns.com/foaf/0.1/mbox" "mailto:bob@work"
+"b" "http://xmlns.com/foaf/0.1/mbox" "mailto:bob@work"
+"c" "http://xmlns.com/foaf/0.1/mbox" "mailto:bob@work"
+"d" "http://xmlns.com/foaf/0.1/mbox" "mailto:bob@work"
diff --git a/tests/libtracker-data/construct/construct-pattern.rq b/tests/libtracker-data/construct/construct-pattern.rq
new file mode 100644
index 000000000..d686a48fd
--- /dev/null
+++ b/tests/libtracker-data/construct/construct-pattern.rq
@@ -0,0 +1,3 @@
+PREFIX foaf: <http://xmlns.com/foaf/0.1/>
+
+CONSTRUCT { ?u a foaf:Person ; foaf:name ?name ; foaf:mbox <mailto:bob@work> } WHERE { ?u a example:A ; example:name ?name }
diff --git a/tests/libtracker-data/construct/construct-where.out b/tests/libtracker-data/construct/construct-where.out
new file mode 100644
index 000000000..6fb4dde44
--- /dev/null
+++ b/tests/libtracker-data/construct/construct-where.out
@@ -0,0 +1,8 @@
+"a" "http://www.w3.org/1999/02/22-rdf-syntax-ns#type" "http://example/A"
+"b" "http://www.w3.org/1999/02/22-rdf-syntax-ns#type" "http://example/A"
+"c" "http://www.w3.org/1999/02/22-rdf-syntax-ns#type" "http://example/A"
+"d" "http://www.w3.org/1999/02/22-rdf-syntax-ns#type" "http://example/A"
+"a" "http://example/name" "nameA"
+"b" "http://example/name" "nameB"
+"c" "http://example/name" "nameC"
+"d" "http://example/name" "nameD"
diff --git a/tests/libtracker-data/construct/construct-where.rq b/tests/libtracker-data/construct/construct-where.rq
new file mode 100644
index 000000000..cce9b98e7
--- /dev/null
+++ b/tests/libtracker-data/construct/construct-where.rq
@@ -0,0 +1 @@
+CONSTRUCT WHERE { ?u a example:A ; example:name ?l }
diff --git a/tests/libtracker-data/construct/construct-with-modifiers.out b/tests/libtracker-data/construct/construct-with-modifiers.out
new file mode 100644
index 000000000..737959de6
--- /dev/null
+++ b/tests/libtracker-data/construct/construct-with-modifiers.out
@@ -0,0 +1,4 @@
+"c" "http://www.w3.org/1999/02/22-rdf-syntax-ns#type" "http://xmlns.com/foaf/0.1/Person"
+"b" "http://www.w3.org/1999/02/22-rdf-syntax-ns#type" "http://xmlns.com/foaf/0.1/Person"
+"c" "http://xmlns.com/foaf/0.1/name" "nameC"
+"b" "http://xmlns.com/foaf/0.1/name" "nameB"
diff --git a/tests/libtracker-data/construct/construct-with-modifiers.rq b/tests/libtracker-data/construct/construct-with-modifiers.rq
new file mode 100644
index 000000000..2f2badefa
--- /dev/null
+++ b/tests/libtracker-data/construct/construct-with-modifiers.rq
@@ -0,0 +1,3 @@
+PREFIX foaf: <http://xmlns.com/foaf/0.1/>
+
+CONSTRUCT { ?u a foaf:Person ; foaf:name ?name } WHERE { ?u a example:A ; example:name ?name ; example:number ?number } ORDER BY DESC ?number LIMIT 2
diff --git a/tests/libtracker-data/construct/data.ttl b/tests/libtracker-data/construct/data.ttl
new file mode 100644
index 000000000..7449849fd
--- /dev/null
+++ b/tests/libtracker-data/construct/data.ttl
@@ -0,0 +1,31 @@
+@prefix example: <http://example/> .
+
+<a> a example:A ;
+ example:name 'nameA' ;
+ example:date '2000-01-01T00:00:01Z' ;
+ example:number 42 .
+
+<b> a example:A ;
+ example:name 'nameB' ;
+ example:date '2001-01-01T00:00:01Z' ;
+ example:number 73 ;
+ example:relation <z> .
+
+<c> a example:A ;
+ example:name 'nameC' ;
+ example:number 113 ;
+ example:relation <x> .
+
+<d> a example:A ;
+ example:name 'nameD' ;
+ example:date '2002-01-01T00:00:01Z' ;
+ example:relation <z> .
+
+<x> a example:B ;
+ example:title 'titleX' .
+
+<y> a example:B ;
+ example:title 'titleY' .
+
+<z> a example:B ;
+ example:title 'titleZ' .
diff --git a/tests/libtracker-data/construct/test.ontology b/tests/libtracker-data/construct/test.ontology
new file mode 100644
index 000000000..0a803ae95
--- /dev/null
+++ b/tests/libtracker-data/construct/test.ontology
@@ -0,0 +1,34 @@
+@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:name a rdf:Property ;
+ rdfs:domain example:A ;
+ rdfs:range xsd:string .
+
+example:date a rdf:Property ;
+ rdfs:domain example:A ;
+ rdfs:range xsd:dateTime .
+
+example:number a rdf:Property ;
+ rdfs:domain example:A ;
+ rdfs:range xsd:integer .
+
+example:B a rdfs:Class ;
+ rdfs:subClassOf rdfs:Resource .
+
+example:title a rdf:Property ;
+ rdfs:domain example:B ;
+ rdfs:range xsd:string .
+
+example:relation a rdf:Property ;
+ rdfs:domain example:A ;
+ rdfs:range example:B .
diff --git a/tests/libtracker-data/tracker-sparql-test.c b/tests/libtracker-data/tracker-sparql-test.c
index 62952b7f5..257fead15 100644
--- a/tests/libtracker-data/tracker-sparql-test.c
+++ b/tests/libtracker-data/tracker-sparql-test.c
@@ -83,6 +83,9 @@ const TestInfo tests[] = {
{ "bnode/query-5", "bnode/data", FALSE },
{ "bnode-coreference/query", "bnode-coreference/data", FALSE },
{ "bound/bound1", "bound/data", FALSE },
+ { "construct/construct-where", "construct/data", FALSE },
+ { "construct/construct-pattern", "construct/data", FALSE },
+ { "construct/construct-with-modifiers", "construct/data", FALSE },
{ "datetime/delete-1", "datetime/data-3", FALSE },
{ "datetime/functions-localtime-1", "datetime/data-1", FALSE },
{ "datetime/functions-timezone-1", "datetime/data-2", FALSE },