diff -r 009efee954f7 -r 17f10b56c079 server/src/tests/Models/DocumentTest.php --- a/server/src/tests/Models/DocumentTest.php Thu Jun 02 18:16:17 2016 +0200 +++ b/server/src/tests/Models/DocumentTest.php Thu Jun 02 18:24:19 2016 +0200 @@ -156,47 +156,37 @@ public function testMediaArray() { $doc = new Document(config('corpusparole.corpus_doc_id_base_uri')."crdo-CFPP2000_35_SOUND", $this->graph); - $this->assertCount(4, $doc->getMediaArray(), "Media array must be of size 4"); + $this->assertCount(3, $doc->getMediaArray(), "Media array must be of size 3"); //print_r($doc->getMediaArray()); - foreach($doc->getMediaArray() as $url => $media) { - $this->assertArrayHasKey('format', $media, "media has 'format key'"); - $this->assertArrayHasKey('url', $media, "media has url"); - $this->assertCount(5, $media, "media is a 4 element array"); - $this->assertArrayHasKey('extent', $media, "media has extent"); - $this->assertArrayHasKey('extent_ms', $media, "media has extent_ms"); - $this->assertArrayHasKey('master', $media, "media has master"); + foreach($doc->getMediaArray() as $media) { + $this->assertInstanceOf('CorpusParole\Models\MediaResource', $media, "media msute of type MediaResource"); + // $this->assertArrayHasKey('format', $media, "media has 'format key'"); + // $this->assertArrayHasKey('url', $media, "media has url"); + // $this->assertCount(5, $media, "media is a 4 element array"); + // $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->assertEquals($media['url'], $url); $this->assertContains( - $media['url'], + $media->getUrl(), [ "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/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"); + if($media->getUrl() === "http://cocoon.huma-num.fr/data/archi/masters/372593.wav") { + $this->assertEquals('audio/x-wav', $media->getFormat()); + $this->assertTrue($media->isMaster() === true, "should be master"); } else { - $this->assertTrue($media['master'] === false, "should not be master"); + $this->assertTrue($media->isMaster() === 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->assertNull($media['extent_ms'], "extend in ms is null"); - $this->assertStringStartsWith('application/', $media['format']); - } - + $this->assertEquals("PT48M26S", $media->getExtent(), "extent is PT48M26S"); + $this->assertGreaterThan(0, $media->getExtentMs(), "extent_ms must be > 0"); + $this->assertStringStartsWith('audio/', $media->getFormat()); } } @@ -499,5 +489,22 @@ $this->assertEmpty($newSubjects, "all subjects must have been removed"); } + //TODO: test null transcript + null media array + public function testJsonSerialize() { + $doc = new Document(config('corpusparole.corpus_doc_id_base_uri')."crdo-CFPP2000_35_SOUND", $this->graph); + + $json = $doc->jsonSerialize(); + + $this->assertTrue(is_array($json), 'Returned json must be an array'); + $this->assertEquals( + ["id", "uri", "title", "language", "modified", "issued", "publishers", "contributors", "subjects", "transcript", "mediaArray"], + array_keys($json) + ); + $this->assertEquals(sprintf('%1$s/crdo-CFPP2000_35_SOUNDid', config('corpusparole.handle_prefix')), $json['id']); + $this->assertTrue(is_array($json['transcript'])); + $this->assertTrue(is_array($json['mediaArray'])); + + } + }