diff -r f2a40bbc27f6 -r eadaf0b8f02e server/src/tests/Models/DocumentTest.php --- a/server/src/tests/Models/DocumentTest.php Tue Nov 17 13:11:55 2015 +0100 +++ b/server/src/tests/Models/DocumentTest.php Fri Nov 27 17:59:36 2015 +0100 @@ -8,90 +8,178 @@ class DocumentTest extends TestCase { const TEST_DOC = << . - @prefix rdfs: . - @prefix sesame: . + @prefix ore: . + @prefix edm: . + @prefix dc11: . + @prefix olac: . + @prefix dc: . + @prefix geo: . + @prefix xsd: . + @prefix skos: . @prefix owl: . - @prefix xsd: . - @prefix fn: . + + + a ore:Aggregation ; + edm:aggregatedCHO ; + edm:provider "Corpus de la Parole"@fr ; + edm:dataProvider ; + edm:isShownAt ; + edm:isShownBy ; + edm:rights ; + edm:hasView , , , . - "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"^^ . + + a edm:ProvidedCHO ; + dc11:description "Enregistrement issu du Corpus de Français Parlé Parisien des années 2000 (CFPP2000)"@fr, "Enregistrement: Caractéristiques de l'enregistrement; Identifiant : CFPP2000 [03-01] Ozgur_Kilic_H_32_alii_3e; Langue : français; Editeur : Université Paris III – Syled ; Date : 17.11.2010; Lieu de l'enregistrement : au domicile de l’enquêté Özgur KILIÇ ; Enquêteur : Sonia BRANCA-ROSOFF; Quartier(s) concerné(s) : Paris 3e, et 20e (pour l’âge adulte); Transcription : Noalig TANGUY; Anonymisation : Noalig TANGUY; Durée : 0h46’; "@fr, "Enquêteur: Etat civil; Prénom et NOM : Sonia BRANCA-ROSOFF; Sexe : féminin; Lieu de naissance : New-York (USA); Lieu la petite enfance : Bretagne, puis région parisienne, puis de 8 à 16 ans Nice; Date de naissance : 16.12.1947; Situation familiale : mariée, deux enfants; Mobilité géographique : Paris 1967-1971, Aix-en-Provence 1971-1996, Paris 1996-2012; Scolarité; Niveau : Primaire [X] Secondaire [X] ; Supérieur : Licence [X] Post-licence [X] ; Dernier diplôme, avec année d’obtention : Doctorat d’État (sciences du langage) 1987; Travail; Activité actuelle : Enseignante-chercheuse (linguistique française), Université de la Sorbonne Nouvelle-Paris III, Paris; Activités passées : ; Langues; Langue première : français; Parents (profession, lieu de naissance, scolarité…); Mère : née en 1916 à Nice (France), interprète de conférences ; licence d’anglais; Père : né en 1913 à Mananjary (Madagascar), ingénieur.; "@fr, "Enquêté 1: Etat civil; Prénom et NOM fictifs : Özgur KILIÇ ; Sexe : masculin; Lieu de naissance: Paris 11e, France; Lieu la petite enfance : Paris 11e, France; Date de naissance : 07.02.1979; Age au moment de l’enregistrement : 32 ans; Situation familiale : pacsé, deux enfants; Mobilité géographique : 3e, 18e, 20e arrondissements; Relation (parenté, ami, etc) avec Enquêteur : aucune; Relation (parenté, ami, etc) avec autres enquêtés : amis; Scolarité; Niveau : Primaire [X] Secondaire [X] ; Supérieur : Licence [X] Post-licence [X] ; Dernier diplôme, avec année d’obtention : ; Précisions : Primaire st Merri 75003 ; Secondaire : Victor Hugo, Turgot 75003, Jean Lurçat 75013 général bac ES Supérieur. Puis St Denis université (cinéma); Travail; Activité actuelle : ingénieur du son pour l'audiovisuel; Activités passées : restauration, assistant son pour l'audiovisuel ; Langues; Langues pratiquées : français, anglais, turc; Parents (profession, lieu de naissance, scolarité…); Mère : psychothérapeute, né a Houilles région parisienne France; Père : professeur d'université, né a Istanbul en Turquie. ; "@fr, "Enquêté 2: Etat civil; Prénom et NOM fictifs : Michel CHEVRIER; Sexe : masculin; Lieu de naissance : naissance à Boulogne-Billancourt (92); Lieu la petite enfance : rue du Temple, 3e arrondissement, Paris; Date de naissance : 01.06.1979; Age au moment de l’enregistrement : 31 ans; Situation familiale : concubinage; Mobilité géographique : 3e, puis 20e (entre 2005 et 2009) puis Romainville (depuis 2009); Relation (parenté, ami, etc) avec Enquêteur : ; Relation (parenté, ami, etc) avec Enquêté NOM : ; Relation (parenté, ami, etc) avec Enquêté NOM : ; Prénom et NOM réels : ; Réseau par lequel contacté : ; Adresse (si connue) : ; Téléphone (si connu) : ; Scolarité; Niveau : Primaire [X] Secondaire [X] ; Supérieur : Licence [X] Post-licence [X] ; Dernier diplôme, avec année d’obtention : ; Précisions : Primaire : École à aire ouverte rue St Merri 75003 ; Secondaire (Collège Victor Hugo 75003) puis Lycée Autogéré de Paris (75015) Bac Littéraire. Deux années au CIM (école de jazz) dans le 75018, puis 3 ans au conservatoire du 9eme; Travail; Activité actuelle : Musicien, Compositeur, Professeur de piano jazz ; Activités passées : Musicien; Langues; Langues pratiquées : français, anglais; Parents (profession, lieu de naissance, scolarité…); Mère : ancienne médecin généraliste pneumologue, puis sociologue, née en France; Père : enseignant en sciences de l'éducation à Paris 8 né en Belgique; "@fr, "Enquêté 3: Etat civil; Prénom et NOM fictifs : Benoît DU BREUIL-DE-PONT-EN-AUGE; Sexe : masculin; Lieu de naissance : Paris 14e; Lieu la petite enfance : Paris 3e; Date de naissance : 28.11.1978; Age au moment de l’enregistrement : 32 ans; Situation familiale : concubinage avéré, avec papier de la mairie tamponné et signé!; Mobilité géographique : à 2 ans vit dans le 9°, puis déménage pour le 3°, est resté dans la même rue pendant 20 ans tout en changeant d'immeuble. Ensuite le 19° pendant 4 ans, puis Pantin 6 mois puis Les Lilas. ; Relation (parenté, ami, etc) avec Enquêteur : aucune; Relation (parenté, ami, etc) avec autres enquêtés : voir Scolarité, Précisions; Prénom et NOM réels : ; Réseau par lequel contacté : ; Scolarité; Niveau : Primaire [X] Secondaire [X] ; Supérieur : Licence [ ] Post-licence [ ] ; Dernier diplôme, avec année d’obtention : CAP; Précisions : Primaire école à aire ouverte (St Merri) dans le 4° avec Augustin, Ôzgur, Michel. Secondaire : collège Victor-Hugo dans le 3° avec Ôzgur ; puis CAP ; Travail; Activité actuelle : ; Activités passées : ébéniste agenceur puis ébéniste restaurateur et enfin constructeur décors (ainsi que de nombreux petits jobs ayant duré moins d'un an); Langues; Langues pratiquées : français; Parents (profession, lieu de naissance, scolarité…); Mère : à la retraite ; secrétaire de rédaction dans un grand journal, baccalauréat ; née à Montrouge; Père : conseiller à travail à pole emploi, né à Boulogne Billancourt, baccalauréat présenté 3 ou 4 fois, puis obtenu par équivalence. ; "@fr, "Enquêté 4: Etat civil; Enquêté 4; Prénom et NOM fictifs : ; Sexe : féminin / masculin; Lieu de naissance : Paris 14e; Lieu de la petite enfance : Paris 4e et 3e ; Date de naissance : 06.12.1976; Age au moment de l’enregistrement : 34 ans; Situation familiale : ; Mobilité géographique : Rue la Bruyère 75009 (1976-1978), Rambuteau 75004 (1978-1987/88) & 75003 (chgt de côté de rue 1988-1998), a quitté Paris de 1998 à 2005 ; Rue Rambuteau 75003 (2006-2010), rue Gossec 75012 (2011); Relation (parenté, ami, etc) avec Enquêteur : aucune; Relation (parenté, ami, etc) avec Enquêté 2 : ami; Relation (parenté, ami, etc) avec Enquêté NOM : ; Réseau par lequel contacté : ; Scolarité; Niveau : Primaire [X] Secondaire [X] ; Supérieur : Licence [X] Post-licence [X] ; Dernier diplôme, avec année d’obtention : ; Précisions : Primaire : Ecole St Merri 75003. Secondaire : Collège François Couperin 75004, Institut St Pierre Fourier 75012 ; Cours Charlemagne 75014 ; Travail; Activité actuelle : Superviseur Centre d'appels ; Activités passées : Animateur Club Enfant, Réceptionniste ; Langues; Langues pratiquées :; Parents (profession, lieu de naissance, scolarité…); Mère : retraitée, Paris, bac + 1/2 (?) ; Père : Conseiller Pôle Emploi, Paris, bac. ; "@fr, "Enquêté 5: Etat civil; Prénom et NOM fictifs : Étienne SALVEGAS; Sexe : masculin; Lieu de naissance : Paris 12e; Lieu de la petite enfance : Paris 3e Le Marais; Date de naissance : 16.06.1978; Age au moment de l’enregistrement : 32 ans; Situation familiale : marié 1 enfant, 12 ans de vie commune ; Mobilité géographique : 3e (1978-1999) 19e (1999-2002) 9e (2002-2011) ; Relation (parenté, ami, etc) avec Enquêteur : ; Relation (parenté, ami, etc) avec Enquêté 2 : ami ; Relation (parenté, ami, etc) avec Enquêté NOM : ; Prénom et NOM réels : ; Scolarité; Primaire [X] Secondaire [X] ; Supérieur : Licence [X] Post-licence [ ] ; Dernier diplôme, avec année d’obtention : ; Précisions : Primaire : Ecole Vertus, rue des Vertus 3ème. Secondaire Collège Montgolfier / Lycée Turgot 3ème. Supérieur Droit Univ. Paris Panthéon Sorbonne ; Travail; Activité actuelle : évènementiel; Activités passées : stagiaire journaliste sportif / relations publiques, accueil, agent de sécurité, remplacement gardien, réceptionniste hôtellerie.; Langues; Langues pratiquées :; Parents (profession, lieu de naissance, scolarité…); Mère : né à Paris, lycée ; Père : né à Oloron (64), lycée ; "@fr ; + dc11:language ; + dc11:publisher ; + dc11:type , "primary_text"^^olac:linguistic-type, "narrative"^^olac:discourse-type, "report"^^olac:discourse-type, "unintelligible_speech"^^olac:discourse-type ; + dc:license ; + dc11:subject "lexicography"^^olac:linguistic-field, "phonetics"^^olac:linguistic-field, "anthropological_linguistics"^^olac:linguistic-field, "general_linguistics"^^olac:linguistic-field, , "text_and_corpus_linguistics"^^olac:linguistic-field, "phonology"^^olac:linguistic-field, "semantics"^^olac:linguistic-field, "sociolinguistics"^^olac:linguistic-field, "syntax"^^olac:linguistic-field, "typology"^^olac:linguistic-field, "discourse_analysis"^^olac:linguistic-field, "historical_linguistics"^^olac:linguistic-field, "language_documentation"^^olac:linguistic-field, "mathematical_linguistics"^^olac:linguistic-field ; + dc11:title "CFPP2000 [03-01] Ozgur_Kilic_H_32_alii_3e Entretien de Ozgur KILIÇ 2"@fr ; + dc:accessRights "Freely available for non-commercial use" ; + dc:extent "PT48M26S" ; + dc:isPartOf , ; + dc11:source "CFPP2000"@fr ; + dc11:coverage "Quartier concerné : 3e"@fr ; + olac:depositor ; + dc11:contributor , "Branca-Rosoff, Sonia", "Kiliç Ozgur", "Chevrier Michel", "du-Breuil-de-Pont-en-Auge Benoît", "du-Breuil-de-Pont-en-Auge Augustin", "Salvegas Etienne", "Tanguy Noalig" ; + olac:interviewer "Branca-Rosoff, Sonia" ; + olac:responder "Kiliç Ozgur", "Chevrier Michel", "du-Breuil-de-Pont-en-Auge Benoît", "du-Breuil-de-Pont-en-Auge Augustin", "Salvegas Etienne" ; + olac:transcriber "Tanguy Noalig" ; + dc:available "2013-10-12"^^dc:W3CDTF ; + dc:created "2010-11-17"^^dc:W3CDTF ; + dc:issued "2013-10-12T14:35:57+02:00"^^dc:W3CDTF ; + dc:spatial [ + a edm:Place ; + geo:lat "48.83975"^^xsd:float ; + geo:long "2.3542"^^xsd:float ; + skos:note "FR"^^dc:ISO3166, "France, Paris, Université Sorbonne Nouvelle Paris 3, site Censier"@fr ; + owl:sameAs + ] . - rdfs:label "Alsacien"@fr . + + a edm:WebResources ; + dc:extent "PT48M26S" ; + dc11:format "audio/x-wav"^^dc:IMT ; + dc:created "2010-11-17"^^dc:W3CDTF ; + dc:issued "2013-10-12T14:35:57+02:00"^^dc:W3CDTF . + + + a edm:WebResources ; + dc:extent "PT48M26S" ; + dc11:format "audio/x-wav"^^dc:IMT ; + edm:isDerivativeOf ; + dc:created "2010-11-17"^^dc:W3CDTF ; + dc:issued "2013-10-12T14:35:57+02:00"^^dc:W3CDTF . - rdfs:label "Huck, Dominique" ; - "depositor"^^ . + + a edm:WebResources ; + dc:extent "PT48M26S" ; + dc11:format "audio/mpeg"^^dc:IMT ; + edm:isDerivativeOf ; + dc:created "2010-11-17"^^dc:W3CDTF ; + dc:issued "2013-10-12T14:35:57+02:00"^^dc:W3CDTF . + + + a edm:WebResources ; + dc11:format "application/xml"^^dc:IMT ; + dc:created "2010-11-17"^^dc:W3CDTF ; + dc:issued "2013-11-04T22:20:07+01:00"^^dc:W3CDTF . + + + a edm:WebResources ; + dc11:format "application/xhtml+xml"^^dc:IMT ; + dc:created "2010-11-17"^^dc:W3CDTF ; + dc:issued "2013-11-04T22:20:07+01:00"^^dc:W3CDTF . EOT; 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/corpusdelaparole.huma-num.fr/crdo-CFPP2000_35_SOUND", DocumentTest::TEST_DOC); } public function testConstructor() { $this->assertNotNull($this->graph, 'Graph shoud not be null'); - $doc = new Document("http://purl.org/poi/crdo.vjf.cnrs.fr/crdo-ALA_608", $this->graph); + $doc = new Document("http://purl.org/poi/corpusdelaparole.huma-num.fr/crdo-CFPP2000_35_SOUND", $this->graph); - $this->assertEquals('crdo-ALA_608',$doc->getId(),'Must have the correct id'); + $this->assertEquals('crdo-CFPP2000_35_SOUND',$doc->getId(),'Must have the correct id'); } public function testTitle() { $this->assertNotNull($this->graph, 'Graph shoud not be null'); - $doc = new Document("http://purl.org/poi/crdo.vjf.cnrs.fr/crdo-ALA_608", $this->graph); + $doc = new Document("http://purl.org/poi/corpusdelaparole.huma-num.fr/crdo-CFPP2000_35_SOUND", $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->assertEquals("CFPP2000 [03-01] Ozgur_Kilic_H_32_alii_3e Entretien de Ozgur KILIÇ 2",$doc->getTitle(),'Must have correct title'); $this->assertInstanceOf(EasyRdf\Literal::class, $doc->getTitle(), "Title must be a literal"); $this->assertEquals('fr', $doc->getTitle()->getLang(), "Language title must be fr"); } public function testPublisher() { - $doc = new Document("http://purl.org/poi/crdo.vjf.cnrs.fr/crdo-ALA_608", $this->graph); + $doc = new Document("http://purl.org/poi/corpusdelaparole.huma-num.fr/crdo-CFPP2000_35_SOUND", $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->assertInstanceOf('EasyRdf\Resource', $doc->getPublishers()[0], 'publisher is a resource'); + $this->assertEquals("http://viaf.org/viaf/142432638", $doc->getPublishers()[0]->getUri(),""); } public function testMediaArray() { - $doc = new Document("http://purl.org/poi/crdo.vjf.cnrs.fr/crdo-ALA_608", $this->graph); + $doc = new Document("http://purl.org/poi/corpusdelaparole.huma-num.fr/crdo-CFPP2000_35_SOUND", $this->graph); - $this->assertCount(3, $doc->getMediaArray(), "Media array must be of size 3"); - foreach($doc->getMediaArray() as $media) { - $this->assertCount(2, $media, "media is a 2 element array"); + $this->assertCount(5, $doc->getMediaArray(), "Media array must be of size 5"); + foreach($doc->getMediaArray() as $url => $media) { + $this->assertCount(5, $media, "media is a 5 element array"); $this->assertArrayHasKey('format', $media, "media has 'format key'"); $this->assertArrayHasKey('url', $media, "media has url"); + $this->assertArrayHasKey('extent', $media, "media has extent"); + $this->assertArrayHasKey('extent_ms', $media, "media has extent_ms"); + $this->assertArrayHasKey('master', $media, "media has master"); + + $this->assertEquals($media['url'], $url); + + $this->assertContains( + $media['url'], + [ "http://cocoon.huma-num.fr/data/cfpp2000/Ozgur_Kilic_H_32_alii_3e-2.wav", + "http://cocoon.huma-num.fr/data/cfpp2000/Ozgur_Kilic_H_32_alii_3e-2.mp3", + "http://cocoon.huma-num.fr/exist/crdo/cfpp2000/fra/Ozgur_Kilic_H_32_alii_3e-2.xml", + "http://cocoon.huma-num.fr/exist/crdo/cfpp2000/fra/Ozgur_Kilic_H_32_alii_3e-2.xhtml", + "http://cocoon.huma-num.fr/data/archi/masters/372593.wav" + ] + ); + if($url === "http://cocoon.huma-num.fr/data/archi/masters/372593.wav") { + $this->assertEquals('audio/x-wav', $media['format']); + $this->assertTrue($media['master'] === true, "should be master"); + } + else { + $this->assertTrue($media['master'] === false, "should not be master"); + } + + if( $url === "http://cocoon.huma-num.fr/data/archi/masters/372593.wav" || + $url === "http://cocoon.huma-num.fr/data/cfpp2000/Ozgur_Kilic_H_32_alii_3e-2.mp3" || + $url === "http://cocoon.huma-num.fr/data/cfpp2000/Ozgur_Kilic_H_32_alii_3e-2.wav" ) { + $this->assertEquals("PT48M26S", $media['extent'], "extent is PT48M26S"); + $this->assertGreaterThan(0, $media['extent_ms'], "extent_ms must be > 0"); + $this->assertStringStartsWith('audio/', $media['format']); + } + else { + $this->assertNull($media['extent'], "no media extent"); + $this->assertSame(0, $media['extent_ms'], "extend in ms is 0"); + $this->assertStringStartsWith('application/', $media['format']); + } + } } public function testGetTypes() { - $doc = new Document("http://purl.org/poi/crdo.vjf.cnrs.fr/crdo-ALA_608", $this->graph); + $doc = new Document("http://purl.org/poi/corpusdelaparole.huma-num.fr/crdo-CFPP2000_35_SOUND", $this->graph); - $this->assertCount(3, $doc->getTypes(), "types array must be of size 3"); + $this->assertCount(5, $doc->getTypes(), "types array must be of size 5"); foreach($doc->getTypes() as $type) { $this->assertThat( @@ -105,7 +193,7 @@ } public function testGetOtherTypes() { - $doc = new Document("http://purl.org/poi/crdo.vjf.cnrs.fr/crdo-ALA_608", $this->graph); + $doc = new Document("http://purl.org/poi/corpusdelaparole.huma-num.fr/crdo-CFPP2000_35_SOUND", $this->graph); $this->assertCount(2, $doc->getOtherTypes(), "types array must be of size 3"); @@ -121,18 +209,18 @@ } public function testGetDiscourseTypes() { - $doc = new Document("http://purl.org/poi/crdo.vjf.cnrs.fr/crdo-ALA_608", $this->graph); + $doc = new Document("http://purl.org/poi/corpusdelaparole.huma-num.fr/crdo-CFPP2000_35_SOUND", $this->graph); - $this->assertCount(1, $doc->getDiscourseTypes(), "types array must be of size 1"); + $this->assertCount(3, $doc->getDiscourseTypes(), "types array must be of size 3"); $this->assertContainsOnlyInstancesOf("EasyRdf\Literal", $doc->getDiscourseTypes(), "Result contains only literals"); $type = $doc->getDiscourseTypes()[0]; - $this->assertEquals("dialogue", $type, "discourse type is dialogue"); + $this->assertEquals("narrative", $type->getValue(), "discourse type is narrative"); $this->assertEquals("http://www.language-archives.org/OLAC/1.1/discourse-type", $type->getDatatypeUri(), "discourse type url"); } public function testCloneDocument() { - $doc = new Document("http://purl.org/poi/crdo.vjf.cnrs.fr/crdo-ALA_608", $this->graph); + $doc = new Document("http://purl.org/poi/corpusdelaparole.huma-num.fr/crdo-CFPP2000_35_SOUND", $this->graph); $doc2 = clone $doc; @@ -143,8 +231,8 @@ } 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)); + $doc1 = new Document("http://purl.org/poi/corpusdelaparole.huma-num.fr/crdo-CFPP2000_35_SOUND", $this->graph); + $doc2 = new Document("http://purl.org/poi/corpusdelaparole.huma-num.fr/crdo-CFPP2000_35_SOUND", new EasyRdf\Graph("http://purl.org/poi/corpusdelaparole.huma-num.fr/crdo-CFPP2000_35_SOUND", DocumentTest::TEST_DOC)); $this->assertTrue($doc1->isIsomorphic($doc2),"document must be isomorphic"); @@ -155,14 +243,14 @@ public function testUpdateDiscourseTypes() { - $newDiscourseTypes = ['oratory','dialogue','narrative']; + $newDiscourseTypes = ['oratory','dialogue','narrative', 'formulaic', 'ludic']; - $doc = new Document("http://purl.org/poi/crdo.vjf.cnrs.fr/crdo-ALA_608", $this->graph); - $this->assertCount(1, $doc->getDiscourseTypes(), "types array must be of size 1"); + $doc = new Document("http://purl.org/poi/corpusdelaparole.huma-num.fr/crdo-CFPP2000_35_SOUND", $this->graph); + $this->assertCount(3, $doc->getDiscourseTypes(), "types array must be of size 3"); $doc->updateDiscourseTypes($newDiscourseTypes); - $this->assertCount(3, $doc->getDiscourseTypes(), "types array must be of size 3"); + $this->assertCount(5, $doc->getDiscourseTypes(), "types array must be of size 5"); $discourseTypes = $doc->getDiscourseTypes(); foreach($newDiscourseTypes as $dt) { @@ -173,9 +261,9 @@ public function testUpdateDiscourseTypesDelta() { - $newDiscourseTypes = ['oratory','dialogue','narrative']; + $newDiscourseTypes = ['oratory','dialogue','narrative', 'formulaic', 'ludic']; - $doc = new Document("http://purl.org/poi/crdo.vjf.cnrs.fr/crdo-ALA_608", $this->graph); + $doc = new Document("http://purl.org/poi/corpusdelaparole.huma-num.fr/crdo-CFPP2000_35_SOUND", $this->graph); $doc->updateDiscourseTypes($newDiscourseTypes); @@ -185,13 +273,13 @@ $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("http://purl.org/poi/corpusdelaparole.huma-num.fr/crdo-CFPP2000_35_SOUND", $delta->getDeletedGraph()->getUri(), "uri of deleted graph must be ok"); + $this->assertEquals("http://purl.org/poi/corpusdelaparole.huma-num.fr/crdo-CFPP2000_35_SOUND", $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"); + $this->assertEquals(3, $delta->getDeletedGraph()->countTriples(), "deleted graph must have only 3 triples"); + $this->assertEquals(5, $delta->getAddedGraph()->countTriples(), "deleted graph must have only 5 triples"); - $resQueryDiscourseType = $delta->getAddedGraph()->allLiterals('http://purl.org/poi/crdo.vjf.cnrs.fr/crdo-ALA_608', 'dc11:type'); + $resQueryDiscourseType = $delta->getAddedGraph()->allLiterals($doc->getProvidedCHO(), '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"); @@ -206,11 +294,12 @@ $newDiscourseTypes = ['oratory','dialogue','narrative']; - $doc = new Document("http://purl.org/poi/crdo.vjf.cnrs.fr/crdo-ALA_608", $this->graph); + $doc = new Document("http://purl.org/poi/corpusdelaparole.huma-num.fr/crdo-CFPP2000_35_SOUND", $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/corpusdelaparole.huma-num.fr/crdo-CFPP2000_35_SOUND", new EasyRdf\Graph("http://purl.org/poi/corpusdelaparole.huma-num.fr/crdo-CFPP2000_35_SOUND", DocumentTest::TEST_DOC)); $this->assertFalse($doc->isIsomorphic($doc2),"document must not be isomorphic after adding discourse type"); } + }