Passed
Push — master ( 729744...d41911 )
by Denis
02:41
created

RequestTest::testInvalidQueryException()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 11
Code Lines 8

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 8
nc 1
nop 0
dl 0
loc 11
rs 9.4285
c 0
b 0
f 0
1
<?php
2
3
declare(strict_types=1);
4
5
namespace Tests\Artprima\QueryFilterBundle\Request;
6
7
use Artprima\QueryFilterBundle\Request\Request;
8
use Symfony\Component\HttpFoundation\Request as HttpRequest;
9
use PHPUnit\Framework\TestCase;
10
11
class RequestTest extends TestCase
12
{
13
    /**
14
     * @var Request
15
     */
16
    private static $request;
17
18
    public static function setUpBeforeClass()
19
    {
20
        $httpRequest = new HttpRequest(array(
21
            'page' => '42',
22
            'limit' => '4242',
23
            'filter' => ['column' => 'value'],
24
            'sortby' => 'sortbydummy',
25
            'sortdir' => 'desc',
26
            'simple' => '0',
27
        ));
28
        self::$request = new Request($httpRequest);
29
    }
30
31
    public function testGetPageNum()
32
    {
33
        self::assertSame(42, self::$request->getPageNum());
34
    }
35
36
    public function testGetLimit()
37
    {
38
        self::assertSame(4242, self::$request->getLimit());
39
    }
40
41
    public function testGetQuery()
42
    {
43
        self::assertSame(['column' => 'value'], self::$request->getQuery());
44
    }
45
46
    public function testGetSortBy()
47
    {
48
        self::assertSame('sortbydummy', self::$request->getSortBy());
49
    }
50
51
    public function testGetSortDir()
52
    {
53
        self::assertSame('desc', self::$request->getSortDir());
54
    }
55
56
    public function testIsSimple()
57
    {
58
        self::assertSame(false, self::$request->isSimple());
59
    }
60
61
    public function testDefaultPageNum()
62
    {
63
        $httpRequest = new HttpRequest(array(
64
            'limit' => '4242',
65
            'filter' => ['column' => 'value'],
66
            'sortby' => 'sortbydummy',
67
            'sortdir' => 'desc',
68
            'simple' => '0',
69
        ));
70
        $request = new Request($httpRequest);
71
        self::assertSame(1, $request->getPageNum());
72
    }
73
74
    public function testDefaultLimit()
75
    {
76
        $httpRequest = new HttpRequest(array(
77
            'page' => '42',
78
            'filter' => ['column' => 'value'],
79
            'sortby' => 'sortbydummy',
80
            'sortdir' => 'desc',
81
            'simple' => '0',
82
        ));
83
        $request = new Request($httpRequest);
84
        self::assertSame(10, $request->getLimit());
85
    }
86
87
    public function testDefaultSortDir()
88
    {
89
        $httpRequest = new HttpRequest(array(
90
            'page' => '42',
91
            'limit' => '4242',
92
            'filter' => ['column' => 'value'],
93
            'sortby' => 'sortbydummy',
94
            'simple' => '0',
95
        ));
96
        $request = new Request($httpRequest);
97
        self::assertSame('asc', $request->getSortDir());
98
    }
99
100
    public function testDefaultSimple()
101
    {
102
        $httpRequest = new HttpRequest(array(
103
            'page' => '42',
104
            'limit' => '4242',
105
            'filter' => ['column' => 'value'],
106
            'sortby' => 'sortbydummy',
107
            'sortdir' => 'desc',
108
        ));
109
        $request = new Request($httpRequest);
110
        self::assertSame(true, $request->isSimple());
111
    }
112
113
    /**
114
     * @expectedException \Artprima\QueryFilterBundle\Exception\InvalidArgumentException
115
     * @expectedExceptionMessage Query filter must be an array
116
     */
117
    public function testInvalidQueryException()
118
    {
119
        $httpRequest = new HttpRequest(array(
120
            'page' => '42',
121
            'limit' => '4242',
122
            'filter' => 'string',
123
            'sortby' => 'sortbydummy',
124
            'sortdir' => 'desc',
125
            'simple' => '0',
126
        ));
127
        $request = new Request($httpRequest);
128
    }
129
130
    /**
131
     * @expectedException \Artprima\QueryFilterBundle\Exception\InvalidArgumentException
132
     * @expectedExceptionMessage Query sort direction must be one of those: asc or desc
133
     */
134
    public function testInvalidSortDirException1()
135
    {
136
        $httpRequest = new HttpRequest(array(
137
            'page' => '42',
138
            'limit' => '4242',
139
            'filter' => ['column' => 'value'],
140
            'sortby' => 'sortbydummy',
141
            'sortdir' => 'invalid',
142
            'simple' => '0',
143
        ));
144
        $request = new Request($httpRequest);
145
    }
146
147
    /**
148
     * @expectedException \Artprima\QueryFilterBundle\Exception\InvalidArgumentException
149
     * @expectedExceptionMessage Query sort direction must be one of those: asc or desc
150
     */
151
    public function testInvalidSortDirException2()
152
    {
153
        $httpRequest = new HttpRequest(array(
154
            'page' => '42',
155
            'limit' => '4242',
156
            'filter' => ['column' => 'value'],
157
            'sortby' => 'sortbydummy',
158
            'sortdir' => array('invalid'),
159
            'simple' => '0',
160
        ));
161
        $request = new Request($httpRequest);
162
    }
163
}
164