server/src/tests/Models/DocumentTest.php
changeset 168 17f10b56c079
parent 143 023b6d467566
child 169 8fddc113095e
equal deleted inserted replaced
167:009efee954f7 168:17f10b56c079
   154     }
   154     }
   155 
   155 
   156     public function testMediaArray() {
   156     public function testMediaArray() {
   157         $doc = new Document(config('corpusparole.corpus_doc_id_base_uri')."crdo-CFPP2000_35_SOUND", $this->graph);
   157         $doc = new Document(config('corpusparole.corpus_doc_id_base_uri')."crdo-CFPP2000_35_SOUND", $this->graph);
   158 
   158 
   159         $this->assertCount(4, $doc->getMediaArray(), "Media array must be of size 4");
   159         $this->assertCount(3, $doc->getMediaArray(), "Media array must be of size 3");
   160         //print_r($doc->getMediaArray());
   160         //print_r($doc->getMediaArray());
   161         foreach($doc->getMediaArray() as $url => $media) {
   161         foreach($doc->getMediaArray() as $media) {
   162             $this->assertArrayHasKey('format', $media, "media has 'format key'");
   162             $this->assertInstanceOf('CorpusParole\Models\MediaResource', $media, "media msute of type MediaResource");
   163             $this->assertArrayHasKey('url', $media, "media has url");
   163             // $this->assertArrayHasKey('format', $media, "media has 'format key'");
   164             $this->assertCount(5, $media, "media is a 4 element array");
   164             // $this->assertArrayHasKey('url', $media, "media has url");
   165             $this->assertArrayHasKey('extent', $media, "media has extent");
   165             // $this->assertCount(5, $media, "media is a 4 element array");
   166             $this->assertArrayHasKey('extent_ms', $media, "media has extent_ms");
   166             // $this->assertArrayHasKey('extent', $media, "media has extent");
   167             $this->assertArrayHasKey('master', $media, "media has master");
   167             // $this->assertArrayHasKey('extent_ms', $media, "media has extent_ms");
   168 
   168             // $this->assertArrayHasKey('master', $media, "media has master");
   169             $this->assertEquals($media['url'], $url);
   169 
       
   170             //$this->assertEquals($media['url'], $url);
   170 
   171 
   171             $this->assertContains(
   172             $this->assertContains(
   172                 $media['url'],
   173                 $media->getUrl(),
   173                 [ "http://cocoon.huma-num.fr/data/cfpp2000/Ozgur_Kilic_H_32_alii_3e-2.wav",
   174                 [ "http://cocoon.huma-num.fr/data/cfpp2000/Ozgur_Kilic_H_32_alii_3e-2.wav",
   174                   "http://cocoon.huma-num.fr/data/cfpp2000/Ozgur_Kilic_H_32_alii_3e-2.mp3",
   175                   "http://cocoon.huma-num.fr/data/cfpp2000/Ozgur_Kilic_H_32_alii_3e-2.mp3",
   175                   "http://cocoon.huma-num.fr/exist/crdo/cfpp2000/fra/Ozgur_Kilic_H_32_alii_3e-2.xml",
       
   176                   "http://cocoon.huma-num.fr/data/archi/masters/372593.wav"
   176                   "http://cocoon.huma-num.fr/data/archi/masters/372593.wav"
   177                 ]
   177                 ]
   178             );
   178             );
   179             if($url === "http://cocoon.huma-num.fr/data/archi/masters/372593.wav") {
   179             if($media->getUrl() === "http://cocoon.huma-num.fr/data/archi/masters/372593.wav") {
   180                 $this->assertEquals('audio/x-wav', $media['format']);
   180                 $this->assertEquals('audio/x-wav', $media->getFormat());
   181                 $this->assertTrue($media['master'] === true, "should be master");
   181                 $this->assertTrue($media->isMaster() === true, "should be master");
   182             }
   182             }
   183             else {
   183             else {
   184                 $this->assertTrue($media['master'] === false, "should not be master");
   184                 $this->assertTrue($media->isMaster() === false, "should not be master");
   185             }
   185             }
   186 
   186 
   187             if( $url === "http://cocoon.huma-num.fr/data/archi/masters/372593.wav" ||
   187             $this->assertEquals("PT48M26S", $media->getExtent(), "extent is PT48M26S");
   188                 $url === "http://cocoon.huma-num.fr/data/cfpp2000/Ozgur_Kilic_H_32_alii_3e-2.mp3" ||
   188             $this->assertGreaterThan(0, $media->getExtentMs(), "extent_ms must be > 0");
   189                 $url === "http://cocoon.huma-num.fr/data/cfpp2000/Ozgur_Kilic_H_32_alii_3e-2.wav" ) {
   189             $this->assertStringStartsWith('audio/', $media->getFormat());
   190                 $this->assertEquals("PT48M26S", $media['extent'], "extent is PT48M26S");
       
   191                 $this->assertGreaterThan(0, $media['extent_ms'], "extent_ms must be > 0");
       
   192                 $this->assertStringStartsWith('audio/', $media['format']);
       
   193             }
       
   194             else {
       
   195                 $this->assertNull($media['extent'], "no media extent");
       
   196                 $this->assertNull($media['extent_ms'], "extend in ms is null");
       
   197                 $this->assertStringStartsWith('application/', $media['format']);
       
   198             }
       
   199 
       
   200         }
   190         }
   201     }
   191     }
   202 
   192 
   203     public function testGetTypes() {
   193     public function testGetTypes() {
   204         $doc = new Document(config('corpusparole.corpus_doc_id_base_uri')."crdo-CFPP2000_35_SOUND", $this->graph);
   194         $doc = new Document(config('corpusparole.corpus_doc_id_base_uri')."crdo-CFPP2000_35_SOUND", $this->graph);
   497             }
   487             }
   498         }
   488         }
   499         $this->assertEmpty($newSubjects, "all subjects must have been removed");
   489         $this->assertEmpty($newSubjects, "all subjects must have been removed");
   500     }
   490     }
   501 
   491 
       
   492     //TODO: test null transcript + null media array
       
   493     public function testJsonSerialize() {
       
   494         $doc = new Document(config('corpusparole.corpus_doc_id_base_uri')."crdo-CFPP2000_35_SOUND", $this->graph);
       
   495 
       
   496         $json = $doc->jsonSerialize();
       
   497 
       
   498         $this->assertTrue(is_array($json), 'Returned json must be an array');
       
   499         $this->assertEquals(
       
   500             ["id", "uri", "title", "language", "modified", "issued", "publishers", "contributors", "subjects", "transcript", "mediaArray"],
       
   501             array_keys($json)
       
   502         );
       
   503         $this->assertEquals(sprintf('%1$s/crdo-CFPP2000_35_SOUNDid', config('corpusparole.handle_prefix')), $json['id']);
       
   504         $this->assertTrue(is_array($json['transcript']));
       
   505         $this->assertTrue(is_array($json['mediaArray']));
       
   506 
       
   507     }
       
   508 
   502 
   509 
   503 }
   510 }