public function testGetSetAndDelete()
 {
     $account = AccountTestHelper::createAccountByNameForOwner('firstAccount', Yii::app()->user->userModel);
     $contact = ContactTestHelper::createContactByNameForOwner('firstContact', Yii::app()->user->userModel);
     $this->assertEquals(0, count(AccountContactAffiliation::getAll()));
     $accountContactAffiliation = new AccountContactAffiliation();
     $accountContactAffiliation->account = $account;
     $accountContactAffiliation->contact = $contact;
     $this->assertTrue($accountContactAffiliation->save());
     $accountContactAffiliationId = $accountContactAffiliation->id;
     $accountContactAffiliation->forget();
     $accountContactAffiliation = AccountContactAffiliation::getById($accountContactAffiliationId);
     $this->assertTrue($accountContactAffiliation->account->isSame($account));
     $this->assertTrue($accountContactAffiliation->contact->isSame($contact));
     $this->assertEquals(1, count(AccountContactAffiliation::getAll()));
     $accountContactAffiliation->delete();
     $this->assertEquals(0, count(AccountContactAffiliation::getAll()));
 }
 public function testSuperUserAllDefaultControllerActions()
 {
     $super = $this->logoutCurrentUserLoginNewUserAndGetByUsername('super');
     $accountContactAffiliations = AccountContactAffiliation::getAll();
     $this->assertEquals(1, count($accountContactAffiliations));
     //Default Controller actions requiring some sort of parameter via POST or GET
     $this->setGetArray(array('id' => $accountContactAffiliations[0]->id));
     $this->runControllerWithNoExceptionsAndGetContent('accountContactAffiliations/default/edit');
     //Save accountContactAffiliation.
     $this->assertEquals(null, $accountContactAffiliations[0]->role->value);
     $this->setPostArray(array('AccountContactAffiliation' => array('role' => array('value' => 'Technical'))));
     $this->runControllerWithRedirectExceptionAndGetContent('accountContactAffiliations/default/edit');
     $accountContactAffiliation = AccountContactAffiliation::getById($accountContactAffiliations[0]->id);
     $this->assertEquals('Technical', $accountContactAffiliation->role->value);
     //actionAuditEventsModalList
     $this->setGetArray(array('id' => $accountContactAffiliation->id));
     $this->resetPostArray();
     $this->runControllerWithNoExceptionsAndGetContent('accountContactAffiliations/default/auditEventsModalList');
 }
 public function actionDelete($id)
 {
     $accountContactAffiliation = AccountContactAffiliation::getById(intval($id));
     $accountContactAffiliation->delete();
     //Do not redirect since there is no index view to go to. Also delete is called from related portlets only
 }
 /**
  * @depends testCreateAccountContactAffiliation
  */
 public function testUpdateAccountContactAffiliation()
 {
     $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');
     $account = AccountTestHelper::createAccountByNameForOwner('UpdateAccount', Yii::app()->user->userModel);
     $contact = ContactTestHelper::createContactByNameForOwner('FirstUpdateContact', Yii::app()->user->userModel);
     $contact2 = ContactTestHelper::createContactByNameForOwner('SecondUpdateContact', Yii::app()->user->userModel);
     $accountContactAffiliation = new AccountContactAffiliation();
     $accountContactAffiliation->account = $account;
     $accountContactAffiliation->contact = $contact;
     $this->assertTrue($accountContactAffiliation->save());
     $data['contact']['id'] = $contact2->id;
     $response = $this->createApiCallWithRelativeUrl('update/' . $accountContactAffiliation->id, 'PUT', $headers, array('data' => $data));
     $response = json_decode($response, true);
     $this->assertEquals(ApiResponse::STATUS_SUCCESS, $response['status']);
     $this->assertEquals($account->id, $response['data']['account']['id']);
     $this->assertEquals($contact2->id, $response['data']['contact']['id']);
     $accountContactAffiliationId = $accountContactAffiliation->id;
     $accountContactAffiliation->forgetAll();
     $accountContactAffiliation = AccountContactAffiliation::getById($accountContactAffiliationId);
     $this->assertEquals($accountContactAffiliation->account->id, $response['data']['account']['id']);
     $this->assertEquals($accountContactAffiliation->contact->id, $response['data']['contact']['id']);
 }