summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIvan Frade <ivan.frade@nokia.com>2010-10-14 15:57:25 +0300
committerIvan Frade <ivan.frade@nokia.com>2010-10-14 16:26:13 +0300
commit81fa4e7deab175bbd453a513b10f53ddefa05a60 (patch)
tree448c25490575bc412824c215f608f46f1f9fcf36
parent469cde447513d1280d5881f818e001720104e5e8 (diff)
downloadtracker-81fa4e7deab175bbd453a513b10f53ddefa05a60.tar.gz
functional-tests: Testing cardinality changes in the ontology
Expected failure at the moment. New journal will help.
-rw-r--r--configure.ac1
-rwxr-xr-xtests/functional-tests/17-ontology-changes.py57
-rw-r--r--tests/functional-tests/test-ontologies/Makefile.am2
-rw-r--r--tests/functional-tests/test-ontologies/cardinality/10-xsd.ontology16
-rw-r--r--tests/functional-tests/test-ontologies/cardinality/11-rdf.ontology136
-rw-r--r--tests/functional-tests/test-ontologies/cardinality/12-nrl.ontology18
-rw-r--r--tests/functional-tests/test-ontologies/cardinality/20-dc.ontology19
-rw-r--r--tests/functional-tests/test-ontologies/cardinality/31-nao.ontology23
-rw-r--r--tests/functional-tests/test-ontologies/cardinality/90-tracker.ontology27
-rw-r--r--tests/functional-tests/test-ontologies/cardinality/91-test.ontology68
-rw-r--r--tests/functional-tests/test-ontologies/cardinality/Makefile.am14
11 files changed, 380 insertions, 1 deletions
diff --git a/configure.ac b/configure.ac
index fde9b1281..a72729279 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1973,6 +1973,7 @@ AC_CONFIG_FILES([
tests/functional-tests/test-ontologies/basic/Makefile
tests/functional-tests/test-ontologies/property-range-int-to-string/Makefile
tests/functional-tests/test-ontologies/property-range-string-to-date/Makefile
+ tests/functional-tests/test-ontologies/cardinality/Makefile
tests/functional-tests/ttl/Makefile
tests/Makefile
tests/tracker-miner-fs/Makefile
diff --git a/tests/functional-tests/17-ontology-changes.py b/tests/functional-tests/17-ontology-changes.py
index 3f45c88b5..d2215e76a 100755
--- a/tests/functional-tests/17-ontology-changes.py
+++ b/tests/functional-tests/17-ontology-changes.py
@@ -194,7 +194,64 @@ class PropertyRangeStringToInt (OntologyChangeTestTemplate):
result = self.tracker.query ("SELECT ?o WHERE { <%s> test:a_int ?o .}" % (self.instance))
self.assertEquals (result[0][0], "12")
+class PropertyMaxCardinality1toN (OntologyChangeTestTemplate):
+
+ @expectedFailureBug ("New journal is gonna work it out")
+ def test_property_cardinality_1_to_n (self):
+ self.template_test_ontology_change ()
+
+ def set_ontology_dirs (self):
+ #self.FIRST_ONTOLOGY_DIR = "basic"
+ #self.SECOND_ONTOLOGY_DIR = "cardinality"
+
+ self.FIRST_ONTOLOGY_DIR = "cardinality"
+ self.SECOND_ONTOLOGY_DIR = "basic"
+
+ def insert_data (self):
+ self.instance = "test://ontology-change/cardinality/1-to-n"
+ self.tracker.update ("INSERT { <%s> a test:A; test:a_n_cardinality 'some text'. }" % (self.instance))
+
+ result = self.tracker.query ("SELECT ?o WHERE { test:a_n_cardinality nrl:maxCardinality ?o}")
+ self.assertEquals (int (result[0][0]), 1)
+
+
+ def validate_status (self):
+ result = self.tracker.query ("SELECT ?o WHERE { test:a_n_cardinality nrl:maxCardinality ?o}")
+ self.assertEquals (len (result), 0, "Cardinality should be 0")
+
+ # Check the value is there
+ result = self.tracker.query ("SELECT ?o WHERE { <%s> test:a_n_cardinality ?o .}" % (self.instance))
+ self.assertEquals (str(result[0][0]), "some text")
+
+class PropertyMaxCardinalityNto1 (OntologyChangeTestTemplate):
+
+ @expectedFailureBug ("New journal is gonna work it out")
+ def test_property_cardinality_n_to_1 (self):
+ self.template_test_ontology_change ()
+
+ def set_ontology_dirs (self):
+ self.FIRST_ONTOLOGY_DIR = "basic"
+ self.SECOND_ONTOLOGY_DIR = "cardinality"
+
+ def insert_data (self):
+ self.instance = "test://ontology-change/cardinality/1-to-n"
+ self.tracker.update ("INSERT { <%s> a test:A; test:a_n_cardinality 'some text'. }" % (self.instance))
+
+ result = self.tracker.query ("SELECT ?o WHERE { test:a_n_cardinality nrl:maxCardinality ?o}")
+ self.assertEquals (len (result), 0, "Cardinality should be 0")
+
+
+ def validate_status (self):
+ result = self.tracker.query ("SELECT ?o WHERE { test:a_n_cardinality nrl:maxCardinality ?o}")
+ print result
+ self.assertEquals (int (result[0][0]), 1, "Cardinality should be 1")
+ # Check the value is there
+ result = self.tracker.query ("SELECT ?o WHERE { <%s> test:a_n_cardinality ?o .}" % (self.instance))
+ self.assertEquals (str(result[0][0]), "some text")
+
+
+
if __name__ == "__main__":
ut.main ()
diff --git a/tests/functional-tests/test-ontologies/Makefile.am b/tests/functional-tests/test-ontologies/Makefile.am
index 09d99c845..7b7d9135f 100644
--- a/tests/functional-tests/test-ontologies/Makefile.am
+++ b/tests/functional-tests/test-ontologies/Makefile.am
@@ -1,3 +1,3 @@
include $(top_srcdir)/Makefile.decl
-SUBDIRS = basic property-range-int-to-string property-range-string-to-date
+SUBDIRS = basic property-range-int-to-string property-range-string-to-date cardinality
diff --git a/tests/functional-tests/test-ontologies/cardinality/10-xsd.ontology b/tests/functional-tests/test-ontologies/cardinality/10-xsd.ontology
new file mode 100644
index 000000000..c22c5fd2b
--- /dev/null
+++ b/tests/functional-tests/test-ontologies/cardinality/10-xsd.ontology
@@ -0,0 +1,16 @@
+@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 nao: <http://www.semanticdesktop.org/ontologies/2007/08/15/nao#> .
+
+xsd: a tracker:Namespace, tracker:Ontology ;
+ tracker:prefix "xsd" ;
+ nao:lastModified "2010-02-16T11:00:00Z" .
+
+xsd:string a rdfs:Class .
+xsd:boolean a rdfs:Class .
+xsd:integer a rdfs:Class .
+xsd:double a rdfs:Class .
+xsd:date a rdfs:Class .
+xsd:dateTime a rdfs:Class .
+
diff --git a/tests/functional-tests/test-ontologies/cardinality/11-rdf.ontology b/tests/functional-tests/test-ontologies/cardinality/11-rdf.ontology
new file mode 100644
index 000000000..7a485a955
--- /dev/null
+++ b/tests/functional-tests/test-ontologies/cardinality/11-rdf.ontology
@@ -0,0 +1,136 @@
+@prefix nrl: <http://www.semanticdesktop.org/ontologies/2007/08/15/nrl#> .
+@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 nao: <http://www.semanticdesktop.org/ontologies/2007/08/15/nao#> .
+
+rdf: a tracker:Namespace, tracker:Ontology ;
+ tracker:prefix "rdf" ;
+ nao:lastModified "2010-06-29T13:00:00Z" .
+
+rdfs: a tracker:Namespace ;
+ tracker:prefix "rdfs" .
+
+rdfs:Resource a rdfs:Class ;
+ rdfs:label "All Resources" ;
+ rdfs:comment "All resources" .
+
+rdfs:Class a rdfs:Class ;
+ rdfs:label "Class" ;
+ rdfs:subClassOf rdfs:Resource .
+
+rdf:Property a rdfs:Class ;
+ rdfs:label "Property" ;
+ rdfs:subClassOf rdfs:Resource .
+
+rdfs:Literal a rdfs:Class ;
+ rdfs:label "Literal" ;
+ rdfs:subClassOf rdfs:Resource .
+
+rdf:type a rdf:Property ;
+ rdfs:domain rdfs:Resource ;
+ rdfs:range rdfs:Class .
+
+rdfs:subClassOf a rdf:Property ;
+ rdfs:domain rdfs:Class ;
+ rdfs:range rdfs:Class .
+
+rdfs:subPropertyOf a rdf:Property ;
+ rdfs:domain rdf:Property ;
+ rdfs:range rdf:Property .
+
+rdfs:comment a rdf:Property ;
+ nrl:maxCardinality 1 ;
+ rdfs:domain rdfs:Resource ;
+ rdfs:range xsd:string .
+
+rdfs:label a rdf:Property ;
+ nrl:maxCardinality 1 ;
+ rdfs:domain rdfs:Resource ;
+ rdfs:range xsd:string .
+
+rdfs:domain a rdf:Property ;
+ nrl:maxCardinality 1 ;
+ rdfs:domain rdf:Property ;
+ rdfs:range rdfs:Resource .
+
+rdfs:range a rdf:Property ;
+ nrl:maxCardinality 1 ;
+ rdfs:domain rdf:Property ;
+ rdfs:range rdfs:Class .
+
+tracker: a tracker:Namespace ;
+ tracker:prefix "tracker" .
+
+tracker:Namespace a rdfs:Class ;
+ rdfs:label "Namespace" ;
+ rdfs:subClassOf rdfs:Resource .
+
+tracker:Ontology a rdfs:Class ;
+ rdfs:label "Ontology" ;
+ rdfs:subClassOf rdfs:Resource .
+
+tracker:prefix a rdf:Property ;
+ nrl:maxCardinality 1 ;
+ rdfs:domain tracker:Namespace ;
+ rdfs:range xsd:string .
+
+tracker:domainIndex a rdf:Property ;
+ rdfs:domain rdfs:Class ;
+ rdfs:range rdf:Property .
+
+tracker:indexed a rdf:Property ;
+ nrl:maxCardinality 1 ;
+ rdfs:domain rdf:Property ;
+ rdfs:range xsd:boolean .
+
+tracker:secondaryIndex a rdf:Property ;
+ nrl:maxCardinality 1 ;
+ rdfs:domain rdf:Property ;
+ rdfs:range rdf:Property .
+
+tracker:fulltextIndexed a rdf:Property ;
+ nrl:maxCardinality 1 ;
+ rdfs:domain rdf:Property ;
+ rdfs:range xsd:boolean .
+
+tracker:fulltextNoLimit a rdf:Property ;
+ nrl:maxCardinality 1 ;
+ rdfs:domain rdf:Property ;
+ rdfs:range xsd:boolean .
+
+tracker:transient a rdf:Property ;
+ nrl:maxCardinality 1 ;
+ rdfs:domain rdf:Property ;
+ rdfs:range xsd:boolean .
+
+tracker:isAnnotation a rdf:Property ;
+ rdfs:comment "The property is never embedded on physical files" ;
+ nrl:maxCardinality 1 ;
+ rdfs:domain rdf:Property ;
+ rdfs:range xsd:boolean .
+
+tracker:weight a rdf:Property ;
+ nrl:maxCardinality 1 ;
+ rdfs:domain rdf:Property ;
+ rdfs:range xsd:integer .
+
+tracker:defaultValue a rdf:Property ;
+ nrl:maxCardinality 1 ;
+ rdfs:domain rdf:Property ;
+ rdfs:range xsd:string .
+
+tracker:added a rdf:Property ;
+ nrl:maxCardinality 1 ;
+ rdfs:domain rdfs:Resource ;
+ rdfs:range xsd:dateTime ;
+ tracker:isAnnotation true .
+
+# implicitly updated modification time
+tracker:modified a rdf:Property ;
+ nrl:maxCardinality 1 ;
+ rdfs:domain rdfs:Resource ;
+ rdfs:range xsd:integer ;
+ tracker:isAnnotation true .
+
diff --git a/tests/functional-tests/test-ontologies/cardinality/12-nrl.ontology b/tests/functional-tests/test-ontologies/cardinality/12-nrl.ontology
new file mode 100644
index 000000000..381e0c39c
--- /dev/null
+++ b/tests/functional-tests/test-ontologies/cardinality/12-nrl.ontology
@@ -0,0 +1,18 @@
+@prefix nrl: <http://www.semanticdesktop.org/ontologies/2007/08/15/nrl#> .
+@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 nao: <http://www.semanticdesktop.org/ontologies/2007/08/15/nao#> .
+
+nrl: a tracker:Namespace, tracker:Ontology ;
+ tracker:prefix "nrl" ;
+ nao:lastModified "2010-02-16T11:00:00Z" .
+
+nrl:InverseFunctionalProperty a rdfs:Class .
+
+nrl:maxCardinality a rdf:Property ;
+ nrl:maxCardinality 1 ;
+ rdfs:domain rdf:Property ;
+ rdfs:range xsd:integer .
+
diff --git a/tests/functional-tests/test-ontologies/cardinality/20-dc.ontology b/tests/functional-tests/test-ontologies/cardinality/20-dc.ontology
new file mode 100644
index 000000000..3567110e9
--- /dev/null
+++ b/tests/functional-tests/test-ontologies/cardinality/20-dc.ontology
@@ -0,0 +1,19 @@
+@prefix dc: <http://purl.org/dc/elements/1.1/> .
+@prefix nrl: <http://www.semanticdesktop.org/ontologies/2007/08/15/nrl#> .
+@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 nao: <http://www.semanticdesktop.org/ontologies/2007/08/15/nao#> .
+
+dc: a tracker:Namespace, tracker:Ontology ;
+ tracker:prefix "dc" ;
+ nao:lastModified "2010-03-23T16:00:00Z" .
+
+dc:date a rdf:Property ;
+ rdfs:label "Date" ;
+ rdfs:comment "A point or period of time associated with an event in the lifecycle of the resource." ;
+ rdfs:domain rdfs:Resource ;
+ rdfs:range xsd:dateTime .
+
+
diff --git a/tests/functional-tests/test-ontologies/cardinality/31-nao.ontology b/tests/functional-tests/test-ontologies/cardinality/31-nao.ontology
new file mode 100644
index 000000000..8303bc11d
--- /dev/null
+++ b/tests/functional-tests/test-ontologies/cardinality/31-nao.ontology
@@ -0,0 +1,23 @@
+@prefix dc: <http://purl.org/dc/elements/1.1/> .
+@prefix nao: <http://www.semanticdesktop.org/ontologies/2007/08/15/nao#> .
+@prefix nie: <http://www.semanticdesktop.org/ontologies/2007/01/19/nie#> .
+@prefix nrl: <http://www.semanticdesktop.org/ontologies/2007/08/15/nrl#> .
+@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 nao: <http://www.semanticdesktop.org/ontologies/2007/08/15/nao#> .
+
+nao: a tracker:Namespace, tracker:Ontology ;
+ tracker:prefix "nao" ;
+ nao:lastModified "2010-03-23T16:00:00Z" .
+
+nao:lastModified a rdf:Property ;
+ rdfs:label "lastModified" ;
+ rdfs:comment "last modification date" ;
+ rdfs:subPropertyOf dc:date ;
+ nrl:maxCardinality 1 ;
+ rdfs:domain rdfs:Resource ;
+ rdfs:range xsd:dateTime .
+
+
diff --git a/tests/functional-tests/test-ontologies/cardinality/90-tracker.ontology b/tests/functional-tests/test-ontologies/cardinality/90-tracker.ontology
new file mode 100644
index 000000000..eef0cd4b3
--- /dev/null
+++ b/tests/functional-tests/test-ontologies/cardinality/90-tracker.ontology
@@ -0,0 +1,27 @@
+@prefix fts: <http://www.tracker-project.org/ontologies/fts#> .
+@prefix nao: <http://www.semanticdesktop.org/ontologies/2007/08/15/nao#> .
+@prefix nie: <http://www.semanticdesktop.org/ontologies/2007/01/19/nie#> .
+@prefix nrl: <http://www.semanticdesktop.org/ontologies/2007/08/15/nrl#> .
+@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#> .
+
+tracker: a tracker:Ontology ;
+ nao:lastModified "2010-04-05T11:00:00Z" .
+
+#tracker:indexed a rdf:Property ;
+# nrl:maxCardinality 1 ;
+# rdfs:domain rdf:Property ;
+# rdfs:range xsd:boolean .
+
+tracker:notify a rdf:Property ;
+ nrl:maxCardinality 1 ;
+ rdfs:domain rdfs:Class ;
+ rdfs:range xsd:boolean .
+
+tracker:writeback a rdf:Property ;
+ nrl:maxCardinality 1 ;
+ rdfs:domain rdf:Property ;
+ rdfs:range xsd:boolean .
+
diff --git a/tests/functional-tests/test-ontologies/cardinality/91-test.ontology b/tests/functional-tests/test-ontologies/cardinality/91-test.ontology
new file mode 100644
index 000000000..48f72b7ca
--- /dev/null
+++ b/tests/functional-tests/test-ontologies/cardinality/91-test.ontology
@@ -0,0 +1,68 @@
+@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
+@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
+@prefix tracker: <http://www.tracker-project.org/ontologies/tracker#> .
+@prefix test: <http://example.org/ns#> .
+@prefix nao: <http://www.semanticdesktop.org/ontologies/2007/08/15/nao#> .
+@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
+@prefix nrl: <http://www.semanticdesktop.org/ontologies/2007/08/15/nrl#> .
+
+#
+# Note: If you modify this ontology remember to replicate the changes in the other
+# 91 ontologies
+#
+#
+# A (with props for string and int, string n-cardinality, )
+# / \
+# B C
+#
+test: a tracker:Namespace, tracker:Ontology ;
+ nao:lastModified "2010-03-24T11:00:04Z" ;
+ tracker:prefix "test" .
+
+test:A a rdfs:Class .
+
+test:a_string a rdf:Property ;
+ rdfs:comment "Property to test the conversions from string" ;
+ rdfs:domain test:A ;
+ rdfs:range xsd:string ;
+ nrl:maxCardinality 1 .
+
+test:a_datetime a rdf:Property ;
+ rdfs:comment "Property to test the changes string/date" ;
+ rdfs:domain test:A ;
+ rdfs:range xsd:dateTime ;
+ nrl:maxCardinality 1 .
+
+test:a_int a rdf:Property ;
+ rdfs:comment "Property to test the changes string/int" ;
+ rdfs:domain test:A ;
+ rdfs:range xsd:integer ;
+ nrl:maxCardinality 1 .
+
+# ******** TEST CHANGE ****
+
+test:a_n_cardinality a rdf:Property ;
+ rdfs:comment "This property has cardinality N in master";
+ nrl:maxCardinality 1 ;
+ rdfs:domain test:A ;
+ rdfs:range xsd:string .
+
+# **************************
+
+test:a_superprop a rdf:Property ;
+ rdfs:comment "To use as superproperty and test the superproperty changes in the subprop." ;
+ rdfs:domain test:A ;
+ rdfs:range xsd:string .
+
+
+test:B a rdfs:Class ;
+ rdfs:subClassOf test:A .
+
+test:C a rdfs:Class ;
+ rdfs:subClassOf test:A .
+
+test:c_subprop a rdf:Property ;
+ rdfs:comment "To test changes in the superproperty" ;
+ rdfs:subPropertyOf test:a_superprop ;
+ rdfs:domain test:C ;
+ rdfs:range xsd:string .
diff --git a/tests/functional-tests/test-ontologies/cardinality/Makefile.am b/tests/functional-tests/test-ontologies/cardinality/Makefile.am
new file mode 100644
index 000000000..35548f670
--- /dev/null
+++ b/tests/functional-tests/test-ontologies/cardinality/Makefile.am
@@ -0,0 +1,14 @@
+include $(top_srcdir)/Makefile.decl
+
+cardinalitydir = $(datadir)/tracker-tests/test-ontologies/cardinality
+
+cardinality_DATA = \
+ 10-xsd.ontology \
+ 11-rdf.ontology \
+ 12-nrl.ontology \
+ 20-dc.ontology \
+ 31-nao.ontology \
+ 90-tracker.ontology \
+ 91-test.ontology
+
+EXTRA_DIST = $(cardinality_DATA) \ No newline at end of file