server/src/tests/Controllers/ViafControllerTest.php
author ymh <ymh.work@gmail.com>
Sat, 07 May 2016 10:06:26 +0200
changeset 158 366509ae2f37
parent 23 037687868bc4
child 306 3fccf43160a7
permissions -rw-r--r--
Add controller for themes count + upgrade ember for app-client
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
23
037687868bc4 add viaf resolver service & api
ymh <ymh.work@gmail.com>
parents:
diff changeset
     1
<?php
037687868bc4 add viaf resolver service & api
ymh <ymh.work@gmail.com>
parents:
diff changeset
     2
037687868bc4 add viaf resolver service & api
ymh <ymh.work@gmail.com>
parents:
diff changeset
     3
use Mockery as m;
037687868bc4 add viaf resolver service & api
ymh <ymh.work@gmail.com>
parents:
diff changeset
     4
037687868bc4 add viaf resolver service & api
ymh <ymh.work@gmail.com>
parents:
diff changeset
     5
use CorpusParole\Services\ViafResolverException;
037687868bc4 add viaf resolver service & api
ymh <ymh.work@gmail.com>
parents:
diff changeset
     6
037687868bc4 add viaf resolver service & api
ymh <ymh.work@gmail.com>
parents:
diff changeset
     7
/**
037687868bc4 add viaf resolver service & api
ymh <ymh.work@gmail.com>
parents:
diff changeset
     8
 *
037687868bc4 add viaf resolver service & api
ymh <ymh.work@gmail.com>
parents:
diff changeset
     9
 */
037687868bc4 add viaf resolver service & api
ymh <ymh.work@gmail.com>
parents:
diff changeset
    10
class ViafControllerTest extends TestCase {
037687868bc4 add viaf resolver service & api
ymh <ymh.work@gmail.com>
parents:
diff changeset
    11
037687868bc4 add viaf resolver service & api
ymh <ymh.work@gmail.com>
parents:
diff changeset
    12
    private $viafResolver;
037687868bc4 add viaf resolver service & api
ymh <ymh.work@gmail.com>
parents:
diff changeset
    13
037687868bc4 add viaf resolver service & api
ymh <ymh.work@gmail.com>
parents:
diff changeset
    14
    public function setUp() {
037687868bc4 add viaf resolver service & api
ymh <ymh.work@gmail.com>
parents:
diff changeset
    15
037687868bc4 add viaf resolver service & api
ymh <ymh.work@gmail.com>
parents:
diff changeset
    16
        parent::setup();
037687868bc4 add viaf resolver service & api
ymh <ymh.work@gmail.com>
parents:
diff changeset
    17
037687868bc4 add viaf resolver service & api
ymh <ymh.work@gmail.com>
parents:
diff changeset
    18
        // create a mock of the post repository interface and inject it into the
037687868bc4 add viaf resolver service & api
ymh <ymh.work@gmail.com>
parents:
diff changeset
    19
        // IoC container
037687868bc4 add viaf resolver service & api
ymh <ymh.work@gmail.com>
parents:
diff changeset
    20
        $this->viafResolver = m::mock('CorpusParole\Services\ViafResolverInterface');
037687868bc4 add viaf resolver service & api
ymh <ymh.work@gmail.com>
parents:
diff changeset
    21
        $this->app->instance('CorpusParole\Services\ViafResolverInterface', $this->viafResolver);
037687868bc4 add viaf resolver service & api
ymh <ymh.work@gmail.com>
parents:
diff changeset
    22
    }
037687868bc4 add viaf resolver service & api
ymh <ymh.work@gmail.com>
parents:
diff changeset
    23
037687868bc4 add viaf resolver service & api
ymh <ymh.work@gmail.com>
parents:
diff changeset
    24
    public function tearDown() {
037687868bc4 add viaf resolver service & api
ymh <ymh.work@gmail.com>
parents:
diff changeset
    25
        m::close();
037687868bc4 add viaf resolver service & api
ymh <ymh.work@gmail.com>
parents:
diff changeset
    26
        parent::tearDown();
037687868bc4 add viaf resolver service & api
ymh <ymh.work@gmail.com>
parents:
diff changeset
    27
    }
037687868bc4 add viaf resolver service & api
ymh <ymh.work@gmail.com>
parents:
diff changeset
    28
037687868bc4 add viaf resolver service & api
ymh <ymh.work@gmail.com>
parents:
diff changeset
    29
    public function testShow() {
037687868bc4 add viaf resolver service & api
ymh <ymh.work@gmail.com>
parents:
diff changeset
    30
        $this->viafResolver
037687868bc4 add viaf resolver service & api
ymh <ymh.work@gmail.com>
parents:
diff changeset
    31
            ->shouldReceive('getNames')
037687868bc4 add viaf resolver service & api
ymh <ymh.work@gmail.com>
parents:
diff changeset
    32
            ->with(['93752300', '56666014'])
037687868bc4 add viaf resolver service & api
ymh <ymh.work@gmail.com>
parents:
diff changeset
    33
            ->once()
037687868bc4 add viaf resolver service & api
ymh <ymh.work@gmail.com>
parents:
diff changeset
    34
            ->andReturn([
037687868bc4 add viaf resolver service & api
ymh <ymh.work@gmail.com>
parents:
diff changeset
    35
                '56666014' => 'Guylaine Brun-Trigaud',
037687868bc4 add viaf resolver service & api
ymh <ymh.work@gmail.com>
parents:
diff changeset
    36
                '93752300' => 'Sonia Branca-Rosoff'
037687868bc4 add viaf resolver service & api
ymh <ymh.work@gmail.com>
parents:
diff changeset
    37
            ]);
037687868bc4 add viaf resolver service & api
ymh <ymh.work@gmail.com>
parents:
diff changeset
    38
        $response = $this->get('/api/v1/viaf/93752300,56666014')->
037687868bc4 add viaf resolver service & api
ymh <ymh.work@gmail.com>
parents:
diff changeset
    39
            seeJsonEquals(['viafids' => [
037687868bc4 add viaf resolver service & api
ymh <ymh.work@gmail.com>
parents:
diff changeset
    40
                '56666014' => 'Guylaine Brun-Trigaud',
037687868bc4 add viaf resolver service & api
ymh <ymh.work@gmail.com>
parents:
diff changeset
    41
                '93752300' => 'Sonia Branca-Rosoff'
037687868bc4 add viaf resolver service & api
ymh <ymh.work@gmail.com>
parents:
diff changeset
    42
            ]]);
037687868bc4 add viaf resolver service & api
ymh <ymh.work@gmail.com>
parents:
diff changeset
    43
    }
037687868bc4 add viaf resolver service & api
ymh <ymh.work@gmail.com>
parents:
diff changeset
    44
037687868bc4 add viaf resolver service & api
ymh <ymh.work@gmail.com>
parents:
diff changeset
    45
    public function testShowOne() {
037687868bc4 add viaf resolver service & api
ymh <ymh.work@gmail.com>
parents:
diff changeset
    46
        $this->viafResolver
037687868bc4 add viaf resolver service & api
ymh <ymh.work@gmail.com>
parents:
diff changeset
    47
            ->shouldReceive('getNames')
037687868bc4 add viaf resolver service & api
ymh <ymh.work@gmail.com>
parents:
diff changeset
    48
            ->with(['93752300'])
037687868bc4 add viaf resolver service & api
ymh <ymh.work@gmail.com>
parents:
diff changeset
    49
            ->once()
037687868bc4 add viaf resolver service & api
ymh <ymh.work@gmail.com>
parents:
diff changeset
    50
            ->andReturn([
037687868bc4 add viaf resolver service & api
ymh <ymh.work@gmail.com>
parents:
diff changeset
    51
                '93752300' => 'Sonia Branca-Rosoff'
037687868bc4 add viaf resolver service & api
ymh <ymh.work@gmail.com>
parents:
diff changeset
    52
            ]);
037687868bc4 add viaf resolver service & api
ymh <ymh.work@gmail.com>
parents:
diff changeset
    53
        $response = $this->get('/api/v1/viaf/93752300')->
037687868bc4 add viaf resolver service & api
ymh <ymh.work@gmail.com>
parents:
diff changeset
    54
            seeJsonEquals(['viafids' => [
037687868bc4 add viaf resolver service & api
ymh <ymh.work@gmail.com>
parents:
diff changeset
    55
                '93752300' => 'Sonia Branca-Rosoff'
037687868bc4 add viaf resolver service & api
ymh <ymh.work@gmail.com>
parents:
diff changeset
    56
            ]]);
037687868bc4 add viaf resolver service & api
ymh <ymh.work@gmail.com>
parents:
diff changeset
    57
    }
037687868bc4 add viaf resolver service & api
ymh <ymh.work@gmail.com>
parents:
diff changeset
    58
037687868bc4 add viaf resolver service & api
ymh <ymh.work@gmail.com>
parents:
diff changeset
    59
    public function testShowUnknown() {
037687868bc4 add viaf resolver service & api
ymh <ymh.work@gmail.com>
parents:
diff changeset
    60
        $this->viafResolver
037687868bc4 add viaf resolver service & api
ymh <ymh.work@gmail.com>
parents:
diff changeset
    61
            ->shouldReceive('getNames')
037687868bc4 add viaf resolver service & api
ymh <ymh.work@gmail.com>
parents:
diff changeset
    62
            ->with(['12345'])
037687868bc4 add viaf resolver service & api
ymh <ymh.work@gmail.com>
parents:
diff changeset
    63
            ->once()
037687868bc4 add viaf resolver service & api
ymh <ymh.work@gmail.com>
parents:
diff changeset
    64
            ->andReturn([
037687868bc4 add viaf resolver service & api
ymh <ymh.work@gmail.com>
parents:
diff changeset
    65
                '12345' => null
037687868bc4 add viaf resolver service & api
ymh <ymh.work@gmail.com>
parents:
diff changeset
    66
            ]);
037687868bc4 add viaf resolver service & api
ymh <ymh.work@gmail.com>
parents:
diff changeset
    67
        $response = $this->get('/api/v1/viaf/12345')->
037687868bc4 add viaf resolver service & api
ymh <ymh.work@gmail.com>
parents:
diff changeset
    68
            seeJsonEquals(['viafids' => [
037687868bc4 add viaf resolver service & api
ymh <ymh.work@gmail.com>
parents:
diff changeset
    69
                '12345' => null
037687868bc4 add viaf resolver service & api
ymh <ymh.work@gmail.com>
parents:
diff changeset
    70
            ]]);
037687868bc4 add viaf resolver service & api
ymh <ymh.work@gmail.com>
parents:
diff changeset
    71
    }
037687868bc4 add viaf resolver service & api
ymh <ymh.work@gmail.com>
parents:
diff changeset
    72
037687868bc4 add viaf resolver service & api
ymh <ymh.work@gmail.com>
parents:
diff changeset
    73
    public function testShowMalformed() {
037687868bc4 add viaf resolver service & api
ymh <ymh.work@gmail.com>
parents:
diff changeset
    74
        $this->viafResolver
037687868bc4 add viaf resolver service & api
ymh <ymh.work@gmail.com>
parents:
diff changeset
    75
            ->shouldReceive('getNames')
037687868bc4 add viaf resolver service & api
ymh <ymh.work@gmail.com>
parents:
diff changeset
    76
            ->with(['abcdef','ghij'])
037687868bc4 add viaf resolver service & api
ymh <ymh.work@gmail.com>
parents:
diff changeset
    77
            ->once()
037687868bc4 add viaf resolver service & api
ymh <ymh.work@gmail.com>
parents:
diff changeset
    78
            ->andThrow('CorpusParole\Services\ViafResolverException', "ViafId not in correct format", 400);
037687868bc4 add viaf resolver service & api
ymh <ymh.work@gmail.com>
parents:
diff changeset
    79
        $response = $this->get('/api/v1/viaf/abcdef,ghij');
037687868bc4 add viaf resolver service & api
ymh <ymh.work@gmail.com>
parents:
diff changeset
    80
037687868bc4 add viaf resolver service & api
ymh <ymh.work@gmail.com>
parents:
diff changeset
    81
        $this->assertResponseStatus(400);
037687868bc4 add viaf resolver service & api
ymh <ymh.work@gmail.com>
parents:
diff changeset
    82
    }
037687868bc4 add viaf resolver service & api
ymh <ymh.work@gmail.com>
parents:
diff changeset
    83
037687868bc4 add viaf resolver service & api
ymh <ymh.work@gmail.com>
parents:
diff changeset
    84
}