Merge pull request #14734 from yashodha/dev-1104
[civicrm-core.git] / tests / phpunit / Civi / API / RequestTest.php
CommitLineData
70be69e2
TO
1<?php
2namespace Civi\API;
3
70be69e2
TO
4/**
5 */
d3159a21 6class 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}