server/src/tests/Libraries/Transcript/TranscriptConverterBaseTest.php
author ymh <ymh.work@gmail.com>
Sat, 28 May 2016 11:49:38 +0200
changeset 162 a6cf5a06f02d
child 163 59c68fc4848e
permissions -rw-r--r--
add Transcript converters libraries + test
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
162
a6cf5a06f02d add Transcript converters libraries + test
ymh <ymh.work@gmail.com>
parents:
diff changeset
     1
<?php
a6cf5a06f02d add Transcript converters libraries + test
ymh <ymh.work@gmail.com>
parents:
diff changeset
     2
a6cf5a06f02d add Transcript converters libraries + test
ymh <ymh.work@gmail.com>
parents:
diff changeset
     3
use Mockery as m;
a6cf5a06f02d add Transcript converters libraries + test
ymh <ymh.work@gmail.com>
parents:
diff changeset
     4
a6cf5a06f02d add Transcript converters libraries + test
ymh <ymh.work@gmail.com>
parents:
diff changeset
     5
use CorpusParole\Models\Document;
a6cf5a06f02d add Transcript converters libraries + test
ymh <ymh.work@gmail.com>
parents:
diff changeset
     6
a6cf5a06f02d add Transcript converters libraries + test
ymh <ymh.work@gmail.com>
parents:
diff changeset
     7
a6cf5a06f02d add Transcript converters libraries + test
ymh <ymh.work@gmail.com>
parents:
diff changeset
     8
/**
a6cf5a06f02d add Transcript converters libraries + test
ymh <ymh.work@gmail.com>
parents:
diff changeset
     9
 *
a6cf5a06f02d add Transcript converters libraries + test
ymh <ymh.work@gmail.com>
parents:
diff changeset
    10
 */
a6cf5a06f02d add Transcript converters libraries + test
ymh <ymh.work@gmail.com>
parents:
diff changeset
    11
class TranscriptConverterBaseTest extends TestCase {
a6cf5a06f02d add Transcript converters libraries + test
ymh <ymh.work@gmail.com>
parents:
diff changeset
    12
    const TEST_DOC_BASE = "crdo-UVE_MOCIKA";
a6cf5a06f02d add Transcript converters libraries + test
ymh <ymh.work@gmail.com>
parents:
diff changeset
    13
a6cf5a06f02d add Transcript converters libraries + test
ymh <ymh.work@gmail.com>
parents:
diff changeset
    14
    public function setUp() {
a6cf5a06f02d add Transcript converters libraries + test
ymh <ymh.work@gmail.com>
parents:
diff changeset
    15
        parent::setup();
a6cf5a06f02d add Transcript converters libraries + test
ymh <ymh.work@gmail.com>
parents:
diff changeset
    16
        $graphContent = sprintf(file_get_contents(__DIR__ . DIRECTORY_SEPARATOR . self::TEST_DOC_BASE.".ttl"), config('corpusparole.corpus_doc_id_base_uri'), config('corpusparole.corpus_id_scheme'));
a6cf5a06f02d add Transcript converters libraries + test
ymh <ymh.work@gmail.com>
parents:
diff changeset
    17
        $this->graph = new EasyRdf\Graph(config('corpusparole.corpus_doc_id_base_uri')."crdo-UVE_MOCIKA_SOUND", $graphContent);
a6cf5a06f02d add Transcript converters libraries + test
ymh <ymh.work@gmail.com>
parents:
diff changeset
    18
        $this->doc = new Document(config('corpusparole.corpus_doc_id_base_uri')."crdo-UVE_MOCIKA_SOUND", $this->graph);
a6cf5a06f02d add Transcript converters libraries + test
ymh <ymh.work@gmail.com>
parents:
diff changeset
    19
a6cf5a06f02d add Transcript converters libraries + test
ymh <ymh.work@gmail.com>
parents:
diff changeset
    20
        $this->transcriptSource = simplexml_load_file(__DIR__ . DIRECTORY_SEPARATOR . self::TEST_DOC_BASE.".xml");
a6cf5a06f02d add Transcript converters libraries + test
ymh <ymh.work@gmail.com>
parents:
diff changeset
    21
    }
a6cf5a06f02d add Transcript converters libraries + test
ymh <ymh.work@gmail.com>
parents:
diff changeset
    22
a6cf5a06f02d add Transcript converters libraries + test
ymh <ymh.work@gmail.com>
parents:
diff changeset
    23
    public function getMockConverter(...$contructorArgs) {
a6cf5a06f02d add Transcript converters libraries + test
ymh <ymh.work@gmail.com>
parents:
diff changeset
    24
        return  m::mock("CorpusParole\Libraries\Transcript\TranscriptConverterBase", $contructorArgs)
a6cf5a06f02d add Transcript converters libraries + test
ymh <ymh.work@gmail.com>
parents:
diff changeset
    25
            ->shouldReceive('parseSource')
a6cf5a06f02d add Transcript converters libraries + test
ymh <ymh.work@gmail.com>
parents:
diff changeset
    26
            ->andReturn(null)
a6cf5a06f02d add Transcript converters libraries + test
ymh <ymh.work@gmail.com>
parents:
diff changeset
    27
            ->shouldReceive('buildAnnotations')
a6cf5a06f02d add Transcript converters libraries + test
ymh <ymh.work@gmail.com>
parents:
diff changeset
    28
            ->andReturn([]);
a6cf5a06f02d add Transcript converters libraries + test
ymh <ymh.work@gmail.com>
parents:
diff changeset
    29
    }
a6cf5a06f02d add Transcript converters libraries + test
ymh <ymh.work@gmail.com>
parents:
diff changeset
    30
a6cf5a06f02d add Transcript converters libraries + test
ymh <ymh.work@gmail.com>
parents:
diff changeset
    31
a6cf5a06f02d add Transcript converters libraries + test
ymh <ymh.work@gmail.com>
parents:
diff changeset
    32
    public function testConstructor() {
a6cf5a06f02d add Transcript converters libraries + test
ymh <ymh.work@gmail.com>
parents:
diff changeset
    33
        $converter = $this->getMockConverter($this->doc, $this->transcriptSource)->getMock()->makePartial();
a6cf5a06f02d add Transcript converters libraries + test
ymh <ymh.work@gmail.com>
parents:
diff changeset
    34
        $json = $converter->convertToJson();
a6cf5a06f02d add Transcript converters libraries + test
ymh <ymh.work@gmail.com>
parents:
diff changeset
    35
        $this->assertNotnull($json);
a6cf5a06f02d add Transcript converters libraries + test
ymh <ymh.work@gmail.com>
parents:
diff changeset
    36
    }
a6cf5a06f02d add Transcript converters libraries + test
ymh <ymh.work@gmail.com>
parents:
diff changeset
    37
a6cf5a06f02d add Transcript converters libraries + test
ymh <ymh.work@gmail.com>
parents:
diff changeset
    38
    public function testHeaderMeta() {
a6cf5a06f02d add Transcript converters libraries + test
ymh <ymh.work@gmail.com>
parents:
diff changeset
    39
        $datetime =  (new DateTime())->format(DateTime::ATOM);
a6cf5a06f02d add Transcript converters libraries + test
ymh <ymh.work@gmail.com>
parents:
diff changeset
    40
        $converter =  $this->getMockConverter($this->doc, $this->transcriptSource, $datetime)->getMock()->makePartial();
a6cf5a06f02d add Transcript converters libraries + test
ymh <ymh.work@gmail.com>
parents:
diff changeset
    41
        $resJson = $converter->convertTojson();
a6cf5a06f02d add Transcript converters libraries + test
ymh <ymh.work@gmail.com>
parents:
diff changeset
    42
        $this->assertArrayHasKey('format', $resJson, 'Must have format key');
a6cf5a06f02d add Transcript converters libraries + test
ymh <ymh.work@gmail.com>
parents:
diff changeset
    43
        $this->assertEquals('http://advene.org/ns/cinelab/', $resJson['format'], 'Format key must be http://advene.org/ns/cinelab/');
a6cf5a06f02d add Transcript converters libraries + test
ymh <ymh.work@gmail.com>
parents:
diff changeset
    44
        $this->assertArrayHasKey('@context', $resJson, 'Must have @context key');
a6cf5a06f02d add Transcript converters libraries + test
ymh <ymh.work@gmail.com>
parents:
diff changeset
    45
        $this->assertEquals(
a6cf5a06f02d add Transcript converters libraries + test
ymh <ymh.work@gmail.com>
parents:
diff changeset
    46
            [
a6cf5a06f02d add Transcript converters libraries + test
ymh <ymh.work@gmail.com>
parents:
diff changeset
    47
                "dc" =>  "http://purl.org/dc/elements/1.1/",
a6cf5a06f02d add Transcript converters libraries + test
ymh <ymh.work@gmail.com>
parents:
diff changeset
    48
                "corpus" => "http://corpusdelaparole.huma-num.fr/ns/corpus#"
a6cf5a06f02d add Transcript converters libraries + test
ymh <ymh.work@gmail.com>
parents:
diff changeset
    49
            ],
a6cf5a06f02d add Transcript converters libraries + test
ymh <ymh.work@gmail.com>
parents:
diff changeset
    50
            $resJson['@context'],
a6cf5a06f02d add Transcript converters libraries + test
ymh <ymh.work@gmail.com>
parents:
diff changeset
    51
            "array must contains dc and corpus declaration"
a6cf5a06f02d add Transcript converters libraries + test
ymh <ymh.work@gmail.com>
parents:
diff changeset
    52
        );
a6cf5a06f02d add Transcript converters libraries + test
ymh <ymh.work@gmail.com>
parents:
diff changeset
    53
        $this->assertArrayHasKey('meta', $resJson, 'Must have meta declaration');
a6cf5a06f02d add Transcript converters libraries + test
ymh <ymh.work@gmail.com>
parents:
diff changeset
    54
        $meta = $resJson['meta'];
a6cf5a06f02d add Transcript converters libraries + test
ymh <ymh.work@gmail.com>
parents:
diff changeset
    55
        $this->assertTrue(is_array($meta), 'meta is an array');
a6cf5a06f02d add Transcript converters libraries + test
ymh <ymh.work@gmail.com>
parents:
diff changeset
    56
a6cf5a06f02d add Transcript converters libraries + test
ymh <ymh.work@gmail.com>
parents:
diff changeset
    57
        $this->assertArrayHasKey('dc:creator', $meta, "meta must have dc:creator key");
a6cf5a06f02d add Transcript converters libraries + test
ymh <ymh.work@gmail.com>
parents:
diff changeset
    58
        $this->assertEquals(config('corpusparole.transcript_default_creator'), $meta['dc:creator'], "dc:creator must be ".config('corpusparole.transcript_default_creator'));
a6cf5a06f02d add Transcript converters libraries + test
ymh <ymh.work@gmail.com>
parents:
diff changeset
    59
        $this->assertArrayHasKey('dc:contributor', $meta, "meta must have dc:contributor key");
a6cf5a06f02d add Transcript converters libraries + test
ymh <ymh.work@gmail.com>
parents:
diff changeset
    60
        $this->assertEquals(config('corpusparole.transcript_default_creator'), $meta['dc:contributor'], "dc:contributor must be ".config('corpusparole.transcript_default_creator'));
a6cf5a06f02d add Transcript converters libraries + test
ymh <ymh.work@gmail.com>
parents:
diff changeset
    61
        $this->assertArrayHasKey('dc:created', $meta, "meta must have dc:created key");
a6cf5a06f02d add Transcript converters libraries + test
ymh <ymh.work@gmail.com>
parents:
diff changeset
    62
        $this->assertEquals($datetime, $meta["dc:created"], "meta created time mus be $datetime");
a6cf5a06f02d add Transcript converters libraries + test
ymh <ymh.work@gmail.com>
parents:
diff changeset
    63
        $this->assertArrayHasKey('dc:modified', $meta, "meta must have dc:modified key");
a6cf5a06f02d add Transcript converters libraries + test
ymh <ymh.work@gmail.com>
parents:
diff changeset
    64
        $this->assertEquals($datetime, $meta["dc:modified"], "meta modified time mus be $datetime");
a6cf5a06f02d add Transcript converters libraries + test
ymh <ymh.work@gmail.com>
parents:
diff changeset
    65
a6cf5a06f02d add Transcript converters libraries + test
ymh <ymh.work@gmail.com>
parents:
diff changeset
    66
        $this->assertArrayHasKey('dc:title', $meta, "meta must have dc:title key");
a6cf5a06f02d add Transcript converters libraries + test
ymh <ymh.work@gmail.com>
parents:
diff changeset
    67
        $this->assertTrue(is_array($meta['dc:title']), 'meta title is an array');
a6cf5a06f02d add Transcript converters libraries + test
ymh <ymh.work@gmail.com>
parents:
diff changeset
    68
        $this->assertCount(2, $meta['dc:title'], 'meta title array has 2 elements');
a6cf5a06f02d add Transcript converters libraries + test
ymh <ymh.work@gmail.com>
parents:
diff changeset
    69
        $this->assertArrayHasKey('@language', $meta['dc:title'], "meta title must have @language key");
a6cf5a06f02d add Transcript converters libraries + test
ymh <ymh.work@gmail.com>
parents:
diff changeset
    70
        $this->assertArrayHasKey('@value', $meta['dc:title'], "meta title must have @value key");
a6cf5a06f02d add Transcript converters libraries + test
ymh <ymh.work@gmail.com>
parents:
diff changeset
    71
        $this->assertEquals('en',  $meta['dc:title']['@language'], "meta title language must be en");
a6cf5a06f02d add Transcript converters libraries + test
ymh <ymh.work@gmail.com>
parents:
diff changeset
    72
        $this->assertEquals('The two hermit crabs and the coconut crab',  $meta['dc:title']['@value'], "meta title value must be the Two hermit crabs and the coconut crab");
a6cf5a06f02d add Transcript converters libraries + test
ymh <ymh.work@gmail.com>
parents:
diff changeset
    73
    }
a6cf5a06f02d add Transcript converters libraries + test
ymh <ymh.work@gmail.com>
parents:
diff changeset
    74
a6cf5a06f02d add Transcript converters libraries + test
ymh <ymh.work@gmail.com>
parents:
diff changeset
    75
    public function testHeaderMetaTitleOverrideString() {
a6cf5a06f02d add Transcript converters libraries + test
ymh <ymh.work@gmail.com>
parents:
diff changeset
    76
        $converter = $this->getMockConverter($this->doc, $this->transcriptSource)->shouldReceive("getSourceTitle")->andReturn("The two hermit crabs and the coconut crab")->getMock()->makePartial();
a6cf5a06f02d add Transcript converters libraries + test
ymh <ymh.work@gmail.com>
parents:
diff changeset
    77
        $resJson = $converter->convertTojson();
a6cf5a06f02d add Transcript converters libraries + test
ymh <ymh.work@gmail.com>
parents:
diff changeset
    78
a6cf5a06f02d add Transcript converters libraries + test
ymh <ymh.work@gmail.com>
parents:
diff changeset
    79
        $meta = $resJson['meta'];
a6cf5a06f02d add Transcript converters libraries + test
ymh <ymh.work@gmail.com>
parents:
diff changeset
    80
        $this->assertArrayHasKey('dc:title', $meta, "meta must have dc:title key");
a6cf5a06f02d add Transcript converters libraries + test
ymh <ymh.work@gmail.com>
parents:
diff changeset
    81
        $this->assertTrue(is_string($meta['dc:title']), 'meta title is a string');
a6cf5a06f02d add Transcript converters libraries + test
ymh <ymh.work@gmail.com>
parents:
diff changeset
    82
        $this->assertEquals('The two hermit crabs and the coconut crab',  $meta['dc:title'], "meta title value must be the Two hermit crabs and the coconut crab");
a6cf5a06f02d add Transcript converters libraries + test
ymh <ymh.work@gmail.com>
parents:
diff changeset
    83
a6cf5a06f02d add Transcript converters libraries + test
ymh <ymh.work@gmail.com>
parents:
diff changeset
    84
    }
a6cf5a06f02d add Transcript converters libraries + test
ymh <ymh.work@gmail.com>
parents:
diff changeset
    85
a6cf5a06f02d add Transcript converters libraries + test
ymh <ymh.work@gmail.com>
parents:
diff changeset
    86
    public function testHeaderMetaTitleOverrideLanguageMap() {
a6cf5a06f02d add Transcript converters libraries + test
ymh <ymh.work@gmail.com>
parents:
diff changeset
    87
        $converter = $this->getMockConverter($this->doc, $this->transcriptSource)->shouldReceive("getSourceTitle")->andReturn(['en' => "The two hermit crabs and the coconut crab", "fr" => 'Les deux bernard-l\'hermite et le crabe de cocotier'])->getMock()->makePartial();
a6cf5a06f02d add Transcript converters libraries + test
ymh <ymh.work@gmail.com>
parents:
diff changeset
    88
        $resJson = $converter->convertTojson();
a6cf5a06f02d add Transcript converters libraries + test
ymh <ymh.work@gmail.com>
parents:
diff changeset
    89
a6cf5a06f02d add Transcript converters libraries + test
ymh <ymh.work@gmail.com>
parents:
diff changeset
    90
        $meta = $resJson['meta'];
a6cf5a06f02d add Transcript converters libraries + test
ymh <ymh.work@gmail.com>
parents:
diff changeset
    91
        $this->assertArrayHasKey('dc:title', $meta, "meta must have dc:title key");
a6cf5a06f02d add Transcript converters libraries + test
ymh <ymh.work@gmail.com>
parents:
diff changeset
    92
        $this->assertTrue(is_array($meta['dc:title']), 'meta title is an array');
a6cf5a06f02d add Transcript converters libraries + test
ymh <ymh.work@gmail.com>
parents:
diff changeset
    93
        $this->assertCount(2, $meta['dc:title'], "title must be an array of size 2");
a6cf5a06f02d add Transcript converters libraries + test
ymh <ymh.work@gmail.com>
parents:
diff changeset
    94
        $this->assertEquals(["@language" => 'en', '@value' => 'The two hermit crabs and the coconut crab'],  $meta['dc:title'][0], "meta title value must be the Two hermit crabs and the coconut crab");
a6cf5a06f02d add Transcript converters libraries + test
ymh <ymh.work@gmail.com>
parents:
diff changeset
    95
        $this->assertEquals(["@language" => 'fr', '@value' => 'Les deux bernard-l\'hermite et le crabe de cocotier'],  $meta['dc:title'][1], "meta title value must be the Les deux bernard-l\'hermite et le crabe de cocotier");
a6cf5a06f02d add Transcript converters libraries + test
ymh <ymh.work@gmail.com>
parents:
diff changeset
    96
    }
a6cf5a06f02d add Transcript converters libraries + test
ymh <ymh.work@gmail.com>
parents:
diff changeset
    97
a6cf5a06f02d add Transcript converters libraries + test
ymh <ymh.work@gmail.com>
parents:
diff changeset
    98
    public function testMedias() {
a6cf5a06f02d add Transcript converters libraries + test
ymh <ymh.work@gmail.com>
parents:
diff changeset
    99
        $converter =  $this->getMockConverter($this->doc, $this->transcriptSource)->getMock()->makePartial();
a6cf5a06f02d add Transcript converters libraries + test
ymh <ymh.work@gmail.com>
parents:
diff changeset
   100
        $resJson = $converter->convertTojson();
a6cf5a06f02d add Transcript converters libraries + test
ymh <ymh.work@gmail.com>
parents:
diff changeset
   101
a6cf5a06f02d add Transcript converters libraries + test
ymh <ymh.work@gmail.com>
parents:
diff changeset
   102
        $this->assertArrayHasKey('medias', $resJson, "Must have a medias field");
a6cf5a06f02d add Transcript converters libraries + test
ymh <ymh.work@gmail.com>
parents:
diff changeset
   103
        $this->assertTrue(is_array($resJson['medias']), 'media is an array');
a6cf5a06f02d add Transcript converters libraries + test
ymh <ymh.work@gmail.com>
parents:
diff changeset
   104
    }
a6cf5a06f02d add Transcript converters libraries + test
ymh <ymh.work@gmail.com>
parents:
diff changeset
   105
a6cf5a06f02d add Transcript converters libraries + test
ymh <ymh.work@gmail.com>
parents:
diff changeset
   106
    public function testMediasContent() {
a6cf5a06f02d add Transcript converters libraries + test
ymh <ymh.work@gmail.com>
parents:
diff changeset
   107
        $converter =  $this->getMockConverter($this->doc, $this->transcriptSource)->getMock()->makePartial();
a6cf5a06f02d add Transcript converters libraries + test
ymh <ymh.work@gmail.com>
parents:
diff changeset
   108
        $resJson = $converter->convertTojson();
a6cf5a06f02d add Transcript converters libraries + test
ymh <ymh.work@gmail.com>
parents:
diff changeset
   109
a6cf5a06f02d add Transcript converters libraries + test
ymh <ymh.work@gmail.com>
parents:
diff changeset
   110
        $medias = $resJson['medias'];
a6cf5a06f02d add Transcript converters libraries + test
ymh <ymh.work@gmail.com>
parents:
diff changeset
   111
a6cf5a06f02d add Transcript converters libraries + test
ymh <ymh.work@gmail.com>
parents:
diff changeset
   112
        $this->assertCount(3, $medias, "Should have 3 media");
a6cf5a06f02d add Transcript converters libraries + test
ymh <ymh.work@gmail.com>
parents:
diff changeset
   113
        $this->assertCount(3, array_filter($medias, function($m) {
a6cf5a06f02d add Transcript converters libraries + test
ymh <ymh.work@gmail.com>
parents:
diff changeset
   114
            return array_key_exists('meta', $m) &&
a6cf5a06f02d add Transcript converters libraries + test
ymh <ymh.work@gmail.com>
parents:
diff changeset
   115
                array_key_exists('url', $m) &&
a6cf5a06f02d add Transcript converters libraries + test
ymh <ymh.work@gmail.com>
parents:
diff changeset
   116
                array_key_exists('origin', $m) &&
a6cf5a06f02d add Transcript converters libraries + test
ymh <ymh.work@gmail.com>
parents:
diff changeset
   117
                array_key_exists('unit', $m) &&
a6cf5a06f02d add Transcript converters libraries + test
ymh <ymh.work@gmail.com>
parents:
diff changeset
   118
                array_key_exists('id', $m) ; }), "all media must have url, id, origin, unit, meta key");
a6cf5a06f02d add Transcript converters libraries + test
ymh <ymh.work@gmail.com>
parents:
diff changeset
   119
a6cf5a06f02d add Transcript converters libraries + test
ymh <ymh.work@gmail.com>
parents:
diff changeset
   120
        $this->assertCount(1, array_filter($medias, function($m) { return array_key_exists('corpus:master', $m['meta'])?$m['meta']['corpus:master']:false; }), "should have at least 1 master");
a6cf5a06f02d add Transcript converters libraries + test
ymh <ymh.work@gmail.com>
parents:
diff changeset
   121
a6cf5a06f02d add Transcript converters libraries + test
ymh <ymh.work@gmail.com>
parents:
diff changeset
   122
    }
a6cf5a06f02d add Transcript converters libraries + test
ymh <ymh.work@gmail.com>
parents:
diff changeset
   123
a6cf5a06f02d add Transcript converters libraries + test
ymh <ymh.work@gmail.com>
parents:
diff changeset
   124
    public function testMediasContentDetail() {
a6cf5a06f02d add Transcript converters libraries + test
ymh <ymh.work@gmail.com>
parents:
diff changeset
   125
        $converter =  $this->getMockConverter($this->doc, $this->transcriptSource)->getMock()->makePartial();
a6cf5a06f02d add Transcript converters libraries + test
ymh <ymh.work@gmail.com>
parents:
diff changeset
   126
        $resJson = $converter->convertTojson();
a6cf5a06f02d add Transcript converters libraries + test
ymh <ymh.work@gmail.com>
parents:
diff changeset
   127
a6cf5a06f02d add Transcript converters libraries + test
ymh <ymh.work@gmail.com>
parents:
diff changeset
   128
        $medias = $resJson['medias'];
a6cf5a06f02d add Transcript converters libraries + test
ymh <ymh.work@gmail.com>
parents:
diff changeset
   129
        foreach($medias as $m) {
a6cf5a06f02d add Transcript converters libraries + test
ymh <ymh.work@gmail.com>
parents:
diff changeset
   130
            $this->assertEquals(0, $m['origin'], "Origin must be 0");
a6cf5a06f02d add Transcript converters libraries + test
ymh <ymh.work@gmail.com>
parents:
diff changeset
   131
            $this->assertEquals('ms', $m['unit'], "unit must be ms");
a6cf5a06f02d add Transcript converters libraries + test
ymh <ymh.work@gmail.com>
parents:
diff changeset
   132
            $this->assertStringStartsWith('http', $m['url'], "urls must be string and start with http");
a6cf5a06f02d add Transcript converters libraries + test
ymh <ymh.work@gmail.com>
parents:
diff changeset
   133
            $this->assertRegExp('/^11280\\.100\\/crdo-UVE_MOCIKA_SOUND_m\d+$/', $m['id'], "id must start with 11280.100\/crdo-UVE_MOCIKA_SOUND_m");
a6cf5a06f02d add Transcript converters libraries + test
ymh <ymh.work@gmail.com>
parents:
diff changeset
   134
            $this->assertArrayHasKey('meta', $m, "Media def must have a meta");
a6cf5a06f02d add Transcript converters libraries + test
ymh <ymh.work@gmail.com>
parents:
diff changeset
   135
            $mediaMeta = $m['meta'];
a6cf5a06f02d add Transcript converters libraries + test
ymh <ymh.work@gmail.com>
parents:
diff changeset
   136
            $this->assertArrayHasKey('dc:duration', $mediaMeta, "media meta must have duration");
a6cf5a06f02d add Transcript converters libraries + test
ymh <ymh.work@gmail.com>
parents:
diff changeset
   137
            $this->assertEquals(155000, $mediaMeta['dc:duration'], "media meta duration is 1555000 ms");
a6cf5a06f02d add Transcript converters libraries + test
ymh <ymh.work@gmail.com>
parents:
diff changeset
   138
            $this->assertArrayHasKey('dc:title', $mediaMeta, "Media meta mus have title");
a6cf5a06f02d add Transcript converters libraries + test
ymh <ymh.work@gmail.com>
parents:
diff changeset
   139
            $this->assertEquals(["@language" => 'en', "@value" => "The two hermit crabs and the coconut crab"], $mediaMeta['dc:title'], "media meta title is ...");
a6cf5a06f02d add Transcript converters libraries + test
ymh <ymh.work@gmail.com>
parents:
diff changeset
   140
            $this->assertArrayHasKey('dc:format', $mediaMeta, 'media meta has dc:format');
a6cf5a06f02d add Transcript converters libraries + test
ymh <ymh.work@gmail.com>
parents:
diff changeset
   141
            $this->assertStringStartsWith('audio/', $mediaMeta['dc:format'], "media meta dc:format starts with audio");
a6cf5a06f02d add Transcript converters libraries + test
ymh <ymh.work@gmail.com>
parents:
diff changeset
   142
        }
a6cf5a06f02d add Transcript converters libraries + test
ymh <ymh.work@gmail.com>
parents:
diff changeset
   143
    }
a6cf5a06f02d add Transcript converters libraries + test
ymh <ymh.work@gmail.com>
parents:
diff changeset
   144
a6cf5a06f02d add Transcript converters libraries + test
ymh <ymh.work@gmail.com>
parents:
diff changeset
   145
    public function testOtherNodes() {
a6cf5a06f02d add Transcript converters libraries + test
ymh <ymh.work@gmail.com>
parents:
diff changeset
   146
        $converter =  $this->getMockConverter($this->doc, $this->transcriptSource)->getMock()->makePartial();
a6cf5a06f02d add Transcript converters libraries + test
ymh <ymh.work@gmail.com>
parents:
diff changeset
   147
        $resJson = $converter->convertTojson();
a6cf5a06f02d add Transcript converters libraries + test
ymh <ymh.work@gmail.com>
parents:
diff changeset
   148
a6cf5a06f02d add Transcript converters libraries + test
ymh <ymh.work@gmail.com>
parents:
diff changeset
   149
        $this->assertArrayHasKey('resources', $resJson, 'res must have resources');
a6cf5a06f02d add Transcript converters libraries + test
ymh <ymh.work@gmail.com>
parents:
diff changeset
   150
        $this->assertEquals([], $resJson['resources'], 'Resources must be empty array');
a6cf5a06f02d add Transcript converters libraries + test
ymh <ymh.work@gmail.com>
parents:
diff changeset
   151
        $this->assertArrayHasKey('lists', $resJson, 'res must have lists');
a6cf5a06f02d add Transcript converters libraries + test
ymh <ymh.work@gmail.com>
parents:
diff changeset
   152
        $this->assertEquals([], $resJson['lists'], 'Lists must be empty array');
a6cf5a06f02d add Transcript converters libraries + test
ymh <ymh.work@gmail.com>
parents:
diff changeset
   153
        $this->assertArrayHasKey('annotation-types', $resJson, 'res must have annotation-types');
a6cf5a06f02d add Transcript converters libraries + test
ymh <ymh.work@gmail.com>
parents:
diff changeset
   154
        $this->assertEquals([], $resJson['annotation-types'], 'Annotation types must be empty array');
a6cf5a06f02d add Transcript converters libraries + test
ymh <ymh.work@gmail.com>
parents:
diff changeset
   155
        $this->assertArrayHasKey('annotations', $resJson, 'res must have annotations');
a6cf5a06f02d add Transcript converters libraries + test
ymh <ymh.work@gmail.com>
parents:
diff changeset
   156
        $this->assertEquals([], $resJson['annotations'], 'Annotations must be empty array');
a6cf5a06f02d add Transcript converters libraries + test
ymh <ymh.work@gmail.com>
parents:
diff changeset
   157
    }
a6cf5a06f02d add Transcript converters libraries + test
ymh <ymh.work@gmail.com>
parents:
diff changeset
   158
a6cf5a06f02d add Transcript converters libraries + test
ymh <ymh.work@gmail.com>
parents:
diff changeset
   159
    public function tearDown() {
a6cf5a06f02d add Transcript converters libraries + test
ymh <ymh.work@gmail.com>
parents:
diff changeset
   160
        m::close();
a6cf5a06f02d add Transcript converters libraries + test
ymh <ymh.work@gmail.com>
parents:
diff changeset
   161
    }
a6cf5a06f02d add Transcript converters libraries + test
ymh <ymh.work@gmail.com>
parents:
diff changeset
   162
a6cf5a06f02d add Transcript converters libraries + test
ymh <ymh.work@gmail.com>
parents:
diff changeset
   163
}