[tracker/wip/sam/meson] tests: Add tests around update syntax



commit 184c2684006965a2d128ab77721f21e412047905
Author: Carlos Garnacho <carlosg gnome org>
Date:   Sun Jun 26 18:05:22 2016 +0200

    tests: Add tests around update syntax
    
    So far, test for INSERT DATA, DELETE DATA and DELETE WHERE, which
    became broken recently.

 tests/libtracker-data/tracker-sparql-test.c        |    8 ++++
 .../libtracker-data/update/delete-data-1.ontology  |   36 ++++++++++++++++++++
 tests/libtracker-data/update/delete-data-1.rq      |   13 +++++++
 .../libtracker-data/update/delete-data-2.ontology  |   36 ++++++++++++++++++++
 tests/libtracker-data/update/delete-data-2.rq      |   13 +++++++
 .../libtracker-data/update/delete-data-query-1.out |    2 +
 .../libtracker-data/update/delete-data-query-1.rq  |    4 ++
 .../libtracker-data/update/delete-data-query-2.rq  |    4 ++
 .../libtracker-data/update/delete-where-1.ontology |   36 ++++++++++++++++++++
 tests/libtracker-data/update/delete-where-1.rq     |   12 ++++++
 .../libtracker-data/update/delete-where-2.ontology |   36 ++++++++++++++++++++
 tests/libtracker-data/update/delete-where-2.rq     |   10 +++++
 .../update/delete-where-query-1.out                |    1 +
 .../libtracker-data/update/delete-where-query-1.rq |    4 ++
 .../update/delete-where-query-2.out                |    1 +
 .../libtracker-data/update/delete-where-query-2.rq |    3 ++
 .../libtracker-data/update/insert-data-1.ontology  |   36 ++++++++++++++++++++
 tests/libtracker-data/update/insert-data-1.rq      |    6 +++
 .../libtracker-data/update/insert-data-2.ontology  |   36 ++++++++++++++++++++
 tests/libtracker-data/update/insert-data-2.rq      |    6 +++
 .../libtracker-data/update/insert-data-query-1.out |    2 +
 .../libtracker-data/update/insert-data-query-1.rq  |    3 ++
 .../libtracker-data/update/insert-data-query-2.rq  |    3 ++
 .../update/invalid-insert-where-1.ontology         |   35 +++++++++++++++++++
 .../update/invalid-insert-where-1.rq               |    5 +++
 .../update/invalid-insert-where-query-1.rq         |    3 ++
 26 files changed, 354 insertions(+), 0 deletions(-)
---
diff --git a/tests/libtracker-data/tracker-sparql-test.c b/tests/libtracker-data/tracker-sparql-test.c
index 01421a9..27acf01 100644
--- a/tests/libtracker-data/tracker-sparql-test.c
+++ b/tests/libtracker-data/tracker-sparql-test.c
@@ -142,6 +142,14 @@ const TestInfo tests[] = {
        { "bind/bind2", "bind/data", FALSE },
        { "bind/bind3", "bind/data", FALSE },
        { "bind/bind4", "bind/data", FALSE },
+       /* Update tests */
+       { "update/insert-data-query-1", "update/insert-data-1", FALSE, FALSE },
+       { "update/insert-data-query-2", "update/insert-data-2", FALSE, TRUE },
+       { "update/delete-data-query-1", "update/delete-data-1", FALSE, FALSE },
+       { "update/delete-data-query-2", "update/delete-data-2", FALSE, TRUE },
+       { "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 },
        { NULL }
 };
 
diff --git a/tests/libtracker-data/update/delete-data-1.ontology 
b/tests/libtracker-data/update/delete-data-1.ontology
new file mode 100644
index 0000000..6383992
--- /dev/null
+++ b/tests/libtracker-data/update/delete-data-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-data-1.rq b/tests/libtracker-data/update/delete-data-1.rq
new file mode 100644
index 0000000..73e6f7d
--- /dev/null
+++ b/tests/libtracker-data/update/delete-data-1.rq
@@ -0,0 +1,13 @@
+INSERT DATA {
+  example:a  a example:A ;
+             example:stringMultivalued 'foo' ;
+             example:stringMultivalued 'bar' ;
+             example:stringMultivalued 'baz' .
+  example:b  a example:A ;
+             example:stringMultivalued 'baa' .
+}
+
+DELETE DATA {
+  example:a  example:stringMultivalued 'bar' .
+  example:b  example:stringMultivalued 'baa' .
+}
diff --git a/tests/libtracker-data/update/delete-data-2.ontology 
b/tests/libtracker-data/update/delete-data-2.ontology
new file mode 100644
index 0000000..6383992
--- /dev/null
+++ b/tests/libtracker-data/update/delete-data-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-data-2.rq b/tests/libtracker-data/update/delete-data-2.rq
new file mode 100644
index 0000000..f77c00d
--- /dev/null
+++ b/tests/libtracker-data/update/delete-data-2.rq
@@ -0,0 +1,13 @@
+INSERT DATA {
+  example:a  a example:A ;
+             example:stringMultivalued 'foo' ;
+             example:stringMultivalued 'bar' ;
+             example:stringMultivalued 'baz' .
+  example:b  a example:A ;
+             example:stringMultivalued 'baa' .
+}
+
+# Expected to fail because DELETE DATA does not allow unbound variables
+DELETE DATA {
+  example:a  example:stringMultivalued ?foo .
+}
diff --git a/tests/libtracker-data/update/delete-data-query-1.out 
b/tests/libtracker-data/update/delete-data-query-1.out
new file mode 100644
index 0000000..63ae18d
--- /dev/null
+++ b/tests/libtracker-data/update/delete-data-query-1.out
@@ -0,0 +1,2 @@
+"http://example/a";     "foo"
+"http://example/a";     "baz"
diff --git a/tests/libtracker-data/update/delete-data-query-1.rq 
b/tests/libtracker-data/update/delete-data-query-1.rq
new file mode 100644
index 0000000..f80241f
--- /dev/null
+++ b/tests/libtracker-data/update/delete-data-query-1.rq
@@ -0,0 +1,4 @@
+SELECT ?s ?o {
+  ?s example:stringMultivalued ?o
+}
+ORDER BY DESC ?o
diff --git a/tests/libtracker-data/update/delete-data-query-2.out 
b/tests/libtracker-data/update/delete-data-query-2.out
new file mode 100644
index 0000000..e69de29
diff --git a/tests/libtracker-data/update/delete-data-query-2.rq 
b/tests/libtracker-data/update/delete-data-query-2.rq
new file mode 100644
index 0000000..f80241f
--- /dev/null
+++ b/tests/libtracker-data/update/delete-data-query-2.rq
@@ -0,0 +1,4 @@
+SELECT ?s ?o {
+  ?s example:stringMultivalued ?o
+}
+ORDER BY DESC ?o
diff --git a/tests/libtracker-data/update/delete-where-1.ontology 
b/tests/libtracker-data/update/delete-where-1.ontology
new file mode 100644
index 0000000..6383992
--- /dev/null
+++ b/tests/libtracker-data/update/delete-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-where-1.rq b/tests/libtracker-data/update/delete-where-1.rq
new file mode 100644
index 0000000..b23d6e7
--- /dev/null
+++ b/tests/libtracker-data/update/delete-where-1.rq
@@ -0,0 +1,12 @@
+INSERT DATA {
+  example:a  a example:A ;
+             example:stringMultivalued 'foo' ;
+             example:stringMultivalued 'bar' ;
+             example:stringMultivalued 'baz' .
+  example:b  a example:A ;
+             example:stringMultivalued 'baa' .
+}
+
+DELETE WHERE {
+  example:a  example:stringMultivalued ?anything .
+}
diff --git a/tests/libtracker-data/update/delete-where-2.ontology 
b/tests/libtracker-data/update/delete-where-2.ontology
new file mode 100644
index 0000000..6383992
--- /dev/null
+++ b/tests/libtracker-data/update/delete-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-where-2.rq b/tests/libtracker-data/update/delete-where-2.rq
new file mode 100644
index 0000000..0af348e
--- /dev/null
+++ b/tests/libtracker-data/update/delete-where-2.rq
@@ -0,0 +1,10 @@
+INSERT DATA {
+  example:a  a example:A ;
+             example:double 1.0203040506 .
+  example:b  a example:A ;
+             example:double 2.0304050607 .
+}
+
+DELETE WHERE {
+  example:a  example:double ?anything .
+}
diff --git a/tests/libtracker-data/update/delete-where-query-1.out 
b/tests/libtracker-data/update/delete-where-query-1.out
new file mode 100644
index 0000000..3ea6bd4
--- /dev/null
+++ b/tests/libtracker-data/update/delete-where-query-1.out
@@ -0,0 +1 @@
+"http://example/b";     "baa"
diff --git a/tests/libtracker-data/update/delete-where-query-1.rq 
b/tests/libtracker-data/update/delete-where-query-1.rq
new file mode 100644
index 0000000..f80241f
--- /dev/null
+++ b/tests/libtracker-data/update/delete-where-query-1.rq
@@ -0,0 +1,4 @@
+SELECT ?s ?o {
+  ?s example:stringMultivalued ?o
+}
+ORDER BY DESC ?o
diff --git a/tests/libtracker-data/update/delete-where-query-2.out 
b/tests/libtracker-data/update/delete-where-query-2.out
new file mode 100644
index 0000000..decefb9
--- /dev/null
+++ b/tests/libtracker-data/update/delete-where-query-2.out
@@ -0,0 +1 @@
+"http://example/b";     "2.0304050607"
diff --git a/tests/libtracker-data/update/delete-where-query-2.rq 
b/tests/libtracker-data/update/delete-where-query-2.rq
new file mode 100644
index 0000000..1bbc75a
--- /dev/null
+++ b/tests/libtracker-data/update/delete-where-query-2.rq
@@ -0,0 +1,3 @@
+SELECT ?s ?o {
+  ?s example:double ?o
+}
diff --git a/tests/libtracker-data/update/insert-data-1.ontology 
b/tests/libtracker-data/update/insert-data-1.ontology
new file mode 100644
index 0000000..6383992
--- /dev/null
+++ b/tests/libtracker-data/update/insert-data-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/insert-data-1.rq b/tests/libtracker-data/update/insert-data-1.rq
new file mode 100644
index 0000000..a67e61f
--- /dev/null
+++ b/tests/libtracker-data/update/insert-data-1.rq
@@ -0,0 +1,6 @@
+INSERT DATA {
+  example:a  a example:A ;
+             example:string 'foo' .
+  example:b  a example:A ;
+             example:string 'bar' .
+}
diff --git a/tests/libtracker-data/update/insert-data-2.ontology 
b/tests/libtracker-data/update/insert-data-2.ontology
new file mode 100644
index 0000000..6383992
--- /dev/null
+++ b/tests/libtracker-data/update/insert-data-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/insert-data-2.rq b/tests/libtracker-data/update/insert-data-2.rq
new file mode 100644
index 0000000..e0dc23c
--- /dev/null
+++ b/tests/libtracker-data/update/insert-data-2.rq
@@ -0,0 +1,6 @@
+# Expected to fail because we exceed example:string max cardinality
+INSERT DATA {
+  example:a  a example:A ;
+             example:string 'foo' .
+  example:a  example:string 'bar' .
+}
diff --git a/tests/libtracker-data/update/insert-data-query-1.out 
b/tests/libtracker-data/update/insert-data-query-1.out
new file mode 100644
index 0000000..374a3b2
--- /dev/null
+++ b/tests/libtracker-data/update/insert-data-query-1.out
@@ -0,0 +1,2 @@
+"http://example/a";     "foo"
+"http://example/b";     "bar"
diff --git a/tests/libtracker-data/update/insert-data-query-1.rq 
b/tests/libtracker-data/update/insert-data-query-1.rq
new file mode 100644
index 0000000..c21c1d0
--- /dev/null
+++ b/tests/libtracker-data/update/insert-data-query-1.rq
@@ -0,0 +1,3 @@
+SELECT ?s ?o {
+  ?s example:string ?o
+}
diff --git a/tests/libtracker-data/update/insert-data-query-2.out 
b/tests/libtracker-data/update/insert-data-query-2.out
new file mode 100644
index 0000000..e69de29
diff --git a/tests/libtracker-data/update/insert-data-query-2.rq 
b/tests/libtracker-data/update/insert-data-query-2.rq
new file mode 100644
index 0000000..c21c1d0
--- /dev/null
+++ b/tests/libtracker-data/update/insert-data-query-2.rq
@@ -0,0 +1,3 @@
+SELECT ?s ?o {
+  ?s example:string ?o
+}
diff --git a/tests/libtracker-data/update/invalid-insert-where-1.ontology 
b/tests/libtracker-data/update/invalid-insert-where-1.ontology
new file mode 100644
index 0000000..035056e
--- /dev/null
+++ b/tests/libtracker-data/update/invalid-insert-where-1.ontology
@@ -0,0 +1,35 @@
+@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/invalid-insert-where-1.rq 
b/tests/libtracker-data/update/invalid-insert-where-1.rq
new file mode 100644
index 0000000..01205f9
--- /dev/null
+++ b/tests/libtracker-data/update/invalid-insert-where-1.rq
@@ -0,0 +1,5 @@
+# Expected to fail because this is invalid syntax
+INSERT WHERE {
+  example:a a example:A ;
+            example:string ?foo
+}
diff --git a/tests/libtracker-data/update/invalid-insert-where-query-1.out 
b/tests/libtracker-data/update/invalid-insert-where-query-1.out
new file mode 100644
index 0000000..e69de29
diff --git a/tests/libtracker-data/update/invalid-insert-where-query-1.rq 
b/tests/libtracker-data/update/invalid-insert-where-query-1.rq
new file mode 100644
index 0000000..c21c1d0
--- /dev/null
+++ b/tests/libtracker-data/update/invalid-insert-where-query-1.rq
@@ -0,0 +1,3 @@
+SELECT ?s ?o {
+  ?s example:string ?o
+}


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