--- a/server/src/app/Models/Document.php Wed Oct 19 15:55:04 2016 +0200
+++ b/server/src/app/Models/Document.php Wed Oct 19 18:05:51 2016 +0200
@@ -100,13 +100,13 @@
public function getDiscourseTypes() {
return array_values(array_filter($this->getTypes(), function($v) {
- return $v instanceof Literal && $v->getDatatypeUri() === Config::get('corpusparole.olac_discourse_type')['uri'];
+ return $v instanceof Resource && preg_match(config('corpusparole.bnf_ark_url_regexp'), $v->getUri());
}));
}
public function getOtherTypes() {
$res = array_values(array_filter($this->getTypes(), function($v) {
- return $v instanceof Resource || $v->getDatatypeUri() !== Config::get('corpusparole.olac_discourse_type')['uri'];
+ return !($v instanceof Resource) || !preg_match(config('corpusparole.bnf_ark_url_regexp'), $v->getUri());
}));
return $res;
}
@@ -190,15 +190,14 @@
//delete
foreach($this->getDiscourseTypes() as $discourseType) {
- $literalValue = new Literal($discourseType, null, Config::get('corpusparole.olac_discourse_type')['uri']);
- $this->getProvidedCHO()->delete('dc11:type', $literalValue);
- $this->currentDelta->getDeletedGraph()->add($this->getProvidedCHO(), 'dc11:type', new Literal($discourseType, null, Config::get('corpusparole.olac_discourse_type')['uri']));
+ $this->getProvidedCHO()->delete('dc11:type', $discourseType);
+ $this->currentDelta->getDeletedGraph()->addResource($this->getProvidedCHO(), 'dc11:type', $discourseType->getUri());
}
// and re-add them
foreach($discoursesTypes as $dType) {
- $this->getProvidedCHO()->add('dc11:type', new Literal($dType, null, Config::get('corpusparole.olac_discourse_type')['uri']));
- $this->currentDelta->getAddedGraph()->add($this->getProvidedCHO(), 'dc11:type', new Literal($dType, null, Config::get('corpusparole.olac_discourse_type')['uri']));
+ $this->getProvidedCHO()->addResource('dc11:type', $dType);
+ $this->currentDelta->getAddedGraph()->addResource($this->getProvidedCHO(), 'dc11:type', $dType);
}
$this->clearMemoizationCache();
--- a/server/src/tests/Models/DocumentTest.php Wed Oct 19 15:55:04 2016 +0200
+++ b/server/src/tests/Models/DocumentTest.php Wed Oct 19 18:05:51 2016 +0200
@@ -140,7 +140,7 @@
public function testGetOtherTypes() {
$doc = new Document(config('corpusparole.corpus_doc_id_base_uri')."crdo-CFPP2000_35_SOUND", $this->inputGraphes['TEST']);
- $this->assertCount(5, $doc->getOtherTypes(), "types array must be of size 5");
+ $this->assertCount(6, $doc->getOtherTypes(), "types array must be of size 5");
foreach($doc->getTypes() as $type) {
$this->assertThat(
@@ -156,12 +156,11 @@
public function testGetDiscourseTypes() {
$doc = new Document(config('corpusparole.corpus_doc_id_base_uri')."crdo-CFPP2000_35_SOUND", $this->inputGraphes['TEST']);
- $this->assertCount(3, $doc->getDiscourseTypes(), "types array must be of size 3");
+ $this->assertCount(2, $doc->getDiscourseTypes(), "types array must be of size 3");
- $this->assertContainsOnlyInstancesOf("EasyRdf\Literal", $doc->getDiscourseTypes(), "Result contains only literals");
+ $this->assertContainsOnlyInstancesOf("EasyRdf\Resource", $doc->getDiscourseTypes(), "Result contains only Resources");
$type = $doc->getDiscourseTypes()[0];
- $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");
+ $this->assertEquals("http://ark.bnf.fr/ark:/12148/cb11932135w", $type->getUri(), "discourse type is cb11932135w");
}
public function testCloneDocument() {
@@ -188,14 +187,14 @@
public function testUpdateDiscourseTypes() {
- $newDiscourseTypes = ['oratory','dialogue','narrative', 'formulaic', 'ludic'];
+ $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"];
$doc = new Document(config('corpusparole.corpus_doc_id_base_uri')."crdo-CFPP2000_35_SOUND", $this->inputGraphes['TEST']);
- $this->assertCount(3, $doc->getDiscourseTypes(), "types array must be of size 3");
+ $this->assertCount(2, $doc->getDiscourseTypes(), "types array must be of size 2");
$doc->updateDiscourseTypes($newDiscourseTypes);
- $this->assertCount(5, $doc->getDiscourseTypes(), "types array must be of size 5");
+ $this->assertCount(4, $doc->getDiscourseTypes(), "types array must be of size 4");
$discourseTypes = $doc->getDiscourseTypes();
foreach($newDiscourseTypes as $dt) {
@@ -206,7 +205,7 @@
public function testUpdateDiscourseTypesDelta() {
- $newDiscourseTypes = ['oratory','dialogue','narrative', 'formulaic', 'ludic'];
+ $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"];
$doc = new Document(config('corpusparole.corpus_doc_id_base_uri')."crdo-CFPP2000_35_SOUND", $this->inputGraphes['TEST']);
@@ -221,13 +220,13 @@
$this->assertEquals(config('corpusparole.corpus_doc_id_base_uri')."crdo-CFPP2000_35_SOUND", $delta->getDeletedGraph()->getUri(), "uri of deleted graph must be ok");
$this->assertEquals(config('corpusparole.corpus_doc_id_base_uri')."crdo-CFPP2000_35_SOUND", $delta->getAddedGraph()->getUri(), "uri of added graph must be ok");
- $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");
+ $this->assertEquals(2, $delta->getDeletedGraph()->countTriples(), "deleted graph must have only 2 triples");
+ $this->assertEquals(4, $delta->getAddedGraph()->countTriples(), "deleted graph must have only 4 triples");
- $resQueryDiscourseType = $delta->getAddedGraph()->allLiterals($doc->getProvidedCHO(), 'dc11:type');
+ $resQueryDiscourseType = $delta->getAddedGraph()->allResources($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");
+ $this->assertInstanceOf(EasyRdf\Resource::class, $dt, "This must be a Resource");
+ $this->assertRegexp(config('corpusparole.bnf_ark_url_regexp'), $dt->getUri(), "The resource uri must be bnf ark");
}
foreach($newDiscourseTypes as $dt) {
$this->assertContains($dt, $resQueryDiscourseType, "all discourse types must be in result list");
--- a/server/src/tests/Repositories/DocumentRepositoryIntegrationTest.php Wed Oct 19 15:55:04 2016 +0200
+++ b/server/src/tests/Repositories/DocumentRepositoryIntegrationTest.php Wed Oct 19 18:05:51 2016 +0200
@@ -210,7 +210,8 @@
public function testSave() {
$doc = new Document(config('corpusparole.corpus_doc_id_base_uri')."crdo-ALA_738", $this->graph);
- $doc->updateDiscourseTypes(['oratory','drama','narrative']);
+ $updatedDiscourseTypes = ["http://ark.bnf.fr/ark:/12148/cb13319048g", "http://ark.bnf.fr/ark:/12148/cb11949715t" , "http://ark.bnf.fr/ark:/12148/cb119783362"];
+ $doc->updateDiscourseTypes($updatedDiscourseTypes);
$res = $this->documentRepository->save($doc);
@@ -220,18 +221,19 @@
$discoursesTypes = $res->getDiscourseTypes();
- $this->assertCount(3, $discoursesTypes, "types array must be of size 1");
+ $this->assertCount(3, $discoursesTypes, "types array must be of size 3");
- $this->assertContainsOnlyInstancesOf("EasyRdf\Literal", $discoursesTypes, "Result contains only literals");
+ $this->assertContainsOnlyInstancesOf("EasyRdf\Resource", $discoursesTypes, "Result contains only resources");
$newDiscoursesTypes = [];
foreach($discoursesTypes as $dt) {
- array_push($newDiscoursesTypes, $dt->getValue());
- $this->assertContains($dt->getValue(),['oratory','drama','narrative'],'Value in [oratory,drama,narrative]');
- $this->assertEquals("http://www.language-archives.org/OLAC/1.1/discourse-type", $dt->getDatatypeUri(), "discourse type url");
+ array_push($newDiscoursesTypes, $dt->getUri());
+ $this->assertContains($dt->getUri(), $updatedDiscourseTypes,"Value in ".print_r($updatedDiscourseTypes, true));
}
sort($newDiscoursesTypes);
- $this->assertEquals(['drama', 'narrative', 'oratory'], $newDiscoursesTypes, "array type must the same");
+ sort($updatedDiscourseTypes);
+
+ $this->assertEquals($updatedDiscourseTypes, $newDiscoursesTypes, "array type must the same");
}
public function testCount() {