'Group Organization', 'description' => 'Test all Group Organization API methods.', 'group' => 'CiviCRM API Tests', ); } /** * Sets up the fixture, for example, opens a network connection. * This method is called before a test is executed. * * @access protected */ protected function setUp() { $this->_apiversion = 3; parent::setUp(); $this->_groupID = $this->groupCreate(NULL); $this->_orgID = $this->organizationCreate(NULL); } /** * Tears down the fixture, for example, closes a network connection. * This method is called after a test is executed. * * @access protected */ protected function tearDown() { // Truncate the tables $this->quickCleanup( array( 'civicrm_group', 'civicrm_group_organization', 'civicrm_contact', 'civicrm_uf_group', 'civicrm_uf_join', 'civicrm_uf_match', ) ); } ///////////////// civicrm_group_organization_get methods /** * Test civicrm_group_organization_get with valid params. */ public function testGroupOrganizationGet() { $params = array( 'organization_id' => $this->_orgID, 'group_id' => $this->_groupID, ); $result = $this->callAPISuccess('group_organization', 'create', $params); $paramsGet = array( 'organization_id' => $result['id'], ); $result = $this->callAPIAndDocument('group_organization', 'get', $paramsGet, __FUNCTION__, __FILE__); } /** * Test civicrm_group_organization_get with group_id. */ public function testGroupOrganizationGetWithGroupId() { $params = array( 'organization_id' => $this->_orgID, 'group_id' => $this->_groupID, 'sequential' => 1, ); $result = $this->callAPISuccess('group_organization', 'create', $params); $paramsGet = array('organization_id' => $result['values'][0]['organization_id']); $result = $this->callAPISuccess('group_organization', 'get', $params); $this->assertAPISuccess($result); } /** * Test civicrm_group_organization_get with empty params. */ public function testGroupOrganizationGetWithEmptyParams() { $params = array( ); $result = $this->callAPISuccess('group_organization', 'get', $params); $this->assertAPISuccess($result); } /** * Test civicrm_group_organization_get with wrong params. */ public function testGroupOrganizationGetWithWrongParams() { $params = 'groupOrg'; $result = $this->callAPIFailure('group_organization', 'get', $params); $this->assertEquals($result['error_message'], 'Input variable `params` is not an array'); } /** * Test civicrm_group_organization_get invalid keys. */ public function testGroupOrganizationGetWithInvalidKeys() { $params = array( 'invalid_key' => 1, ); $result = $this->callAPISuccess('group_organization', 'get', $params); $this->assertAPISuccess($result); } ///////////////// civicrm_group_organization_create methods /** * check with valid params */ public function testGroupOrganizationCreate() { $params = array( 'organization_id' => $this->_orgID, 'group_id' => $this->_groupID, ); $result = $this->callAPIAndDocument('group_organization', 'create', $params, __FUNCTION__, __FILE__); } /** * check with empty params array */ public function testGroupOrganizationCreateWithEmptyParams() { $params = array( ); $result = $this->callAPIFailure('group_organization', 'create', $params); $this->assertEquals($result['error_message'], 'Mandatory key(s) missing from params array: group_id, organization_id'); } /** * check with invalid params */ public function testGroupOrganizationCreateParamsNotArray() { $params = 'group_org'; $result = $this->callAPIFailure('group_organization', 'create', $params); $this->assertEquals($result['error_message'], 'Input variable `params` is not an array'); } /** * check with invalid params keys */ public function testGroupOrganizationCreateWithInvalidKeys() { $params = array( 'invalid_key' => 1, ); $result = $this->callAPIFailure('group_organization', 'create', $params); $this->assertEquals($result['error_message'], 'Mandatory key(s) missing from params array: group_id, organization_id'); } ///////////////// civicrm_group_organization_remove methods /** * Test civicrm_group_organization_remove with params not an array. */ public function testGroupOrganizationDeleteParamsNotArray() { $params = 'delete'; $result = $this->callAPIFailure('group_organization', 'delete', $params); $this->assertEquals($result['error_message'], 'Input variable `params` is not an array'); } /** * Test civicrm_group_organization_remove with empty params. */ public function testGroupOrganizationDeleteWithEmptyParams() { $params = array( ); $result = $this->callAPIFailure('group_organization', 'delete', $params); $this->assertEquals($result['error_message'], 'Mandatory key(s) missing from params array: id'); } /** * Test civicrm_group_organization_remove with valid params. */ public function testGroupOrganizationDelete() { $paramsC = array( 'organization_id' => $this->_orgID, 'group_id' => $this->_groupID, ); $result = $this->callAPISuccess('group_organization', 'create', $paramsC); $params = array( 'id' => $result['id'], ); $result = $this->callAPIAndDocument('group_organization', 'delete', $params, __FUNCTION__, __FILE__); } /** * Test civicrm_group_organization_remove with invalid params key. */ public function testGroupOrganizationDeleteWithInvalidKey() { $paramsDelete = array( 'invalid_key' => 1, ); $result = $this->callAPIFailure('group_organization', 'delete', $paramsDelete); $this->assertEquals($result['error_message'], 'Mandatory key(s) missing from params array: id'); } }