-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathRequestFactoryTest.php
92 lines (86 loc) · 2.4 KB
/
RequestFactoryTest.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
<?php
/**
* Datatables PHP Model
*/
namespace Webinv\Datatables\Tests;
use PHPUnit\Framework\TestCase;
use Webinv\Datatables\RequestFactory;
use Webinv\Datatables\Request;
use Webinv\Datatables\Request\Column;
use Webinv\Datatables\Request\Order;
/**
* @coversDefaultClass \Webinv\Datatables\RequestFactory
*/
class RequestFactoryTest extends TestCase
{
/**
* @dataProvider urlDataProvider
*
* @param string $url
* @param Request $expected
*
* @return void
*
* @covers ::create
*/
public function testCreate(string $url, Request $expected): void
{
parse_str(urldecode($url), $query);
$subject = new RequestFactory($query);
$this->assertEquals($expected, $subject->create());
}
/**
* @return array
*/
public function urlDataProvider() : array
{
return [
[
http_build_query([
'draw' => 15,
'columns' => [
[
'data' => 'first_name',
'name' => '',
'searchable' => true,
'orderable' => true,
'search' =>
[
'value' => '',
'regex' => false
]
],
],
'order' => [
['column' => 0, 'dir' => 'desc']
],
'start' => 5,
'length' => 10,
'search' =>
[
'value' => '',
'regex' => false
]
]),
new Request(
15,
[
new Column(
'first_name',
null,
true,
true,
new Request\Search(null, false)
)
],
[
new Order(0, 'desc')
],
5,
10,
new Request\Search(null, false)
)
]
];
}
}