server/src/tests/Controllers/BnfControllerTest.php
author ymh <ymh.work@gmail.com>
Wed, 28 Sep 2016 17:24:02 +0200
changeset 306 3fccf43160a7
parent 133 821253d361d1
child 537 d2e6ee099125
permissions -rw-r--r--
Some more changes linked to the change of api organization + some jshint error cleaning
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
133
821253d361d1 add bnf resolver
ymh <ymh.work@gmail.com>
parents:
diff changeset
     1
<?php
821253d361d1 add bnf resolver
ymh <ymh.work@gmail.com>
parents:
diff changeset
     2
821253d361d1 add bnf resolver
ymh <ymh.work@gmail.com>
parents:
diff changeset
     3
use Mockery as m;
821253d361d1 add bnf resolver
ymh <ymh.work@gmail.com>
parents:
diff changeset
     4
821253d361d1 add bnf resolver
ymh <ymh.work@gmail.com>
parents:
diff changeset
     5
use CorpusParole\Services\BnfResolverException;
821253d361d1 add bnf resolver
ymh <ymh.work@gmail.com>
parents:
diff changeset
     6
821253d361d1 add bnf resolver
ymh <ymh.work@gmail.com>
parents:
diff changeset
     7
/**
821253d361d1 add bnf resolver
ymh <ymh.work@gmail.com>
parents:
diff changeset
     8
 *
821253d361d1 add bnf resolver
ymh <ymh.work@gmail.com>
parents:
diff changeset
     9
 */
821253d361d1 add bnf resolver
ymh <ymh.work@gmail.com>
parents:
diff changeset
    10
class BnfControllerTest extends TestCase {
821253d361d1 add bnf resolver
ymh <ymh.work@gmail.com>
parents:
diff changeset
    11
821253d361d1 add bnf resolver
ymh <ymh.work@gmail.com>
parents:
diff changeset
    12
    private $bnfResolver;
821253d361d1 add bnf resolver
ymh <ymh.work@gmail.com>
parents:
diff changeset
    13
821253d361d1 add bnf resolver
ymh <ymh.work@gmail.com>
parents:
diff changeset
    14
    public function setUp() {
821253d361d1 add bnf resolver
ymh <ymh.work@gmail.com>
parents:
diff changeset
    15
821253d361d1 add bnf resolver
ymh <ymh.work@gmail.com>
parents:
diff changeset
    16
        parent::setup();
821253d361d1 add bnf resolver
ymh <ymh.work@gmail.com>
parents:
diff changeset
    17
821253d361d1 add bnf resolver
ymh <ymh.work@gmail.com>
parents:
diff changeset
    18
        // create a mock of the post repository interface and inject it into the
821253d361d1 add bnf resolver
ymh <ymh.work@gmail.com>
parents:
diff changeset
    19
        // IoC container
821253d361d1 add bnf resolver
ymh <ymh.work@gmail.com>
parents:
diff changeset
    20
        $this->bnfResolver = m::mock('CorpusParole\Services\BnfResolverInterface');
821253d361d1 add bnf resolver
ymh <ymh.work@gmail.com>
parents:
diff changeset
    21
        $this->app->instance('CorpusParole\Services\BnfResolverInterface', $this->bnfResolver);
821253d361d1 add bnf resolver
ymh <ymh.work@gmail.com>
parents:
diff changeset
    22
    }
821253d361d1 add bnf resolver
ymh <ymh.work@gmail.com>
parents:
diff changeset
    23
821253d361d1 add bnf resolver
ymh <ymh.work@gmail.com>
parents:
diff changeset
    24
    public function tearDown() {
821253d361d1 add bnf resolver
ymh <ymh.work@gmail.com>
parents:
diff changeset
    25
        m::close();
821253d361d1 add bnf resolver
ymh <ymh.work@gmail.com>
parents:
diff changeset
    26
        parent::tearDown();
821253d361d1 add bnf resolver
ymh <ymh.work@gmail.com>
parents:
diff changeset
    27
    }
821253d361d1 add bnf resolver
ymh <ymh.work@gmail.com>
parents:
diff changeset
    28
821253d361d1 add bnf resolver
ymh <ymh.work@gmail.com>
parents:
diff changeset
    29
    public function testSetup() {
821253d361d1 add bnf resolver
ymh <ymh.work@gmail.com>
parents:
diff changeset
    30
        //do nothing jsut test setup & teardown
821253d361d1 add bnf resolver
ymh <ymh.work@gmail.com>
parents:
diff changeset
    31
    }
821253d361d1 add bnf resolver
ymh <ymh.work@gmail.com>
parents:
diff changeset
    32
821253d361d1 add bnf resolver
ymh <ymh.work@gmail.com>
parents:
diff changeset
    33
    public function testShow() {
821253d361d1 add bnf resolver
ymh <ymh.work@gmail.com>
parents:
diff changeset
    34
        $this->bnfResolver
821253d361d1 add bnf resolver
ymh <ymh.work@gmail.com>
parents:
diff changeset
    35
            ->shouldReceive('getLabels')
821253d361d1 add bnf resolver
ymh <ymh.work@gmail.com>
parents:
diff changeset
    36
            ->with(['ark:/12148/cb11946662b', 'ark:/12148/cb11965628b'])
821253d361d1 add bnf resolver
ymh <ymh.work@gmail.com>
parents:
diff changeset
    37
            ->once()
821253d361d1 add bnf resolver
ymh <ymh.work@gmail.com>
parents:
diff changeset
    38
            ->andReturn([
821253d361d1 add bnf resolver
ymh <ymh.work@gmail.com>
parents:
diff changeset
    39
                'ark:/12148/cb11946662b' => 'parents et enfants',
821253d361d1 add bnf resolver
ymh <ymh.work@gmail.com>
parents:
diff changeset
    40
                'ark:/12148/cb11965628b' => 'frères et soeurs'
821253d361d1 add bnf resolver
ymh <ymh.work@gmail.com>
parents:
diff changeset
    41
            ]);
306
3fccf43160a7 Some more changes linked to the change of api organization + some jshint error cleaning
ymh <ymh.work@gmail.com>
parents: 133
diff changeset
    42
        $response = $this->get('/api/v1/resolvers/bnf/cb11946662b,cb11965628b')->
133
821253d361d1 add bnf resolver
ymh <ymh.work@gmail.com>
parents:
diff changeset
    43
            seeJsonEquals(['bnfids' => [
821253d361d1 add bnf resolver
ymh <ymh.work@gmail.com>
parents:
diff changeset
    44
                'ark:/12148/cb11946662b' => 'parents et enfants',
821253d361d1 add bnf resolver
ymh <ymh.work@gmail.com>
parents:
diff changeset
    45
                'ark:/12148/cb11965628b' => 'frères et soeurs'
821253d361d1 add bnf resolver
ymh <ymh.work@gmail.com>
parents:
diff changeset
    46
            ]]);
821253d361d1 add bnf resolver
ymh <ymh.work@gmail.com>
parents:
diff changeset
    47
    }
821253d361d1 add bnf resolver
ymh <ymh.work@gmail.com>
parents:
diff changeset
    48
821253d361d1 add bnf resolver
ymh <ymh.work@gmail.com>
parents:
diff changeset
    49
    public function testShowOne() {
821253d361d1 add bnf resolver
ymh <ymh.work@gmail.com>
parents:
diff changeset
    50
        $this->bnfResolver
821253d361d1 add bnf resolver
ymh <ymh.work@gmail.com>
parents:
diff changeset
    51
            ->shouldReceive('getLabels')
821253d361d1 add bnf resolver
ymh <ymh.work@gmail.com>
parents:
diff changeset
    52
            ->with(['ark:/12148/cb11946662b'])
821253d361d1 add bnf resolver
ymh <ymh.work@gmail.com>
parents:
diff changeset
    53
            ->once()
821253d361d1 add bnf resolver
ymh <ymh.work@gmail.com>
parents:
diff changeset
    54
            ->andReturn([
821253d361d1 add bnf resolver
ymh <ymh.work@gmail.com>
parents:
diff changeset
    55
                'ark:/12148/cb11946662b' => 'parents et enfants'
821253d361d1 add bnf resolver
ymh <ymh.work@gmail.com>
parents:
diff changeset
    56
            ]);
306
3fccf43160a7 Some more changes linked to the change of api organization + some jshint error cleaning
ymh <ymh.work@gmail.com>
parents: 133
diff changeset
    57
        $response = $this->get('/api/v1/resolvers/bnf/cb11946662b')->
133
821253d361d1 add bnf resolver
ymh <ymh.work@gmail.com>
parents:
diff changeset
    58
            seeJsonEquals(['bnfids' => [
821253d361d1 add bnf resolver
ymh <ymh.work@gmail.com>
parents:
diff changeset
    59
                'ark:/12148/cb11946662b' => 'parents et enfants'
821253d361d1 add bnf resolver
ymh <ymh.work@gmail.com>
parents:
diff changeset
    60
            ]]);
821253d361d1 add bnf resolver
ymh <ymh.work@gmail.com>
parents:
diff changeset
    61
    }
821253d361d1 add bnf resolver
ymh <ymh.work@gmail.com>
parents:
diff changeset
    62
821253d361d1 add bnf resolver
ymh <ymh.work@gmail.com>
parents:
diff changeset
    63
    public function testShowUnknown() {
821253d361d1 add bnf resolver
ymh <ymh.work@gmail.com>
parents:
diff changeset
    64
        $this->bnfResolver
821253d361d1 add bnf resolver
ymh <ymh.work@gmail.com>
parents:
diff changeset
    65
            ->shouldReceive('getLabels')
821253d361d1 add bnf resolver
ymh <ymh.work@gmail.com>
parents:
diff changeset
    66
            ->with(['ark:/12148/cb12345678b'])
821253d361d1 add bnf resolver
ymh <ymh.work@gmail.com>
parents:
diff changeset
    67
            ->once()
821253d361d1 add bnf resolver
ymh <ymh.work@gmail.com>
parents:
diff changeset
    68
            ->andReturn([
821253d361d1 add bnf resolver
ymh <ymh.work@gmail.com>
parents:
diff changeset
    69
                'ark:/12148/cb12345678b' => null
821253d361d1 add bnf resolver
ymh <ymh.work@gmail.com>
parents:
diff changeset
    70
            ]);
306
3fccf43160a7 Some more changes linked to the change of api organization + some jshint error cleaning
ymh <ymh.work@gmail.com>
parents: 133
diff changeset
    71
        $response = $this->get('/api/v1/resolvers/bnf/cb12345678b')->
133
821253d361d1 add bnf resolver
ymh <ymh.work@gmail.com>
parents:
diff changeset
    72
            seeJsonEquals(['bnfids' => [
821253d361d1 add bnf resolver
ymh <ymh.work@gmail.com>
parents:
diff changeset
    73
                'ark:/12148/cb12345678b' => null
821253d361d1 add bnf resolver
ymh <ymh.work@gmail.com>
parents:
diff changeset
    74
            ]]);
821253d361d1 add bnf resolver
ymh <ymh.work@gmail.com>
parents:
diff changeset
    75
    }
821253d361d1 add bnf resolver
ymh <ymh.work@gmail.com>
parents:
diff changeset
    76
821253d361d1 add bnf resolver
ymh <ymh.work@gmail.com>
parents:
diff changeset
    77
    public function testShowMalformed() {
821253d361d1 add bnf resolver
ymh <ymh.work@gmail.com>
parents:
diff changeset
    78
        $this->bnfResolver
821253d361d1 add bnf resolver
ymh <ymh.work@gmail.com>
parents:
diff changeset
    79
            ->shouldReceive('getLabels')
821253d361d1 add bnf resolver
ymh <ymh.work@gmail.com>
parents:
diff changeset
    80
            ->with(['ark:/12148/abcdef','ark:/12148/ghij'])
821253d361d1 add bnf resolver
ymh <ymh.work@gmail.com>
parents:
diff changeset
    81
            ->once()
821253d361d1 add bnf resolver
ymh <ymh.work@gmail.com>
parents:
diff changeset
    82
            ->andThrow('CorpusParole\Services\BnfResolverException', "BnfId not in correct format", 500);
306
3fccf43160a7 Some more changes linked to the change of api organization + some jshint error cleaning
ymh <ymh.work@gmail.com>
parents: 133
diff changeset
    83
        $response = $this->get('/api/v1/resolvers/bnf/abcdef,ghij');
133
821253d361d1 add bnf resolver
ymh <ymh.work@gmail.com>
parents:
diff changeset
    84
821253d361d1 add bnf resolver
ymh <ymh.work@gmail.com>
parents:
diff changeset
    85
        $this->assertResponseStatus(500);
821253d361d1 add bnf resolver
ymh <ymh.work@gmail.com>
parents:
diff changeset
    86
    }
821253d361d1 add bnf resolver
ymh <ymh.work@gmail.com>
parents:
diff changeset
    87
821253d361d1 add bnf resolver
ymh <ymh.work@gmail.com>
parents:
diff changeset
    88
}