[tracker/wip/sam/meson] tests: Add tests around DELETE{}INSERT{}WHERE{} syntax



commit 1b5ddb64e80b602b748a5e32de480c872449d518
Author: Carlos Garnacho <carlosg gnome org>
Date:   Sun Jul 17 22:46:12 2016 +0200

    tests: Add tests around DELETE{}INSERT{}WHERE{} syntax
    
    several (un)successful replacements of data are tested.

 tests/libtracker-data/tracker-sparql-test.c        |    6 +++
 .../update/delete-insert-where-1.ontology          |   36 ++++++++++++++++++++
 .../update/delete-insert-where-1.rq                |   14 ++++++++
 .../update/delete-insert-where-2.ontology          |   36 ++++++++++++++++++++
 .../update/delete-insert-where-2.rq                |   16 +++++++++
 .../update/delete-insert-where-3.ontology          |   36 ++++++++++++++++++++
 .../update/delete-insert-where-3.rq                |   15 ++++++++
 .../update/delete-insert-where-4.ontology          |   36 ++++++++++++++++++++
 .../update/delete-insert-where-4.rq                |   17 +++++++++
 .../update/delete-insert-where-5.ontology          |   36 ++++++++++++++++++++
 .../update/delete-insert-where-5.rq                |   16 +++++++++
 .../update/delete-insert-where-6.ontology          |   36 ++++++++++++++++++++
 .../update/delete-insert-where-6.rq                |   17 +++++++++
 .../update/delete-insert-where-query-1.out         |    1 +
 .../update/delete-insert-where-query-1.rq          |    3 ++
 .../update/delete-insert-where-query-2.out         |    1 +
 .../update/delete-insert-where-query-2.rq          |    3 ++
 .../update/delete-insert-where-query-3.out         |    2 +
 .../update/delete-insert-where-query-3.rq          |    4 ++
 .../update/delete-insert-where-query-4.out         |    1 +
 .../update/delete-insert-where-query-4.rq          |    4 ++
 .../update/delete-insert-where-query-5.out         |    3 ++
 .../update/delete-insert-where-query-5.rq          |    4 ++
 .../update/delete-insert-where-query-6.out         |    1 +
 .../update/delete-insert-where-query-6.rq          |    4 ++
 25 files changed, 348 insertions(+), 0 deletions(-)
---
diff --git a/tests/libtracker-data/tracker-sparql-test.c b/tests/libtracker-data/tracker-sparql-test.c
index 27acf01..6be3c06 100644
--- a/tests/libtracker-data/tracker-sparql-test.c
+++ b/tests/libtracker-data/tracker-sparql-test.c
@@ -150,6 +150,12 @@ const TestInfo tests[] = {
        { "update/delete-where-query-1", "update/delete-where-1", FALSE, FALSE },
        { "update/delete-where-query-2", "update/delete-where-2", FALSE, FALSE },
        { "update/invalid-insert-where-query-1", "update/invalid-insert-where-1", FALSE, TRUE },
+       { "update/delete-insert-where-query-1", "update/delete-insert-where-1", FALSE, FALSE },
+       { "update/delete-insert-where-query-2", "update/delete-insert-where-2", FALSE, FALSE },
+       { "update/delete-insert-where-query-3", "update/delete-insert-where-3", FALSE, FALSE },
+       { "update/delete-insert-where-query-4", "update/delete-insert-where-4", FALSE, FALSE },
+       { "update/delete-insert-where-query-5", "update/delete-insert-where-5", FALSE, FALSE },
+       { "update/delete-insert-where-query-6", "update/delete-insert-where-6", FALSE, FALSE },
        { NULL }
 };
 
diff --git a/tests/libtracker-data/update/delete-insert-where-1.ontology 
b/tests/libtracker-data/update/delete-insert-where-1.ontology
new file mode 100644
index 0000000..6383992
--- /dev/null
+++ b/tests/libtracker-data/update/delete-insert-where-1.ontology
@@ -0,0 +1,36 @@
+@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#> .
+@prefix nrl: <http://www.semanticdesktop.org/ontologies/2007/08/15/nrl#> .
+
+example: a tracker:Namespace ;
+       tracker:prefix "example" .
+
+example:A a rdfs:Class ;
+       rdfs:subClassOf rdfs:Resource .
+
+example:int a rdf:Property ;
+       nrl:maxCardinality 1 ;
+       rdfs:domain example:A ;
+       rdfs:range xsd:integer .
+
+example:double a rdf:Property ;
+       nrl:maxCardinality 1 ;
+        rdfs:domain example:A ;
+        rdfs:range xsd:double .
+
+example:string a rdf:Property ;
+       nrl:maxCardinality 1 ;
+        rdfs:domain example:A ;
+        rdfs:range xsd:string .
+
+example:intMultivalued a rdf:Property ;
+       rdfs:domain example:A ;
+       rdfs:range xsd:integer .
+
+example:stringMultivalued a rdf:Property ;
+        rdfs:domain example:A ;
+        rdfs:range xsd:string .
+
diff --git a/tests/libtracker-data/update/delete-insert-where-1.rq 
b/tests/libtracker-data/update/delete-insert-where-1.rq
new file mode 100644
index 0000000..5dd305e
--- /dev/null
+++ b/tests/libtracker-data/update/delete-insert-where-1.rq
@@ -0,0 +1,14 @@
+# Simple delete{}insert{}where{} test, replaces one single-valued object
+
+INSERT DATA {
+  example:a  a example:A ;
+             example:string 'foo' .
+}
+
+DELETE {
+  example:a example:string 'foo'
+} INSERT {
+  example:a example:string 'bar'
+} WHERE {
+  example:a a example:A
+}
diff --git a/tests/libtracker-data/update/delete-insert-where-2.ontology 
b/tests/libtracker-data/update/delete-insert-where-2.ontology
new file mode 100644
index 0000000..6383992
--- /dev/null
+++ b/tests/libtracker-data/update/delete-insert-where-2.ontology
@@ -0,0 +1,36 @@
+@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#> .
+@prefix nrl: <http://www.semanticdesktop.org/ontologies/2007/08/15/nrl#> .
+
+example: a tracker:Namespace ;
+       tracker:prefix "example" .
+
+example:A a rdfs:Class ;
+       rdfs:subClassOf rdfs:Resource .
+
+example:int a rdf:Property ;
+       nrl:maxCardinality 1 ;
+       rdfs:domain example:A ;
+       rdfs:range xsd:integer .
+
+example:double a rdf:Property ;
+       nrl:maxCardinality 1 ;
+        rdfs:domain example:A ;
+        rdfs:range xsd:double .
+
+example:string a rdf:Property ;
+       nrl:maxCardinality 1 ;
+        rdfs:domain example:A ;
+        rdfs:range xsd:string .
+
+example:intMultivalued a rdf:Property ;
+       rdfs:domain example:A ;
+       rdfs:range xsd:integer .
+
+example:stringMultivalued a rdf:Property ;
+        rdfs:domain example:A ;
+        rdfs:range xsd:string .
+
diff --git a/tests/libtracker-data/update/delete-insert-where-2.rq 
b/tests/libtracker-data/update/delete-insert-where-2.rq
new file mode 100644
index 0000000..a371f2a
--- /dev/null
+++ b/tests/libtracker-data/update/delete-insert-where-2.rq
@@ -0,0 +1,16 @@
+# Simple delete{}insert{}where{} test, replaces one single-valued object
+# through a variable
+
+INSERT DATA {
+  example:a  a example:A ;
+             example:string 'foo' .
+}
+
+DELETE {
+  example:a example:string ?string
+} INSERT {
+  example:a example:string 'bar'
+} WHERE {
+  example:a a example:A ;
+            example:string ?string
+}
diff --git a/tests/libtracker-data/update/delete-insert-where-3.ontology 
b/tests/libtracker-data/update/delete-insert-where-3.ontology
new file mode 100644
index 0000000..6383992
--- /dev/null
+++ b/tests/libtracker-data/update/delete-insert-where-3.ontology
@@ -0,0 +1,36 @@
+@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#> .
+@prefix nrl: <http://www.semanticdesktop.org/ontologies/2007/08/15/nrl#> .
+
+example: a tracker:Namespace ;
+       tracker:prefix "example" .
+
+example:A a rdfs:Class ;
+       rdfs:subClassOf rdfs:Resource .
+
+example:int a rdf:Property ;
+       nrl:maxCardinality 1 ;
+       rdfs:domain example:A ;
+       rdfs:range xsd:integer .
+
+example:double a rdf:Property ;
+       nrl:maxCardinality 1 ;
+        rdfs:domain example:A ;
+        rdfs:range xsd:double .
+
+example:string a rdf:Property ;
+       nrl:maxCardinality 1 ;
+        rdfs:domain example:A ;
+        rdfs:range xsd:string .
+
+example:intMultivalued a rdf:Property ;
+       rdfs:domain example:A ;
+       rdfs:range xsd:integer .
+
+example:stringMultivalued a rdf:Property ;
+        rdfs:domain example:A ;
+        rdfs:range xsd:string .
+
diff --git a/tests/libtracker-data/update/delete-insert-where-3.rq 
b/tests/libtracker-data/update/delete-insert-where-3.rq
new file mode 100644
index 0000000..9484dab
--- /dev/null
+++ b/tests/libtracker-data/update/delete-insert-where-3.rq
@@ -0,0 +1,15 @@
+# Simple delete{}insert{}where{} test, replaces a selected multi-valued object
+
+INSERT DATA {
+  example:a  a example:A ;
+             example:stringMultivalued 'foo' ;
+             example:stringMultivalued 'baa' .
+}
+
+DELETE {
+  example:a example:stringMultivalued 'baa'
+} INSERT {
+  example:a example:stringMultivalued 'bar'
+} WHERE {
+  example:a a example:A
+}
diff --git a/tests/libtracker-data/update/delete-insert-where-4.ontology 
b/tests/libtracker-data/update/delete-insert-where-4.ontology
new file mode 100644
index 0000000..6383992
--- /dev/null
+++ b/tests/libtracker-data/update/delete-insert-where-4.ontology
@@ -0,0 +1,36 @@
+@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#> .
+@prefix nrl: <http://www.semanticdesktop.org/ontologies/2007/08/15/nrl#> .
+
+example: a tracker:Namespace ;
+       tracker:prefix "example" .
+
+example:A a rdfs:Class ;
+       rdfs:subClassOf rdfs:Resource .
+
+example:int a rdf:Property ;
+       nrl:maxCardinality 1 ;
+       rdfs:domain example:A ;
+       rdfs:range xsd:integer .
+
+example:double a rdf:Property ;
+       nrl:maxCardinality 1 ;
+        rdfs:domain example:A ;
+        rdfs:range xsd:double .
+
+example:string a rdf:Property ;
+       nrl:maxCardinality 1 ;
+        rdfs:domain example:A ;
+        rdfs:range xsd:string .
+
+example:intMultivalued a rdf:Property ;
+       rdfs:domain example:A ;
+       rdfs:range xsd:integer .
+
+example:stringMultivalued a rdf:Property ;
+        rdfs:domain example:A ;
+        rdfs:range xsd:string .
+
diff --git a/tests/libtracker-data/update/delete-insert-where-4.rq 
b/tests/libtracker-data/update/delete-insert-where-4.rq
new file mode 100644
index 0000000..694e590
--- /dev/null
+++ b/tests/libtracker-data/update/delete-insert-where-4.rq
@@ -0,0 +1,17 @@
+# Simple delete{}insert{}where{} test, replaces all objects in
+# a multi-valued property, uses an intermediate variable
+
+INSERT DATA {
+  example:a  a example:A ;
+             example:stringMultivalued 'foo' ;
+             example:stringMultivalued 'baa' .
+}
+
+DELETE {
+  example:a example:stringMultivalued ?string
+} INSERT {
+  example:a example:stringMultivalued 'bar'
+} WHERE {
+  example:a a example:A ;
+            example:stringMultivalued ?string
+}
diff --git a/tests/libtracker-data/update/delete-insert-where-5.ontology 
b/tests/libtracker-data/update/delete-insert-where-5.ontology
new file mode 100644
index 0000000..6383992
--- /dev/null
+++ b/tests/libtracker-data/update/delete-insert-where-5.ontology
@@ -0,0 +1,36 @@
+@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#> .
+@prefix nrl: <http://www.semanticdesktop.org/ontologies/2007/08/15/nrl#> .
+
+example: a tracker:Namespace ;
+       tracker:prefix "example" .
+
+example:A a rdfs:Class ;
+       rdfs:subClassOf rdfs:Resource .
+
+example:int a rdf:Property ;
+       nrl:maxCardinality 1 ;
+       rdfs:domain example:A ;
+       rdfs:range xsd:integer .
+
+example:double a rdf:Property ;
+       nrl:maxCardinality 1 ;
+        rdfs:domain example:A ;
+        rdfs:range xsd:double .
+
+example:string a rdf:Property ;
+       nrl:maxCardinality 1 ;
+        rdfs:domain example:A ;
+        rdfs:range xsd:string .
+
+example:intMultivalued a rdf:Property ;
+       rdfs:domain example:A ;
+       rdfs:range xsd:integer .
+
+example:stringMultivalued a rdf:Property ;
+        rdfs:domain example:A ;
+        rdfs:range xsd:string .
+
diff --git a/tests/libtracker-data/update/delete-insert-where-5.rq 
b/tests/libtracker-data/update/delete-insert-where-5.rq
new file mode 100644
index 0000000..e7b6b9c
--- /dev/null
+++ b/tests/libtracker-data/update/delete-insert-where-5.rq
@@ -0,0 +1,16 @@
+# delete{}insert{}where{} test, fails to delete any
+# value, so the insert just adds up.
+
+INSERT DATA {
+  example:a  a example:A ;
+             example:stringMultivalued 'foo' ;
+             example:stringMultivalued 'baa' .
+}
+
+DELETE {
+  example:a example:stringMultivalued 'baz'
+} INSERT {
+  example:a example:stringMultivalued 'bar'
+} WHERE {
+  example:a a example:A
+}
diff --git a/tests/libtracker-data/update/delete-insert-where-6.ontology 
b/tests/libtracker-data/update/delete-insert-where-6.ontology
new file mode 100644
index 0000000..6383992
--- /dev/null
+++ b/tests/libtracker-data/update/delete-insert-where-6.ontology
@@ -0,0 +1,36 @@
+@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#> .
+@prefix nrl: <http://www.semanticdesktop.org/ontologies/2007/08/15/nrl#> .
+
+example: a tracker:Namespace ;
+       tracker:prefix "example" .
+
+example:A a rdfs:Class ;
+       rdfs:subClassOf rdfs:Resource .
+
+example:int a rdf:Property ;
+       nrl:maxCardinality 1 ;
+       rdfs:domain example:A ;
+       rdfs:range xsd:integer .
+
+example:double a rdf:Property ;
+       nrl:maxCardinality 1 ;
+        rdfs:domain example:A ;
+        rdfs:range xsd:double .
+
+example:string a rdf:Property ;
+       nrl:maxCardinality 1 ;
+        rdfs:domain example:A ;
+        rdfs:range xsd:string .
+
+example:intMultivalued a rdf:Property ;
+       rdfs:domain example:A ;
+       rdfs:range xsd:integer .
+
+example:stringMultivalued a rdf:Property ;
+        rdfs:domain example:A ;
+        rdfs:range xsd:string .
+
diff --git a/tests/libtracker-data/update/delete-insert-where-6.rq 
b/tests/libtracker-data/update/delete-insert-where-6.rq
new file mode 100644
index 0000000..64f1f70
--- /dev/null
+++ b/tests/libtracker-data/update/delete-insert-where-6.rq
@@ -0,0 +1,17 @@
+# delete{}insert{}where{} test, uses the looked
+# up variable for both deletion and insert
+
+INSERT DATA {
+  example:a  a example:A ;
+             example:string 'foo'
+}
+
+DELETE {
+  example:a example:string ?string
+} INSERT {
+  example:a example:string ?string2
+} WHERE {
+  example:a a example:A ;
+            example:string ?string .
+  BIND (CONCAT (?string, 'bar') AS ?string2)
+}
diff --git a/tests/libtracker-data/update/delete-insert-where-query-1.out 
b/tests/libtracker-data/update/delete-insert-where-query-1.out
new file mode 100644
index 0000000..b894cc7
--- /dev/null
+++ b/tests/libtracker-data/update/delete-insert-where-query-1.out
@@ -0,0 +1 @@
+"http://example/a";     "bar"
diff --git a/tests/libtracker-data/update/delete-insert-where-query-1.rq 
b/tests/libtracker-data/update/delete-insert-where-query-1.rq
new file mode 100644
index 0000000..c21c1d0
--- /dev/null
+++ b/tests/libtracker-data/update/delete-insert-where-query-1.rq
@@ -0,0 +1,3 @@
+SELECT ?s ?o {
+  ?s example:string ?o
+}
diff --git a/tests/libtracker-data/update/delete-insert-where-query-2.out 
b/tests/libtracker-data/update/delete-insert-where-query-2.out
new file mode 100644
index 0000000..b894cc7
--- /dev/null
+++ b/tests/libtracker-data/update/delete-insert-where-query-2.out
@@ -0,0 +1 @@
+"http://example/a";     "bar"
diff --git a/tests/libtracker-data/update/delete-insert-where-query-2.rq 
b/tests/libtracker-data/update/delete-insert-where-query-2.rq
new file mode 100644
index 0000000..c21c1d0
--- /dev/null
+++ b/tests/libtracker-data/update/delete-insert-where-query-2.rq
@@ -0,0 +1,3 @@
+SELECT ?s ?o {
+  ?s example:string ?o
+}
diff --git a/tests/libtracker-data/update/delete-insert-where-query-3.out 
b/tests/libtracker-data/update/delete-insert-where-query-3.out
new file mode 100644
index 0000000..35f20a6
--- /dev/null
+++ b/tests/libtracker-data/update/delete-insert-where-query-3.out
@@ -0,0 +1,2 @@
+"http://example/a";     "foo"
+"http://example/a";     "bar"
diff --git a/tests/libtracker-data/update/delete-insert-where-query-3.rq 
b/tests/libtracker-data/update/delete-insert-where-query-3.rq
new file mode 100644
index 0000000..f80241f
--- /dev/null
+++ b/tests/libtracker-data/update/delete-insert-where-query-3.rq
@@ -0,0 +1,4 @@
+SELECT ?s ?o {
+  ?s example:stringMultivalued ?o
+}
+ORDER BY DESC ?o
diff --git a/tests/libtracker-data/update/delete-insert-where-query-4.out 
b/tests/libtracker-data/update/delete-insert-where-query-4.out
new file mode 100644
index 0000000..b894cc7
--- /dev/null
+++ b/tests/libtracker-data/update/delete-insert-where-query-4.out
@@ -0,0 +1 @@
+"http://example/a";     "bar"
diff --git a/tests/libtracker-data/update/delete-insert-where-query-4.rq 
b/tests/libtracker-data/update/delete-insert-where-query-4.rq
new file mode 100644
index 0000000..f80241f
--- /dev/null
+++ b/tests/libtracker-data/update/delete-insert-where-query-4.rq
@@ -0,0 +1,4 @@
+SELECT ?s ?o {
+  ?s example:stringMultivalued ?o
+}
+ORDER BY DESC ?o
diff --git a/tests/libtracker-data/update/delete-insert-where-query-5.out 
b/tests/libtracker-data/update/delete-insert-where-query-5.out
new file mode 100644
index 0000000..34e0992
--- /dev/null
+++ b/tests/libtracker-data/update/delete-insert-where-query-5.out
@@ -0,0 +1,3 @@
+"http://example/a";     "foo"
+"http://example/a";     "bar"
+"http://example/a";     "baa"
diff --git a/tests/libtracker-data/update/delete-insert-where-query-5.rq 
b/tests/libtracker-data/update/delete-insert-where-query-5.rq
new file mode 100644
index 0000000..f80241f
--- /dev/null
+++ b/tests/libtracker-data/update/delete-insert-where-query-5.rq
@@ -0,0 +1,4 @@
+SELECT ?s ?o {
+  ?s example:stringMultivalued ?o
+}
+ORDER BY DESC ?o
diff --git a/tests/libtracker-data/update/delete-insert-where-query-6.out 
b/tests/libtracker-data/update/delete-insert-where-query-6.out
new file mode 100644
index 0000000..6199c07
--- /dev/null
+++ b/tests/libtracker-data/update/delete-insert-where-query-6.out
@@ -0,0 +1 @@
+"http://example/a";     "foobar"
diff --git a/tests/libtracker-data/update/delete-insert-where-query-6.rq 
b/tests/libtracker-data/update/delete-insert-where-query-6.rq
new file mode 100644
index 0000000..c0d71d6
--- /dev/null
+++ b/tests/libtracker-data/update/delete-insert-where-query-6.rq
@@ -0,0 +1,4 @@
+SELECT ?s ?o {
+  ?s example:string ?o
+}
+ORDER BY DESC ?o


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