/** * @depends testApiServerUrl */ public function testCustomPostAction() { $super = User::getByUsername('super'); Yii::app()->user->userModel = $super; $authenticationData = $this->login(); $headers = array('Accept: application/json', 'ZURMO_SESSION_ID: ' . $authenticationData['sessionId'], 'ZURMO_TOKEN: ' . $authenticationData['token'], 'ZURMO_API_REQUEST_TYPE: REST'); // Create this test table here, because we don't want to add this into ApiModule rootModels methods. $apiTestModelItem2Temp = new ApiTestModelItem2(); $apiTestModelItem2Temp->name = 'tempName'; $saved = $apiTestModelItem2Temp->save(); $this->assertTrue($saved); $apiTestModelItem2Temp->delete(); //Test Create $data = array('name' => 'new name'); $response = ApiRestTestHelper::createApiCall($this->serverUrl . '/test.php/api/testModelItem2/api/customPost/', 'POST', $headers, array('data' => $data)); $response = json_decode($response, true); $this->assertEquals(ApiResponse::STATUS_SUCCESS, $response['status']); $this->assertTrue(is_int($response['data']['id'])); $this->assertGreaterThan(0, $response['data']['id']); $data['owner'] = array('id' => $super->id, 'username' => 'super'); $data['createdByUser'] = array('id' => $super->id, 'username' => 'super'); $data['modifiedByUser'] = array('id' => $super->id, 'username' => 'super'); $data['modelItem'] = null; unset($response['data']['createdDateTime']); unset($response['data']['modifiedDateTime']); unset($response['data']['id']); ksort($data); ksort($response['data']); $this->assertEquals($data, $response['data']); }