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 } |