server/src/tests/Controllers/DateStatsControllerTest.php
author ymh <ymh.work@gmail.com>
Fri, 30 Sep 2016 00:43:04 +0200
changeset 307 07b44a378ad8
child 375 145561ff51ff
permissions -rw-r--r--
Add the datestats api
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
307
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
     1
<?php
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
     2
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
     3
use Mockery as m;
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
     4
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
     5
use EasyRdf\Literal;
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
     6
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
     7
class DateStatsControllerTest extends TestCase
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
     8
{
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
     9
    private $sparqlClient;
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
    10
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
    11
    public function setUp() {
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
    12
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
    13
        parent::setup();
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
    14
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
    15
        // create a mock of the post repository interface and inject it into the
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
    16
        // IoC container
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
    17
        $this->sparqlClient = m::mock('CorpusParole\Libraries\Sparql\SparqlClient');
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
    18
        $this->app->instance('CorpusParole\Libraries\Sparql\SparqlClient', $this->sparqlClient);
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
    19
    }
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
    20
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
    21
    public function tearDown() {
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
    22
        m::close();
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
    23
        parent::tearDown();
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
    24
    }
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
    25
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
    26
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
    27
    public function testIndexQuery() {
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
    28
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
    29
        $query =  preg_replace('/\s+/', ' ', "SELECT (?d as ?date) (COUNT(?d) AS ?count)
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
    30
            WHERE {
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
    31
                ?_ a <http://www.europeana.eu/schemas/edm/ProvidedCHO>.
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
    32
                ?_ <http://purl.org/dc/terms/created> ?d
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
    33
            }
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
    34
            GROUP BY ?d
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
    35
            ORDER BY ?d");
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
    36
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
    37
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
    38
        $this->sparqlClient
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
    39
            ->shouldReceive('query')
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
    40
            ->with($query)
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
    41
            ->once()
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
    42
            ->andReturn(new \ArrayIterator([]));
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
    43
        $this->get('/api/v1/stats/datestats/');
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
    44
        $this->seeJsonEquals(["datestats" => []]);
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
    45
    }
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
    46
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
    47
    public function testIndexMultiple() {
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
    48
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
    49
         $this->sparqlClient
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
    50
             ->shouldReceive('query')
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
    51
             ->once()
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
    52
             ->andReturn(new \ArrayIterator([
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
    53
                 (object)['date'=>new Literal('1975', null, "http://purl.org/dc/terms/W3CDTF"), 'count' => Literal::create(1)],
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
    54
                 (object)['date'=>new Literal('1965', null, "http://purl.org/dc/terms/W3CDTF"), 'count' => Literal::create(2)],
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
    55
                 (object)['date'=>new Literal('1955', null, "http://purl.org/dc/terms/W3CDTF"), 'count' => Literal::create(3)],
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
    56
             ]));
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
    57
         $this->get('/api/v1/stats/datestats/')->assertTrue($this->response->isOk(), $this->response->content());
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
    58
         $this->seeJsonEquals(["datestats" => [
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
    59
             "1955" => 3,
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
    60
             "1965" => 2,
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
    61
             "1975" => 1,
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
    62
         ]]);
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
    63
    }
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
    64
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
    65
    public function testIndexSimple() {
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
    66
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
    67
         $this->sparqlClient
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
    68
             ->shouldReceive('query')
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
    69
             ->once()
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
    70
             ->andReturn(new \ArrayIterator([
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
    71
                 (object)['date'=>new Literal('1955', null, "http://purl.org/dc/terms/W3CDTF"), 'count' => Literal::create(1)],
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
    72
                 (object)['date'=>new Literal('1965', null, "http://purl.org/dc/terms/W3CDTF"), 'count' => Literal::create(1)],
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
    73
                 (object)['date'=>new Literal('1975', null, "http://purl.org/dc/terms/W3CDTF"), 'count' => Literal::create(1)],
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
    74
             ]));
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
    75
         $this->get('/api/v1/stats/datestats/')->assertTrue($this->response->isOk(), $this->response->content());
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
    76
         $this->seeJsonEquals(["datestats" => [
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
    77
             "1955" => 1,
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
    78
             "1965" => 1,
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
    79
             "1975" => 1,
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
    80
         ]]);
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
    81
    }
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
    82
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
    83
    public function testIndexPeriod() {
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
    84
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
    85
        $this->sparqlClient
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
    86
             ->shouldReceive('query')
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
    87
             ->once()
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
    88
             ->andReturn(new \ArrayIterator([
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
    89
                 (object)['date'=>new Literal('start=1955; end=1965', null, "http://purl.org/dc/terms/Period"), 'count' => Literal::create(11)],
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
    90
             ]));
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
    91
        $this->get('/api/v1/stats/datestats/')->assertTrue($this->response->isOk(), $this->response->content());
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
    92
        $this->seeJsonEquals(["datestats" => [
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
    93
            "1955" => 1,
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
    94
            "1956" => 1,
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
    95
            "1957" => 1,
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
    96
            "1958" => 1,
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
    97
            "1959" => 1,
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
    98
            "1960" => 1,
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
    99
            "1961" => 1,
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
   100
            "1962" => 1,
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
   101
            "1963" => 1,
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
   102
            "1964" => 1,
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
   103
            "1965" => 1,
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
   104
        ]]);
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
   105
    }
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
   106
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
   107
    public function testIndexPeriodRemainMore() {
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
   108
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
   109
        $this->sparqlClient
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
   110
             ->shouldReceive('query')
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
   111
             ->once()
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
   112
             ->andReturn(new \ArrayIterator([
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
   113
                 (object)['date'=>new Literal('start=1955; end=1965', null, "http://purl.org/dc/terms/Period"), 'count' => Literal::create(15)],
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
   114
             ]));
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
   115
        $this->get('/api/v1/stats/datestats/')->assertTrue($this->response->isOk(), $this->response->content());
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
   116
        $this->seeJsonEquals(["datestats" => [
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
   117
            "1955" => 2,
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
   118
            "1956" => 2,
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
   119
            "1957" => 2,
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
   120
            "1958" => 2,
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
   121
            "1959" => 1,
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
   122
            "1960" => 1,
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
   123
            "1961" => 1,
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
   124
            "1962" => 1,
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
   125
            "1963" => 1,
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
   126
            "1964" => 1,
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
   127
            "1965" => 1,
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
   128
        ]]);
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
   129
    }
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
   130
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
   131
    public function testIndexPeriodRemainLess() {
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
   132
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
   133
        $this->sparqlClient
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
   134
             ->shouldReceive('query')
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
   135
             ->once()
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
   136
             ->andReturn(new \ArrayIterator([
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
   137
                 (object)['date'=>new Literal('start=1955; end=1965', null, "http://purl.org/dc/terms/Period"), 'count' => Literal::create(10)],
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
   138
             ]));
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
   139
        $this->get('/api/v1/stats/datestats/')->assertTrue($this->response->isOk(), $this->response->content());
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
   140
        $this->seeJsonEquals(["datestats" => [
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
   141
            "1955" => 1,
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
   142
            "1956" => 1,
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
   143
            "1957" => 1,
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
   144
            "1958" => 1,
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
   145
            "1959" => 1,
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
   146
            "1960" => 1,
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
   147
            "1961" => 1,
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
   148
            "1962" => 1,
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
   149
            "1963" => 1,
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
   150
            "1964" => 1,
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
   151
        ]]);
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
   152
    }
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
   153
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
   154
    public function testIndexMix() {
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
   155
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
   156
        $this->sparqlClient
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
   157
             ->shouldReceive('query')
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
   158
             ->once()
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
   159
             ->andReturn(new \ArrayIterator([
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
   160
                 (object)['date'=>new Literal('start=1955; end=1965', null, "http://purl.org/dc/terms/Period"), 'count' => Literal::create(11)],
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
   161
                 (object)['date'=>new Literal('1960', null, "http://purl.org/dc/terms/W3CDTF"), 'count' => Literal::create(2)],
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
   162
             ]));
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
   163
        $this->get('/api/v1/stats/datestats/')->assertTrue($this->response->isOk(), $this->response->content());
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
   164
        $this->seeJsonEquals(["datestats" => [
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
   165
            "1955" => 1,
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
   166
            "1956" => 1,
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
   167
            "1957" => 1,
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
   168
            "1958" => 1,
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
   169
            "1959" => 1,
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
   170
            "1960" => 3,
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
   171
            "1961" => 1,
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
   172
            "1962" => 1,
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
   173
            "1963" => 1,
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
   174
            "1964" => 1,
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
   175
            "1965" => 1,
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
   176
        ]]);
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
   177
    }
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
   178
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
   179
    public function testIndexBadDate() {
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
   180
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
   181
         $this->sparqlClient
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
   182
             ->shouldReceive('query')
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
   183
             ->once()
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
   184
             ->andReturn(new \ArrayIterator([
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
   185
                 (object)['date'=>new Literal('1955', null, "http://purl.org/dc/terms/W3CDTF"), 'count' => Literal::create(1)],
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
   186
                 (object)['date'=>new Literal('HELLO', null, "http://purl.org/dc/terms/W3CDTF"), 'count' => Literal::create(1)],
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
   187
                 (object)['date'=>new Literal('1975', null, "http://purl.org/dc/terms/W3CDTF"), 'count' => Literal::create(1)],
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
   188
             ]));
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
   189
         $this->get('/api/v1/stats/datestats/')->assertTrue($this->response->isOk(), $this->response->content());
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
   190
         $this->seeJsonEquals(["datestats" => [
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
   191
             "1955" => 1,
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
   192
             "1975" => 1,
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
   193
         ]]);
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
   194
    }
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
   195
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
   196
    public function testIndexBadPeriod() {
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
   197
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
   198
        $this->sparqlClient
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
   199
             ->shouldReceive('query')
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
   200
             ->once()
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
   201
             ->andReturn(new \ArrayIterator([
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
   202
                 (object)['date'=>new Literal('start=1955; end=FOO', null, "http://purl.org/dc/terms/Period"), 'count' => Literal::create(11)],
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
   203
             ]));
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
   204
        $this->get('/api/v1/stats/datestats/')->assertTrue($this->response->isOk(), $this->response->content());
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
   205
        $this->seeJsonEquals(["datestats" => [
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
   206
        ]]);
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
   207
    }
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
   208
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
   209
    public function testIndexBadPeriodMissing() {
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
   210
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
   211
        $this->sparqlClient
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
   212
             ->shouldReceive('query')
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
   213
             ->once()
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
   214
             ->andReturn(new \ArrayIterator([
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
   215
                 (object)['date'=>new Literal('start=1955', null, "http://purl.org/dc/terms/Period"), 'count' => Literal::create(11)],
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
   216
             ]));
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
   217
        $this->get('/api/v1/stats/datestats/')->assertTrue($this->response->isOk(), $this->response->content());
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
   218
        $this->seeJsonEquals(["datestats" => [
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
   219
        ]]);
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
   220
    }
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
   221
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
   222
    public function testIndexFullPeriod() {
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
   223
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
   224
        $this->sparqlClient
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
   225
             ->shouldReceive('query')
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
   226
             ->once()
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
   227
             ->andReturn(new \ArrayIterator([
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
   228
                 (object)['date'=>new Literal('start=1955; end=1965; scheme=v3; name=v4;', null, "http://purl.org/dc/terms/Period"), 'count' => Literal::create(11)],
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
   229
             ]));
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
   230
        $this->get('/api/v1/stats/datestats/')->assertTrue($this->response->isOk(), $this->response->content());
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
   231
        $this->seeJsonEquals(["datestats" => [
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
   232
            "1955" => 1,
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
   233
            "1956" => 1,
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
   234
            "1957" => 1,
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
   235
            "1958" => 1,
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
   236
            "1959" => 1,
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
   237
            "1960" => 1,
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
   238
            "1961" => 1,
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
   239
            "1962" => 1,
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
   240
            "1963" => 1,
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
   241
            "1964" => 1,
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
   242
            "1965" => 1,
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
   243
        ]]);
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
   244
    }
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
   245
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
   246
    public function testIndexMultipleFormat() {
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
   247
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
   248
         $this->sparqlClient
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
   249
             ->shouldReceive('query')
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
   250
             ->once()
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
   251
             ->andReturn(new \ArrayIterator([
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
   252
                 (object)['date'=>new Literal('1975-02-05', null, "http://purl.org/dc/terms/W3CDTF"), 'count' => Literal::create(1)],
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
   253
                 (object)['date'=>new Literal('1965-03', null, "http://purl.org/dc/terms/W3CDTF"), 'count' => Literal::create(2)],
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
   254
                 (object)['date'=>new Literal('1955-02-12T08:30:00+00:00', null, "http://purl.org/dc/terms/W3CDTF"), 'count' => Literal::create(3)],
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
   255
                 (object)['date'=>new Literal('1950-08-18T08:30:00Z', null, "http://purl.org/dc/terms/W3CDTF"), 'count' => Literal::create(4)],
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
   256
             ]));
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
   257
         $this->get('/api/v1/stats/datestats/')->assertTrue($this->response->isOk(), $this->response->content());
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
   258
         $this->seeJsonEquals(["datestats" => [
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
   259
             "1950" => 4,
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
   260
             "1955" => 3,
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
   261
             "1965" => 2,
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
   262
             "1975" => 1,
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
   263
         ]]);
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
   264
    }
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
   265
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
   266
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
   267
07b44a378ad8 Add the datestats api
ymh <ymh.work@gmail.com>
parents:
diff changeset
   268
}