diff options
author | Ivan Frade <ivan.frade@nokia.com> | 2010-10-14 15:57:25 +0300 |
---|---|---|
committer | Ivan Frade <ivan.frade@nokia.com> | 2010-10-14 16:26:13 +0300 |
commit | 81fa4e7deab175bbd453a513b10f53ddefa05a60 (patch) | |
tree | 448c25490575bc412824c215f608f46f1f9fcf36 | |
parent | 469cde447513d1280d5881f818e001720104e5e8 (diff) | |
download | tracker-81fa4e7deab175bbd453a513b10f53ddefa05a60.tar.gz |
functional-tests: Testing cardinality changes in the ontology
Expected failure at the moment. New journal will help.
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 |