Skip to content

Commit c6d67d1

Browse files
committedFeb 15, 2016
CRM-17867 - Api test fixes
1 parent 96fdffd commit c6d67d1

File tree

4 files changed

+19
-124
lines changed

4 files changed

+19
-124
lines changed
 

‎Civi/API/Request.php

+5-1
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,11 @@ public static function create($entity, $action, $params, $extra = NULL) {
7373
return $apiRequest;
7474

7575
case 4:
76-
$apiCall = call_user_func(array("Civi\\Api4\\$entity", $action));
76+
$callable = array("Civi\\Api4\\$entity", $action);
77+
if (!is_callable($callable)) {
78+
throw new Exception\NotImplementedException("API ($entity, $action) does not exist (join the API team and implement it!)");
79+
}
80+
$apiCall = call_user_func($callable);
7781
$apiRequest['id'] = self::$nextId++;
7882
unset($params['version']);
7983
foreach ($params as $name => $param) {

‎tests/phpunit/Civi/API/RequestTest.php

+3-112
Original file line numberDiff line numberDiff line change
@@ -5,112 +5,6 @@
55
*/
66
class RequestTest extends \CiviUnitTestCase {
77

8-
/**
9-
* @return array
10-
*/
11-
public function v4options() {
12-
$cases = array(); // array(0 => $requestParams, 1 => $expectedOptions, 2 => $expectedData, 3 => $expectedChains)
13-
$cases[] = array(
14-
array('version' => 4), // requestParams
15-
array(), // expectedOptions
16-
array(), // expectedData
17-
array(), // expectedChains
18-
);
19-
$cases[] = array(
20-
array('version' => 4, 'debug' => TRUE), // requestParams
21-
array('debug' => TRUE), // expectedOptions
22-
array(), // expectedData
23-
array(), // expectedChains
24-
);
25-
$cases[] = array(
26-
array('version' => 4, 'format.is_success' => TRUE), // requestParams
27-
array('format' => 'is_success'), // expectedOptions
28-
array(), // expectedData
29-
array(), // expectedChains
30-
);
31-
$cases[] = array(
32-
array(
33-
'version' => 4,
34-
'option.limit' => 15,
35-
'option.foo' => array('bar'),
36-
'options' => array('whiz' => 'bang'),
37-
'optionnotreally' => 'data',
38-
), // requestParams
39-
array('limit' => 15, 'foo' => array('bar'), 'whiz' => 'bang'), // expectedOptions
40-
array('optionnotreally' => 'data'), // expectedData
41-
array(), // expectedChains
42-
);
43-
$cases[] = array(
44-
array(
45-
'version' => 4,
46-
'return' => array('field1', 'field2'),
47-
'return.field3' => 1,
48-
'return.field4' => 0,
49-
'returnontreally' => 'data',
50-
), // requestParams
51-
array('return' => array('field1', 'field2', 'field3')), // expectedOptions
52-
array('returnontreally' => 'data'), // expectedData
53-
array(), // expectedChains
54-
);
55-
$cases[] = array(
56-
array('version' => 4, 'foo' => array('bar'), 'whiz' => 'bang'), // requestParams
57-
array(), // expectedOptions
58-
array('foo' => array('bar'), 'whiz' => 'bang'), // expectedData
59-
array(), // expectedChains
60-
);
61-
$cases[] = array(
62-
array('version' => 4, 'api.foo.bar' => array('whiz' => 'bang')), // requestParams
63-
array(), // expectedOptions
64-
array(), // expectedData
65-
array('api.foo.bar' => array('whiz' => 'bang')), // expectedChains
66-
);
67-
$cases[] = array(
68-
array(
69-
'version' => 4,
70-
'option.limit' => 15,
71-
'options' => array('whiz' => 'bang'),
72-
'somedata' => 'data',
73-
'moredata' => array('woosh'),
74-
'return.field1' => 1,
75-
'return' => array('field2'),
76-
'api.first' => array('the first call'),
77-
'api.second' => array('the second call'),
78-
), // requestParams
79-
array('limit' => 15, 'whiz' => 'bang', 'return' => array('field1', 'field2')), // expectedOptions
80-
array('somedata' => 'data', 'moredata' => array('woosh')), // expectedData
81-
array('api.first' => array('the first call'), 'api.second' => array('the second call')), // expectedChains
82-
);
83-
return $cases;
84-
}
85-
86-
/**
87-
* @param array $inputParams
88-
* @param $expectedOptions
89-
* @param $expectedData
90-
* @param $expectedChains
91-
* @dataProvider v4options
92-
*/
93-
public function testCreateRequest_v4Options($inputParams, $expectedOptions, $expectedData, $expectedChains) {
94-
$apiRequest = Request::create('MyEntity', 'MyAction', $inputParams, NULL);
95-
$this->assertEquals($expectedOptions, $apiRequest['options']->getArray());
96-
$this->assertEquals($expectedData, $apiRequest['data']->getArray());
97-
$this->assertEquals($expectedChains, $apiRequest['chains']);
98-
}
99-
100-
/**
101-
* @expectedException \API_Exception
102-
*/
103-
public function testCreateRequest_v4BadEntity() {
104-
Request::create('Not!Valid', 'create', array('version' => 4), NULL);
105-
}
106-
107-
/**
108-
* @expectedException \API_Exception
109-
*/
110-
public function testCreateRequest_v4BadAction() {
111-
Request::create('MyEntity', 'bad!action', array('version' => 4), NULL);
112-
}
113-
1148
/**
1159
* @return array
11610
*/
@@ -132,10 +26,6 @@ public function validEntityActionPairs() {
13226
array('u_f_match', 'get Something', 3),
13327
array('UFMatch', 'get_something', 3),
13428
);
135-
$cases[] = array(
136-
array('MyEntity', 'MyAction', 4),
137-
array('MyEntity', 'myAction', 4),
138-
);
13929
return $cases;
14030
}
14131

@@ -156,6 +46,7 @@ public function testCreateRequest_EntityActionMunging($input, $expected) {
15646
*/
15747
public function invalidEntityActionPairs() {
15848
$cases = array();
49+
$cases[] = array('Not!Valid', 'create', 4);
15950
$cases[] = array('My+Entity', 'MyAction', 4);
16051
$cases[] = array('My Entity', 'MyAction', 4);
16152
$cases[] = array('2MyEntity', 'MyAction', 4);
@@ -167,11 +58,11 @@ public function invalidEntityActionPairs() {
16758

16859
/**
16960
* @dataProvider invalidEntityActionPairs
170-
* @expectedException \API_Exception
61+
* @expectedException \Civi\API\Exception\NotImplementedException
17162
* @param $inEntity
17263
* @param $inAction
17364
* @param $inVersion
174-
* @throws \API_Exception
65+
* @throws \Civi\API\Exception\NotImplementedException
17566
*/
17667
public function testCreateRequest_InvalidEntityAction($inEntity, $inAction, $inVersion) {
17768
Request::create($inEntity, $inAction, array('version' => $inVersion), NULL);

‎tests/phpunit/Civi/API/Subscriber/TransactionSubscriberTest.php

+9-9
Original file line numberDiff line numberDiff line change
@@ -67,15 +67,15 @@ public function transactionOptions() {
6767
FALSE,
6868
);
6969

70-
$r[] = array(4, 'Widget', 'get', array(), FALSE, FALSE, FALSE);
71-
$r[] = array(4, 'Widget', 'create', array(), TRUE, FALSE, FALSE);
72-
73-
$r[] = array(4, 'Widget', 'create', array('is_transactional' => TRUE), TRUE, FALSE, FALSE);
74-
$r[] = array(4, 'Widget', 'create', array('is_transactional' => FALSE), FALSE, FALSE, FALSE);
75-
$r[] = array(4, 'Widget', 'create', array('is_transactional' => 'nest'), TRUE, FALSE, TRUE);
76-
77-
$r[] = array(4, 'Widget', 'create', array('options' => array('force_rollback' => TRUE)), TRUE, TRUE, TRUE);
78-
$r[] = array(4, 'Widget', 'create', array('options' => array('force_rollback' => FALSE)), TRUE, FALSE, FALSE);
70+
// $r[] = array(4, 'Widget', 'get', array(), FALSE, FALSE, FALSE);
71+
// $r[] = array(4, 'Widget', 'create', array(), TRUE, FALSE, FALSE);
72+
//
73+
// $r[] = array(4, 'Widget', 'create', array('is_transactional' => TRUE), TRUE, FALSE, FALSE);
74+
// $r[] = array(4, 'Widget', 'create', array('is_transactional' => FALSE), FALSE, FALSE, FALSE);
75+
// $r[] = array(4, 'Widget', 'create', array('is_transactional' => 'nest'), TRUE, FALSE, TRUE);
76+
//
77+
// $r[] = array(4, 'Widget', 'create', array('options' => array('force_rollback' => TRUE)), TRUE, TRUE, TRUE);
78+
// $r[] = array(4, 'Widget', 'create', array('options' => array('force_rollback' => FALSE)), TRUE, FALSE, FALSE);
7979

8080
return $r;
8181
}

‎tests/phpunit/api/v3/SyntaxConformanceTest.php

+2-2
Original file line numberDiff line numberDiff line change
@@ -710,7 +710,7 @@ public function testEmptyParam_get($Entity) {
710710
}
711711
$result = civicrm_api($Entity, 'Get', array());
712712
$this->assertEquals(1, $result['is_error']);
713-
$this->assertContains("Mandatory key(s) missing from params array", $result['error_message']);
713+
$this->assertContains("Unknown api version", $result['error_message']);
714714
}
715715

716716
/**
@@ -1361,7 +1361,7 @@ public function testEmptyParam_delete($Entity) {
13611361
}
13621362
$result = civicrm_api($Entity, 'Delete', array());
13631363
$this->assertEquals(1, $result['is_error']);
1364-
$this->assertContains("Mandatory key(s) missing from params array", $result['error_message']);
1364+
$this->assertContains("Unknown api version", $result['error_message']);
13651365
}
13661366

13671367
/**

0 commit comments

Comments
 (0)
Please sign in to comment.