Commit | Line | Data |
---|---|---|
70be69e2 TO |
1 | <?php |
2 | namespace Civi\API; | |
3 | ||
70be69e2 TO |
4 | /** |
5 | */ | |
d3159a21 | 6 | class RequestTest extends \CiviUnitTestCase { |
70be69e2 | 7 | |
4cbe18b8 EM |
8 | /** |
9 | * @return array | |
10 | */ | |
00be9182 | 11 | public function validEntityActionPairs() { |
9099cab3 CW |
12 | $cases = []; |
13 | $cases[] = [ | |
14 | ['MyEntity', 'MyAction', 3], | |
15 | ['MyEntity', 'myaction', 3], | |
16 | ]; | |
17 | $cases[] = [ | |
18 | ['my+entity', 'MyAction', 3], | |
19 | ['MyEntity', 'myaction', 3], | |
20 | ]; | |
21 | $cases[] = [ | |
22 | ['my entity with under_scores', 'My_Action', 3], | |
23 | ['MyEntityWithUnderScores', 'my_action', 3], | |
24 | ]; | |
25 | $cases[] = [ | |
26 | ['u_f_match', 'get Something', 3], | |
27 | ['UFMatch', 'get_something', 3], | |
28 | ]; | |
d3159a21 TO |
29 | return $cases; |
30 | } | |
31 | ||
32 | /** | |
33 | * @dataProvider validEntityActionPairs | |
1e1fdcf6 EM |
34 | * @param $input |
35 | * @param $expected | |
36 | * @throws \API_Exception | |
d3159a21 | 37 | */ |
00be9182 | 38 | public function testCreateRequest_EntityActionMunging($input, $expected) { |
d3159a21 | 39 | list ($inEntity, $inAction, $inVersion) = $input; |
9099cab3 CW |
40 | $apiRequest = Request::create($inEntity, $inAction, ['version' => $inVersion], NULL); |
41 | $this->assertEquals($expected, [$apiRequest['entity'], $apiRequest['action'], $apiRequest['version']]); | |
d3159a21 TO |
42 | } |
43 | ||
4cbe18b8 EM |
44 | /** |
45 | * @return array | |
46 | */ | |
00be9182 | 47 | public function invalidEntityActionPairs() { |
9099cab3 CW |
48 | $cases = []; |
49 | $cases[] = ['Not!Valid', 'create', 4]; | |
50 | $cases[] = ['My+Entity', 'MyAction', 4]; | |
51 | $cases[] = ['My Entity', 'MyAction', 4]; | |
52 | $cases[] = ['2MyEntity', 'MyAction', 4]; | |
53 | $cases[] = ['MyEntity', 'My+Action', 4]; | |
54 | $cases[] = ['MyEntity', 'My Action', 4]; | |
55 | $cases[] = ['MyEntity', '2Action', 4]; | |
d3159a21 TO |
56 | return $cases; |
57 | } | |
58 | ||
59 | /** | |
60 | * @dataProvider invalidEntityActionPairs | |
34e21ce8 | 61 | * @expectedException \Civi\API\Exception\NotImplementedException |
1e1fdcf6 EM |
62 | * @param $inEntity |
63 | * @param $inAction | |
64 | * @param $inVersion | |
34e21ce8 | 65 | * @throws \Civi\API\Exception\NotImplementedException |
d3159a21 | 66 | */ |
00be9182 | 67 | public function testCreateRequest_InvalidEntityAction($inEntity, $inAction, $inVersion) { |
9099cab3 | 68 | Request::create($inEntity, $inAction, ['version' => $inVersion], NULL); |
d3159a21 TO |
69 | } |
70 | ||
4cbe18b8 | 71 | } |