Test Failed
Pull Request — master (#17)
by Denis
10:14
created

RequestTest   A

Complexity

Total Complexity 14

Size/Duplication

Total Lines 146
Duplicated Lines 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 76
dl 0
loc 146
rs 10
c 1
b 0
f 0
wmc 14

14 Methods

Rating   Name   Duplication   Size   Complexity  
A testGetQuery() 0 3 1
A testDefaultPageNum() 0 11 1
A testNoLimit() 0 11 1
A testDefaultSortDir() 0 11 1
A testDefaultSimple() 0 11 1
A setUpBeforeClass() 0 11 1
A testGetSortBy() 0 3 1
A testInvalidQueryException() 0 13 1
A testGetPageNum() 0 3 1
A testInvalidSortDirException1() 0 11 1
A testGetSortDir() 0 3 1
A testGetLimit() 0 3 1
A testInvalidSortDirException2() 0 13 1
A testIsSimple() 0 3 1
1
<?php declare(strict_types=1);
2
3
namespace Tests\Unit\Artprima\QueryFilterBundle\Request;
4
5
use Artprima\QueryFilterBundle\Exception\InvalidArgumentException;
6
use Artprima\QueryFilterBundle\Request\Request;
7
use Symfony\Component\HttpFoundation\Request as HttpRequest;
8
use PHPUnit\Framework\TestCase;
9
10
class RequestTest extends TestCase
11
{
12
    /**
13
     * @var Request
14
     */
15
    private static $request;
16
17
    public static function setUpBeforeClass(): void
18
    {
19
        $httpRequest = new HttpRequest(array(
20
            'page' => '42',
21
            'limit' => '4242',
22
            'filter' => ['column' => 'value'],
23
            'sortby' => 'sortbydummy',
24
            'sortdir' => 'desc',
25
            'simple' => '0',
26
        ));
27
        self::$request = new Request($httpRequest);
28
    }
29
30
    public function testGetPageNum()
31
    {
32
        self::assertSame(42, self::$request->getPageNum());
33
    }
34
35
    public function testGetLimit()
36
    {
37
        self::assertSame(4242, self::$request->getLimit());
38
    }
39
40
    public function testGetQuery()
41
    {
42
        self::assertSame(['column' => 'value'], self::$request->getQuery());
43
    }
44
45
    public function testGetSortBy()
46
    {
47
        self::assertSame('sortbydummy', self::$request->getSortBy());
48
    }
49
50
    public function testGetSortDir()
51
    {
52
        self::assertSame('desc', self::$request->getSortDir());
53
    }
54
55
    public function testIsSimple()
56
    {
57
        self::assertSame(false, self::$request->isSimple());
58
    }
59
60
    public function testDefaultPageNum()
61
    {
62
        $httpRequest = new HttpRequest(array(
63
            'limit' => '4242',
64
            'filter' => ['column' => 'value'],
65
            'sortby' => 'sortbydummy',
66
            'sortdir' => 'desc',
67
            'simple' => '0',
68
        ));
69
        $request = new Request($httpRequest);
70
        self::assertSame(1, $request->getPageNum());
71
    }
72
73
    public function testNoLimit()
74
    {
75
        $httpRequest = new HttpRequest(array(
76
            'page' => '42',
77
            'filter' => ['column' => 'value'],
78
            'sortby' => 'sortbydummy',
79
            'sortdir' => 'desc',
80
            'simple' => '0',
81
        ));
82
        $request = new Request($httpRequest);
83
        self::assertSame(-1, $request->getLimit());
84
    }
85
86
    public function testDefaultSortDir()
87
    {
88
        $httpRequest = new HttpRequest(array(
89
            'page' => '42',
90
            'limit' => '4242',
91
            'filter' => ['column' => 'value'],
92
            'sortby' => 'sortbydummy',
93
            'simple' => '0',
94
        ));
95
        $request = new Request($httpRequest);
96
        self::assertSame('asc', $request->getSortDir());
97
    }
98
99
    public function testDefaultSimple()
100
    {
101
        $httpRequest = new HttpRequest(array(
102
            'page' => '42',
103
            'limit' => '4242',
104
            'filter' => ['column' => 'value'],
105
            'sortby' => 'sortbydummy',
106
            'sortdir' => 'desc',
107
        ));
108
        $request = new Request($httpRequest);
109
        self::assertSame(true, $request->isSimple());
110
    }
111
112
    public function testInvalidQueryException()
113
    {
114
        $this->expectException(InvalidArgumentException::class);
115
        $this->expectExceptionMessage("Query filter must be an array");
116
        $httpRequest = new HttpRequest(array(
117
            'page' => '42',
118
            'limit' => '4242',
119
            'filter' => 'string',
120
            'sortby' => 'sortbydummy',
121
            'sortdir' => 'desc',
122
            'simple' => '0',
123
        ));
124
        $request = new Request($httpRequest);
0 ignored issues
show
Unused Code introduced by
The assignment to $request is dead and can be removed.
Loading history...
125
    }
126
127
    /**
128
     * @doesNotPerformAssertions should not throw exceptions
129
     */
130
    public function testInvalidSortDirException1()
131
    {
132
        $httpRequest = new HttpRequest(array(
133
            'page' => '42',
134
            'limit' => '4242',
135
            'filter' => ['column' => 'value'],
136
            'sortby' => 'sortbydummy',
137
            'sortdir' => 'invalid',
138
            'simple' => '0',
139
        ));
140
        $request = new Request($httpRequest);
0 ignored issues
show
Unused Code introduced by
The assignment to $request is dead and can be removed.
Loading history...
141
    }
142
143
    public function testInvalidSortDirException2()
144
    {
145
        $this->expectException(InvalidArgumentException::class);
146
        $this->expectExceptionMessage('Query sort direction must be a string');
147
        $httpRequest = new HttpRequest(array(
148
            'page' => '42',
149
            'limit' => '4242',
150
            'filter' => ['column' => 'value'],
151
            'sortby' => 'sortbydummy',
152
            'sortdir' => array('invalid'),
153
            'simple' => '0',
154
        ));
155
        $request = new Request($httpRequest);
0 ignored issues
show
Unused Code introduced by
The assignment to $request is dead and can be removed.
Loading history...
156
    }
157
}
158