server/src/tests/Models/DocumentTest.php
changeset 371 0365fd9977a4
parent 326 226d5b17a119
child 445 b1e5ad6b2a29
equal deleted inserted replaced
370:d7c5b43d309a 371:0365fd9977a4
   138     }
   138     }
   139 
   139 
   140     public function testGetOtherTypes() {
   140     public function testGetOtherTypes() {
   141         $doc = new Document(config('corpusparole.corpus_doc_id_base_uri')."crdo-CFPP2000_35_SOUND", $this->inputGraphes['TEST']);
   141         $doc = new Document(config('corpusparole.corpus_doc_id_base_uri')."crdo-CFPP2000_35_SOUND", $this->inputGraphes['TEST']);
   142 
   142 
   143         $this->assertCount(5, $doc->getOtherTypes(), "types array must be of size 5");
   143         $this->assertCount(6, $doc->getOtherTypes(), "types array must be of size 5");
   144 
   144 
   145         foreach($doc->getTypes() as $type) {
   145         foreach($doc->getTypes() as $type) {
   146             $this->assertThat(
   146             $this->assertThat(
   147                 $type,
   147                 $type,
   148                 $this->logicalXor(
   148                 $this->logicalXor(
   154     }
   154     }
   155 
   155 
   156     public function testGetDiscourseTypes() {
   156     public function testGetDiscourseTypes() {
   157         $doc = new Document(config('corpusparole.corpus_doc_id_base_uri')."crdo-CFPP2000_35_SOUND", $this->inputGraphes['TEST']);
   157         $doc = new Document(config('corpusparole.corpus_doc_id_base_uri')."crdo-CFPP2000_35_SOUND", $this->inputGraphes['TEST']);
   158 
   158 
   159         $this->assertCount(3, $doc->getDiscourseTypes(), "types array must be of size 3");
   159         $this->assertCount(2, $doc->getDiscourseTypes(), "types array must be of size 3");
   160 
   160 
   161         $this->assertContainsOnlyInstancesOf("EasyRdf\Literal", $doc->getDiscourseTypes(), "Result contains only literals");
   161         $this->assertContainsOnlyInstancesOf("EasyRdf\Resource", $doc->getDiscourseTypes(), "Result contains only Resources");
   162         $type = $doc->getDiscourseTypes()[0];
   162         $type = $doc->getDiscourseTypes()[0];
   163         $this->assertEquals("narrative", $type->getValue(), "discourse type is narrative");
   163         $this->assertEquals("http://ark.bnf.fr/ark:/12148/cb11932135w", $type->getUri(), "discourse type is cb11932135w");
   164         $this->assertEquals("http://www.language-archives.org/OLAC/1.1/discourse-type", $type->getDatatypeUri(), "discourse type url");
       
   165     }
   164     }
   166 
   165 
   167     public function testCloneDocument() {
   166     public function testCloneDocument() {
   168         $doc = new Document(config('corpusparole.corpus_doc_id_base_uri')."crdo-CFPP2000_35_SOUND", $this->inputGraphes['TEST']);
   167         $doc = new Document(config('corpusparole.corpus_doc_id_base_uri')."crdo-CFPP2000_35_SOUND", $this->inputGraphes['TEST']);
   169 
   168 
   186         $this->assertFalse($doc1->isIsomorphic($doc2),"document must not be isomorphic");
   185         $this->assertFalse($doc1->isIsomorphic($doc2),"document must not be isomorphic");
   187     }
   186     }
   188 
   187 
   189     public function testUpdateDiscourseTypes() {
   188     public function testUpdateDiscourseTypes() {
   190 
   189 
   191         $newDiscourseTypes = ['oratory','dialogue','narrative', 'formulaic', 'ludic'];
   190         $newDiscourseTypes = ["http://ark.bnf.fr/ark:/12148/cb11932135w" , "http://ark.bnf.fr/ark:/12148/cb13319048g", "http://ark.bnf.fr/ark:/12148/cb11949715t" , "http://ark.bnf.fr/ark:/12148/cb119783362"];
   192 
   191 
   193         $doc = new Document(config('corpusparole.corpus_doc_id_base_uri')."crdo-CFPP2000_35_SOUND", $this->inputGraphes['TEST']);
   192         $doc = new Document(config('corpusparole.corpus_doc_id_base_uri')."crdo-CFPP2000_35_SOUND", $this->inputGraphes['TEST']);
   194         $this->assertCount(3, $doc->getDiscourseTypes(), "types array must be of size 3");
   193         $this->assertCount(2, $doc->getDiscourseTypes(), "types array must be of size 2");
   195 
   194 
   196         $doc->updateDiscourseTypes($newDiscourseTypes);
   195         $doc->updateDiscourseTypes($newDiscourseTypes);
   197 
   196 
   198         $this->assertCount(5, $doc->getDiscourseTypes(), "types array must be of size 5");
   197         $this->assertCount(4, $doc->getDiscourseTypes(), "types array must be of size 4");
   199 
   198 
   200         $discourseTypes = $doc->getDiscourseTypes();
   199         $discourseTypes = $doc->getDiscourseTypes();
   201         foreach($newDiscourseTypes as $dt) {
   200         foreach($newDiscourseTypes as $dt) {
   202             $this->assertContains($dt, $discourseTypes, "all discourse types must be in result list");
   201             $this->assertContains($dt, $discourseTypes, "all discourse types must be in result list");
   203         }
   202         }
   204 
   203 
   205     }
   204     }
   206 
   205 
   207     public function testUpdateDiscourseTypesDelta() {
   206     public function testUpdateDiscourseTypesDelta() {
   208 
   207 
   209         $newDiscourseTypes = ['oratory','dialogue','narrative', 'formulaic', 'ludic'];
   208         $newDiscourseTypes = ["http://ark.bnf.fr/ark:/12148/cb11932135w" , "http://ark.bnf.fr/ark:/12148/cb13319048g", "http://ark.bnf.fr/ark:/12148/cb11949715t" , "http://ark.bnf.fr/ark:/12148/cb119783362"];
   210 
   209 
   211         $doc = new Document(config('corpusparole.corpus_doc_id_base_uri')."crdo-CFPP2000_35_SOUND", $this->inputGraphes['TEST']);
   210         $doc = new Document(config('corpusparole.corpus_doc_id_base_uri')."crdo-CFPP2000_35_SOUND", $this->inputGraphes['TEST']);
   212 
   211 
   213         $doc->updateDiscourseTypes($newDiscourseTypes);
   212         $doc->updateDiscourseTypes($newDiscourseTypes);
   214 
   213 
   219         $delta = $doc->getDeltaList()[0];
   218         $delta = $doc->getDeltaList()[0];
   220 
   219 
   221         $this->assertEquals(config('corpusparole.corpus_doc_id_base_uri')."crdo-CFPP2000_35_SOUND", $delta->getDeletedGraph()->getUri(), "uri of deleted graph must be ok");
   220         $this->assertEquals(config('corpusparole.corpus_doc_id_base_uri')."crdo-CFPP2000_35_SOUND", $delta->getDeletedGraph()->getUri(), "uri of deleted graph must be ok");
   222         $this->assertEquals(config('corpusparole.corpus_doc_id_base_uri')."crdo-CFPP2000_35_SOUND", $delta->getAddedGraph()->getUri(), "uri of added graph must be ok");
   221         $this->assertEquals(config('corpusparole.corpus_doc_id_base_uri')."crdo-CFPP2000_35_SOUND", $delta->getAddedGraph()->getUri(), "uri of added graph must be ok");
   223 
   222 
   224         $this->assertEquals(3, $delta->getDeletedGraph()->countTriples(), "deleted graph must have only 3 triples");
   223         $this->assertEquals(2, $delta->getDeletedGraph()->countTriples(), "deleted graph must have only 2 triples");
   225         $this->assertEquals(5, $delta->getAddedGraph()->countTriples(), "deleted graph must have only 5 triples");
   224         $this->assertEquals(4, $delta->getAddedGraph()->countTriples(), "deleted graph must have only 4 triples");
   226 
   225 
   227         $resQueryDiscourseType = $delta->getAddedGraph()->allLiterals($doc->getProvidedCHO(), 'dc11:type');
   226         $resQueryDiscourseType = $delta->getAddedGraph()->allResources($doc->getProvidedCHO(), 'dc11:type');
   228         foreach($resQueryDiscourseType as $dt) {
   227         foreach($resQueryDiscourseType as $dt) {
   229             $this->assertInstanceOf(EasyRdf\Literal::class, $dt, "This must be a litteral");
   228             $this->assertInstanceOf(EasyRdf\Resource::class, $dt, "This must be a Resource");
   230             $this->assertEquals('http://www.language-archives.org/OLAC/1.1/discourse-type', $dt->getDatatypeUri(), "The type of the Litteral must be correct");
   229             $this->assertRegexp(config('corpusparole.bnf_ark_url_regexp'), $dt->getUri(), "The resource uri must be bnf ark");
   231         }
   230         }
   232         foreach($newDiscourseTypes as $dt) {
   231         foreach($newDiscourseTypes as $dt) {
   233             $this->assertContains($dt, $resQueryDiscourseType, "all discourse types must be in result list");
   232             $this->assertContains($dt, $resQueryDiscourseType, "all discourse types must be in result list");
   234         }
   233         }
   235 
   234