diff -r 2b3247d02769 -r f55970e41793 server/src/tests/Models/DocumentTest.php --- a/server/src/tests/Models/DocumentTest.php Wed Jun 24 01:36:46 2015 +0200 +++ b/server/src/tests/Models/DocumentTest.php Mon Oct 05 17:02:10 2015 +0200 @@ -8,56 +8,45 @@ class DocumentTest extends TestCase { const TEST_DOC = << . - . - "Extrait des enqu\u00EAtes dialectologiques en vue de constituer un atlas linguistique de l'Alsace."@fr . - "audio/x-wav"^^ . - . - "primary_text"^^ . - "dialogue"^^ . - . - "lexicography"^^ . - "phonetics"^^ . - "anthropological_linguistics"^^ . - . - . - _:genid2d6c3879d9d2484bd98bb0bcb9dd0364fc2dgenid1 . - _:genid2d6c3879d9d2484bd98bb0bcb9dd0364fc2dgenid2 . - "Atlas linguistiques, cultures et parlers r\u00E9gionaux de France" . - "Copyright (c) D\u00E9partement de dialectologie alsacienne et mosellane de l'Universit\u00E9 de Strasbourg" . - "Atlas Linguistique et ethnographique de l'Alsace - Enquetes sur la conscience linguistique - ALA_608"@fr . - "Freely available for non-commercial use" . - . - . - . - "PT02H04M16S" . - "start=1980; end=1989; name=ann\u00E9es 80"^^ . - "France, Alsace"@fr . - "FR"^^ . - . - . - "2004-07-03"^^ . - "2014-11-04T16:25:54+01:00"^^ . - . -_:genid2d6c3879d9d2484bd98bb0bcb9dd0364fc2dgenid1 . -_:genid2d6c3879d9d2484bd98bb0bcb9dd0364fc2dgenid1 . -_:genid2d6c3879d9d2484bd98bb0bcb9dd0364fc2dgenid1 "Bothorel-Witz, Arlette" . -_:genid2d6c3879d9d2484bd98bb0bcb9dd0364fc2dgenid1 "interviewer"^^ . -_:genid2d6c3879d9d2484bd98bb0bcb9dd0364fc2dgenid1 . -_:genid2d6c3879d9d2484bd98bb0bcb9dd0364fc2dgenid2 . -_:genid2d6c3879d9d2484bd98bb0bcb9dd0364fc2dgenid2 . -_:genid2d6c3879d9d2484bd98bb0bcb9dd0364fc2dgenid2 "Huck, Dominique" . -_:genid2d6c3879d9d2484bd98bb0bcb9dd0364fc2dgenid2 "interviewer"^^ . -_:genid2d6c3879d9d2484bd98bb0bcb9dd0364fc2dgenid2 . - . + @prefix rdf: . + @prefix rdfs: . + @prefix sesame: . + @prefix owl: . + @prefix xsd: . + @prefix fn: . + + "Extrait des enquêtes dialectologiques en vue de constituer un atlas linguistique de l'Alsace."@fr ; + "audio/x-wav"^^ ; + , "primary_text"^^ , "dialogue"^^ ; + , "lexicography"^^ , "phonetics"^^ , "anthropological_linguistics"^^ ; + ; + ; + "Atlas linguistiques, cultures et parlers régionaux de France" ; + "Copyright (c) Département de dialectologie alsacienne et mosellane de l'Université de Strasbourg" ; + "Atlas Linguistique et ethnographique de l'Alsace - Enquetes sur la conscience linguistique - ALA_608"@fr ; + "Bothorel-Witz, Arlette" , "Huck, Dominique" ; + , ; + "Freely available for non-commercial use" ; + ; + , ; + "PT02H04M16S" ; + "start=1980; end=1989; name=années 80"^^ ; + "France, Alsace"@fr , "FR"^^ ; + ; + "2004-07-03"^^ ; + "2014-11-04T16:25:54+01:00"^^ . + + rdfs:label "Alsacien"@fr . + + rdfs:label "Huck, Dominique" ; + "depositor"^^ . EOT; - private $testGraph; public function setUp() { parent::setup(); - $this->graph = new \EasyRdf_Graph("http://purl.org/poi/crdo.vjf.cnrs.fr/crdo-ALA_608", DocumentTest::TEST_DOC); + $this->graph = new EasyRdf\Graph("http://purl.org/poi/crdo.vjf.cnrs.fr/crdo-ALA_608", DocumentTest::TEST_DOC); } @@ -75,7 +64,7 @@ $doc = new Document("http://purl.org/poi/crdo.vjf.cnrs.fr/crdo-ALA_608", $this->graph); $this->assertEquals("Atlas Linguistique et ethnographique de l'Alsace - Enquetes sur la conscience linguistique - ALA_608",$doc->getTitle(),'Must have correct title'); - $this->assertInstanceOf(\EasyRdf_Literal::class, $doc->getTitle(), "Title must be a literal"); + $this->assertInstanceOf(EasyRdf\Literal::class, $doc->getTitle(), "Title must be a literal"); $this->assertEquals('fr', $doc->getTitle()->getLang(), "Language title must be fr"); } @@ -84,7 +73,7 @@ $doc = new Document("http://purl.org/poi/crdo.vjf.cnrs.fr/crdo-ALA_608", $this->graph); $this->assertCount(1, $doc->getPublishers(), 'Publisher is an array of size 1'); - $this->assertEquals(new \EasyRdf_Literal("Atlas linguistiques, cultures et parlers régionaux de France",null,null), $doc->getPublishers()[0], "Must contains correct publisher"); + $this->assertEquals(new EasyRdf\Literal("Atlas linguistiques, cultures et parlers régionaux de France",null,null), $doc->getPublishers()[0], "Must contains correct publisher"); } @@ -108,8 +97,8 @@ $this->assertThat( $type, $this->logicalXor( - $this->isInstanceOf(\EasyRdf_Literal::class), - $this->isInstanceOf(\EasyRdf_Resource::class) + $this->isInstanceOf(EasyRdf\Literal::class), + $this->isInstanceOf(EasyRdf\Resource::class) ) ); } @@ -124,8 +113,8 @@ $this->assertThat( $type, $this->logicalXor( - $this->isInstanceOf(\EasyRdf_Literal::class), - $this->isInstanceOf(\EasyRdf_Resource::class) + $this->isInstanceOf(EasyRdf\Literal::class), + $this->isInstanceOf(EasyRdf\Resource::class) ) ); } @@ -136,7 +125,7 @@ $this->assertCount(1, $doc->getDiscourseTypes(), "types array must be of size 1"); - $this->assertContainsOnlyInstancesOf("EasyRdf_Literal", $doc->getDiscourseTypes(), "Result contains only literals"); + $this->assertContainsOnlyInstancesOf("EasyRdf\Literal", $doc->getDiscourseTypes(), "Result contains only literals"); $type = $doc->getDiscourseTypes()[0]; $this->assertEquals("dialogue", $type, "discourse type is dialogue"); $this->assertEquals("http://www.language-archives.org/OLAC/1.1/discourse-type", $type->getDatatypeUri(), "discourse type url"); @@ -150,16 +139,16 @@ $this->assertNotSame($doc, $doc2, "documents must not be the same"); $this->assertNotSame($doc->getGraph(), $doc2->getGraph(), "documents must not be the same"); - $this->assertTrue(\EasyRdf_Isomorphic::isomorphic($doc->getGraph(), $doc2->getGraph()),"graph must be isomorphic"); + $this->assertTrue(EasyRdf\Isomorphic::isomorphic($doc->getGraph(), $doc2->getGraph()),"graph must be isomorphic"); } public function testIsIsomorphic() { $doc1 = new Document("http://purl.org/poi/crdo.vjf.cnrs.fr/crdo-ALA_608", $this->graph); - $doc2 = new Document("http://purl.org/poi/crdo.vjf.cnrs.fr/crdo-ALA_608", new \EasyRdf_Graph("http://purl.org/poi/crdo.vjf.cnrs.fr/crdo-ALA_608", DocumentTest::TEST_DOC)); + $doc2 = new Document("http://purl.org/poi/crdo.vjf.cnrs.fr/crdo-ALA_608", new EasyRdf\Graph("http://purl.org/poi/crdo.vjf.cnrs.fr/crdo-ALA_608", DocumentTest::TEST_DOC)); $this->assertTrue($doc1->isIsomorphic($doc2),"document must be isomorphic"); - $doc2->addLiteral('dc11:type', new \EasyRdf_Literal("oratory", null, Config::get('OLAC_DISCOURSE_TYPE')['uri'])); + $doc2->addLiteral('dc11:type', new EasyRdf\Literal("oratory", null, Config::get('OLAC_DISCOURSE_TYPE')['uri'])); $this->assertFalse($doc1->isIsomorphic($doc2),"document must not be isomorphic"); } @@ -182,6 +171,37 @@ } + public function testUpdateDiscourseTypesDelta() { + + $newDiscourseTypes = ['oratory','dialogue','narrative']; + + $doc = new Document("http://purl.org/poi/crdo.vjf.cnrs.fr/crdo-ALA_608", $this->graph); + + $doc->updateDiscourseTypes($newDiscourseTypes); + + $this->assertTrue($doc->isDirty()); + + $this->assertEquals(1, $doc->deltaCount(), "There is one delta"); + + $delta = $doc->getDeltaList()[0]; + + $this->assertEquals("http://purl.org/poi/crdo.vjf.cnrs.fr/crdo-ALA_608", $delta->getDeletedGraph()->getUri(), "uri of deleted graph must be ok"); + $this->assertEquals("http://purl.org/poi/crdo.vjf.cnrs.fr/crdo-ALA_608", $delta->getAddedGraph()->getUri(), "uri of added graph must be ok"); + + $this->assertEquals(1, $delta->getDeletedGraph()->countTriples(), "deleted graph must have only one triple"); + $this->assertEquals(3, $delta->getAddedGraph()->countTriples(), "deleted graph must have only one triple"); + + $resQueryDiscourseType = $delta->getAddedGraph()->allLiterals('http://purl.org/poi/crdo.vjf.cnrs.fr/crdo-ALA_608', 'dc11:type'); + foreach($resQueryDiscourseType as $dt) { + $this->assertInstanceOf(EasyRdf\Literal::class, $dt, "This must be a litteral"); + $this->assertEquals('http://www.language-archives.org/OLAC/1.1/discourse-type', $dt->getDatatypeUri(), "The type of the Litteral must be correct"); + } + foreach($newDiscourseTypes as $dt) { + $this->assertContains($dt, $resQueryDiscourseType, "all discourse types must be in result list"); + } + + } + public function testUpdateDiscourseTypesIsomorphic() { $newDiscourseTypes = ['oratory','dialogue','narrative']; @@ -189,7 +209,7 @@ $doc = new Document("http://purl.org/poi/crdo.vjf.cnrs.fr/crdo-ALA_608", $this->graph); $doc->updateDiscourseTypes($newDiscourseTypes); - $doc2 = new Document("http://purl.org/poi/crdo.vjf.cnrs.fr/crdo-ALA_608", new \EasyRdf_Graph("http://purl.org/poi/crdo.vjf.cnrs.fr/crdo-ALA_608", DocumentTest::TEST_DOC)); + $doc2 = new Document("http://purl.org/poi/crdo.vjf.cnrs.fr/crdo-ALA_608", new EasyRdf\Graph("http://purl.org/poi/crdo.vjf.cnrs.fr/crdo-ALA_608", DocumentTest::TEST_DOC)); $this->assertFalse($doc->isIsomorphic($doc2),"document must not be isomorphic after adding discourse type"); }