server/src/tests/Repositories/DocumentRepositoryTest.php
changeset 143 023b6d467566
parent 129 4fca650b9b8a
child 168 17f10b56c079
equal deleted inserted replaced
142:86fcf0c837c0 143:023b6d467566
    20 
    20 
    21     _:genid-2267740936ad4d04a567e6787732f0dd-genid1 a <http://www.europeana.eu/schemas/edm/Place> ;
    21     _:genid-2267740936ad4d04a567e6787732f0dd-genid1 a <http://www.europeana.eu/schemas/edm/Place> ;
    22         owl:sameAs <http://sws.geonames.org/3038033/> ;
    22         owl:sameAs <http://sws.geonames.org/3038033/> ;
    23         <http://www.w3.org/2004/02/skos/core#note> "northlimit=47.431892250000033; southlimit=49.053971250000046;westlimit=6.846186050000028; eastlimit=8.232571550000074;"^^<http://purl.org/dc/terms/Box> , "FR"^^<http://purl.org/dc/terms/ISO3166> , "France, Alsace"@fr .
    23         <http://www.w3.org/2004/02/skos/core#note> "northlimit=47.431892250000033; southlimit=49.053971250000046;westlimit=6.846186050000028; eastlimit=8.232571550000074;"^^<http://purl.org/dc/terms/Box> , "FR"^^<http://purl.org/dc/terms/ISO3166> , "France, Alsace"@fr .
    24 
    24 
    25     <http://corpusdelaparole.huma-num.fr/corpus/res/crdo-ALA_738> a <http://www.openarchives.org/ore/terms/Aggregation> ;
    25     <%1\$scrdo-ALA_738> a <http://www.openarchives.org/ore/terms/Aggregation> ;
    26         <http://www.europeana.eu/schemas/edm/aggregatedCHO> <http://purl.org/poi/crdo.vjf.cnrs.fr/crdo-ALA_738> ;
    26         <http://www.europeana.eu/schemas/edm/aggregatedCHO> <http://purl.org/poi/crdo.vjf.cnrs.fr/crdo-ALA_738> ;
    27         <http://www.europeana.eu/schemas/edm/dataProvider> "Atlas linguistiques, cultures et parlers régionaux de France" ;
    27         <http://www.europeana.eu/schemas/edm/dataProvider> "Atlas linguistiques, cultures et parlers régionaux de France" ;
    28         <http://www.europeana.eu/schemas/edm/hasView> <http://cocoon.huma-num.fr/data/ala/ALA_738.mp3> , <http://cocoon.huma-num.fr/data/ala/ALA_738_22km.wav> ;
    28         <http://www.europeana.eu/schemas/edm/hasView> <http://cocoon.huma-num.fr/data/ala/ALA_738.mp3> , <http://cocoon.huma-num.fr/data/ala/ALA_738_22km.wav> ;
    29         <http://www.europeana.eu/schemas/edm/isShownAt> <http://corpusdelaparole.huma-num.fr/corpus-app#/detail/crdo-ALA_738> ;
    29         <http://www.europeana.eu/schemas/edm/isShownAt> <http://corpusdelaparole.huma-num.fr/corpus-app#/detail/crdo-ALA_738> ;
    30         <http://www.europeana.eu/schemas/edm/isShownBy> <http://cocoon.huma-num.fr/data/ala/masters/ALA_738.wav> ;
    30         <http://www.europeana.eu/schemas/edm/isShownBy> <http://cocoon.huma-num.fr/data/ala/masters/ALA_738.wav> ;
    76         parent::__construct($name);
    76         parent::__construct($name);
    77     }
    77     }
    78 
    78 
    79     public function setUp() {
    79     public function setUp() {
    80         parent::setUp();
    80         parent::setUp();
    81         $this->graph = new EasyRdf\Graph("http://corpusdelaparole.huma-num.fr/corpus/res/crdo-ALA_738", DocumentRepositoryTest::TEST_DOC);
    81         $this->graph = new EasyRdf\Graph(config('corpusparole.corpus_doc_id_base_uri')."crdo-ALA_738", sprintf(DocumentRepositoryTest::TEST_DOC, config('corpusparole.corpus_doc_id_base_uri')));
    82         $this->corpusDocIdBaseUri = config('corpusparole.corpus_doc_id_base_uri');
    82         $this->corpusDocIdBaseUri = config('corpusparole.corpus_doc_id_base_uri');
    83     }
    83     }
    84 
    84 
    85     public function tearDown() {
    85     public function tearDown() {
    86         parent::tearDown();
    86         parent::tearDown();
   107 
   107 
   108         $this->assertCount(1, $res, "Should have 1 doc in res");
   108         $this->assertCount(1, $res, "Should have 1 doc in res");
   109         $resDoc = $res[0];
   109         $resDoc = $res[0];
   110 
   110 
   111         $this->assertInstanceOf(Document::class, $resDoc, "Res doc must be a Document");
   111         $this->assertInstanceOf(Document::class, $resDoc, "Res doc must be a Document");
   112         $this->assertEquals('corpusparole:crdo-ALA_738', $resDoc->getId(), "id must be crdo...");
   112         $this->assertEquals(config('corpusparole.corpus_id_scheme').'crdo-ALA_738', $resDoc->getId(), "id must be crdo...");
   113         $this->assertEquals($expectedId, $resDoc->getUri(), 'url must be ...');
   113         $this->assertEquals($expectedId, $resDoc->getUri(), 'url must be ...');
   114         $this->assertNotNull($resDoc->getGraph(), 'Graph must be not null');
   114         $this->assertNotNull($resDoc->getGraph(), 'Graph must be not null');
   115     }
   115     }
   116 
   116 
   117     public function testGet() {
   117     public function testGet() {
   118 
   118 
   119         $expectedId = $this->corpusDocIdBaseUri.'crdo-ALA_738';
   119         $expectedId = $this->corpusDocIdBaseUri.'crdo-ALA_738';
   120         $returnedGraph = new EasyRdf\Graph($expectedId, DocumentRepositoryTest::TEST_DOC);
   120         $returnedGraph = new EasyRdf\Graph($expectedId, sprintf(DocumentRepositoryTest::TEST_DOC, config('corpusparole.corpus_doc_id_base_uri')));
   121 
   121 
   122         $sparqlClientMock = m::mock('CorpusParole\Libraries\Sparql\SparqlClient');
   122         $sparqlClientMock = m::mock('CorpusParole\Libraries\Sparql\SparqlClient');
   123         $sparqlClientMock->shouldReceive('query')->with(\Hamcrest\Text\StringContains::containsString($expectedId))
   123         $sparqlClientMock->shouldReceive('query')->with(\Hamcrest\Text\StringContains::containsString($expectedId))
   124                 ->andReturn($returnedGraph);
   124                 ->andReturn($returnedGraph);
   125         $documentRepository = $this->app->make('CorpusParole\Repositories\RdfDocumentRepository', [$sparqlClientMock]);
   125         $documentRepository = $this->app->make('CorpusParole\Repositories\RdfDocumentRepository', [$sparqlClientMock]);
   126 
   126 
   127         $res = $documentRepository->get('crdo-ALA_738');
   127         $res = $documentRepository->get('crdo-ALA_738');
   128 
   128 
   129         $this->assertInstanceOf(Document::class, $res, "Result must be of type Document");
   129         $this->assertInstanceOf(Document::class, $res, "Result must be of type Document");
   130         $this->assertEquals('corpusparole:crdo-ALA_738', $res->getId(), 'id should be crdo-ALA_738' );
   130         $this->assertEquals(config('corpusparole.corpus_id_scheme').'crdo-ALA_738', $res->getId(), 'id should be crdo-ALA_738' );
   131         $this->assertNotNull($res->getGraph(), "Graph shoul not be null");
   131         $this->assertNotNull($res->getGraph(), "Graph shoul not be null");
   132         $this->assertTrue(EasyRdf\Isomorphic::isomorphic($res->getGraph(), new EasyRdf\Graph($expectedId, DocumentRepositoryTest::TEST_DOC)));
   132         $this->assertTrue(EasyRdf\Isomorphic::isomorphic($res->getGraph(), new EasyRdf\Graph($expectedId, sprintf(DocumentRepositoryTest::TEST_DOC, config('corpusparole.corpus_doc_id_base_uri')))));
   133     }
   133     }
   134 
   134 
   135     public function testSave() {
   135     public function testSave() {
   136 
   136 
   137         $sparqlClientMock = m::mock('CorpusParole\Libraries\Sparql\SparqlClient', function($mock) {
   137         $sparqlClientMock = m::mock('CorpusParole\Libraries\Sparql\SparqlClient', function($mock) {
   140                 ->shouldReceive('commit')->andReturn(true);
   140                 ->shouldReceive('commit')->andReturn(true);
   141         });
   141         });
   142         $documentRepository = $this->app->make('CorpusParole\Repositories\RdfDocumentRepository', [$sparqlClientMock]);
   142         $documentRepository = $this->app->make('CorpusParole\Repositories\RdfDocumentRepository', [$sparqlClientMock]);
   143 
   143 
   144 
   144 
   145         $doc = new Document("http://corpusdelaparole.huma-num.fr/corpus/res/crdo-ALA_738", $this->graph);
   145         $doc = new Document(config('corpusparole.corpus_doc_id_base_uri')."crdo-ALA_738", $this->graph);
   146         $doc->updateDiscourseTypes(['oratory','drama','narrative']);
   146         $doc->updateDiscourseTypes(['oratory','drama','narrative']);
   147 
   147 
   148         $res = $documentRepository->save($doc);
   148         $res = $documentRepository->save($doc);
   149 
   149 
   150         $this->assertTrue($res, 'Has started a transaction');
   150         $this->assertTrue($res, 'Has started a transaction');