public function testGetSetAndDelete() { $account = AccountTestHelper::createAccountByNameForOwner('firstAccount', Yii::app()->user->userModel); $account2 = AccountTestHelper::createAccountByNameForOwner('secondAccount', Yii::app()->user->userModel); $this->assertEquals(0, count(AccountAccountAffiliation::getAll())); $accountAccountAffiliation = new AccountAccountAffiliation(); $accountAccountAffiliation->primaryAccount = $account; $accountAccountAffiliation->secondaryAccount = $account2; $this->assertTrue($accountAccountAffiliation->save()); $accountAccountAffiliationId = $accountAccountAffiliation->id; $accountAccountAffiliation->forget(); $accountAccountAffiliation = AccountAccountAffiliation::getById($accountAccountAffiliationId); $this->assertTrue($accountAccountAffiliation->primaryAccount->isSame($account)); $this->assertTrue($accountAccountAffiliation->secondaryAccount->isSame($account2)); $this->assertEquals(1, count(AccountAccountAffiliation::getAll())); $accountAccountAffiliation->delete(); $this->assertEquals(0, count(AccountAccountAffiliation::getAll())); }
public function testSimpleUserImportWhereAllRowsSucceed() { Yii::app()->user->userModel = User::getByUsername('super'); $account = AccountTestHelper::createAccountByNameForOwner('Account', Yii::app()->user->userModel); $account2 = AccountTestHelper::createAccountByNameForOwner('Account2', Yii::app()->user->userModel); $accountAccountAffiliations = AccountAccountAffiliation::getAll(); $this->assertEquals(0, count($accountAccountAffiliations)); $import = new Import(); $serializedData['importRulesType'] = 'AccountAccountAffiliations'; $serializedData['firstRowIsHeaderRow'] = true; $import->serializedData = serialize($serializedData); $this->assertTrue($import->save()); ImportTestHelper::createTempTableByFileNameAndTableName('importTest.csv', $import->getTempTableName(), true, Yii::getPathOfAlias('application.modules.accountAccountAffiliations.tests.unit.files')); //update the ids of the account column to match the parent account. ZurmoRedBean::exec("update " . $import->getTempTableName() . " set column_0 = " . $account->id . " where id != 1 limit 4"); ZurmoRedBean::exec("update " . $import->getTempTableName() . " set column_1 = " . $account2->id . " where id != 1 limit 4"); $this->assertEquals(4, ImportDatabaseUtil::getCount($import->getTempTableName())); // includes header rows. $mappingData = array('column_0' => ImportMappingUtil::makeHasOneColumnMappingData('primaryAccount'), 'column_1' => ImportMappingUtil::makeHasOneColumnMappingData('secondaryAccount')); $importRules = ImportRulesUtil::makeImportRulesByType('AccountAccountAffiliations'); $page = 0; $config = array('pagination' => array('pageSize' => 50)); //This way all rows are processed. $dataProvider = new ImportDataProvider($import->getTempTableName(), true, $config); $dataProvider->getPagination()->setCurrentPage($page); $importResultsUtil = new ImportResultsUtil($import); $messageLogger = new ImportMessageLogger(); ImportUtil::importByDataProvider($dataProvider, $importRules, $mappingData, $importResultsUtil, new ExplicitReadWriteModelPermissions(), $messageLogger); $importResultsUtil->processStatusAndMessagesForEachRow(); //Confirm that 3 models where created. $accountAccountAffiliations = AccountAccountAffiliation::getAll(); $this->assertEquals(3, count($accountAccountAffiliations)); $this->assertTrue($accountAccountAffiliations[0]->primaryAccount->isSame($account)); $this->assertTrue($accountAccountAffiliations[0]->secondaryAccount->isSame($account2)); $this->assertTrue($accountAccountAffiliations[1]->primaryAccount->isSame($account)); $this->assertTrue($accountAccountAffiliations[1]->secondaryAccount->isSame($account2)); $this->assertTrue($accountAccountAffiliations[2]->primaryAccount->isSame($account)); $this->assertTrue($accountAccountAffiliations[2]->secondaryAccount->isSame($account2)); //Confirm 3 rows were processed as 'created'. $this->assertEquals(3, ImportDatabaseUtil::getCount($import->getTempTableName(), "status = " . ImportRowDataResultsUtil::CREATED)); //Confirm that 0 rows were processed as 'updated'. $this->assertEquals(0, ImportDatabaseUtil::getCount($import->getTempTableName(), "status = " . ImportRowDataResultsUtil::UPDATED)); }
public static function resolveOpposingAccountLinkContent(AccountAccountAffiliation $accountAccountAffiliation, $accountId) { assert('is_int($accountId)'); if ($accountAccountAffiliation->primaryAccount->id == $accountId) { $content = static::resolveAccountWithLinkContent($accountAccountAffiliation->secondaryAccount); $content .= ' ' . $accountAccountAffiliation->getAttributeLabel('secondaryAccount'); } else { $content = static::resolveAccountWithLinkContent($accountAccountAffiliation->primaryAccount); $content .= ' ' . $accountAccountAffiliation->getAttributeLabel('primaryAccount'); } return $content; }
protected static function getSingularAccountRelationLabel($relationIdentifier) { switch ($relationIdentifier) { case 'primary': return AccountAccountAffiliation::getAnAttributeLabel('primaryAccount'); case 'secondary': return AccountAccountAffiliation::getAnAttributeLabel('secondaryAccount'); } }
public function testSuperUserDeleteAction() { $super = $this->logoutCurrentUserLoginNewUserAndGetByUsername('super'); $accountAccountAffiliations = AccountAccountAffiliation::getAll(); $this->assertEquals(1, count($accountAccountAffiliations)); //Delete an AccountAccountAffiliation model. $this->setGetArray(array('id' => $accountAccountAffiliations[0]->id)); $this->resetPostArray(); $this->runControllerWithNoExceptionsAndGetContent('accountAccountAffiliations/default/delete', true); $accountAccountAffiliations = AccountAccountAffiliation::getAll(); $this->assertEquals(0, count($accountAccountAffiliations)); }
public function actionDelete($id) { $accountAccountAffiliation = AccountAccountAffiliation::getById(intval($id)); $accountAccountAffiliation->delete(); //Do not redirect since there is no index view to go to. Also delete is called from related portlets only }
public function testGetAffiliatedAccounts() { $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('firstAffAccount', Yii::app()->user->userModel); $account2 = AccountTestHelper::createAccountByNameForOwner('secondAffAccount', Yii::app()->user->userModel); $account3 = AccountTestHelper::createAccountByNameForOwner('thirdAffAccount', Yii::app()->user->userModel); $account4 = AccountTestHelper::createAccountByNameForOwner('forthAffAccount', Yii::app()->user->userModel); $accountAccountAffiliation = new AccountAccountAffiliation(); $accountAccountAffiliation->primaryAccount = $account; $accountAccountAffiliation->secondaryAccount = $account2; $this->assertTrue($accountAccountAffiliation->save()); sleep(1); $accountAccountAffiliation2 = new AccountAccountAffiliation(); $accountAccountAffiliation2->primaryAccount = $account3; $accountAccountAffiliation2->secondaryAccount = $account; $this->assertTrue($accountAccountAffiliation2->save()); sleep(1); $accountAccountAffiliation3 = new AccountAccountAffiliation(); $accountAccountAffiliation3->primaryAccount = $account3; $accountAccountAffiliation3->secondaryAccount = $account4; $this->assertTrue($accountAccountAffiliation3->save()); $data = array('search' => array('modelClassName' => 'AccountAccountAffiliation', 'searchAttributeData' => array('clauses' => array(1 => array('attributeName' => 'primaryAccount', 'relatedAttributeName' => 'id', 'operatorType' => 'equals', 'value' => $account->id), 2 => array('attributeName' => 'secondaryAccount', 'relatedAttributeName' => 'id', 'operatorType' => 'equals', 'value' => $account->id)), 'structure' => '(1 OR 2)')), 'pagination' => array('page' => 1, 'pageSize' => 5), 'sort' => 'id asc'); $response = $this->createApiCallWithRelativeUrl('search/filter/', 'POST', $headers, array('data' => $data)); $response = json_decode($response, true); $this->assertEquals(ApiResponse::STATUS_SUCCESS, $response['status']); $this->assertEquals(2, $response['data']['totalCount']); $this->assertEquals(2, count($response['data']['items'])); $this->assertEquals($account->id, $response['data']['items'][0]['primaryAccount']['id']); $this->assertEquals($account2->id, $response['data']['items'][0]['secondaryAccount']['id']); $this->assertEquals($account3->id, $response['data']['items'][1]['primaryAccount']['id']); $this->assertEquals($account->id, $response['data']['items'][1]['secondaryAccount']['id']); }
/** * @depends testSuperUserCustomFieldsWalkthroughForAccountAccountAffiliationsModule */ public function testLayoutsLoadOkAfterCustomFieldsPlacedForAccountAccountAffiliationsModule() { $super = $this->logoutCurrentUserLoginNewUserAndGetByUsername('super'); //Load create, edit views. $this->runControllerWithNoExceptionsAndGetContent('accountAccountAffiliations/default/create'); $accountAccountAffiliations = AccountAccountAffiliation::getAll(); $this->assertEquals(0, count($accountAccountAffiliations)); //Create a new AccountAccountAffiliation from a related account. $this->setGetArray(array('relationAttributeName' => 'primaryAccount', 'relationModelId' => self::$account2->id, 'relationModuleId' => 'accounts', 'redirectUrl' => 'someRedirect')); $this->setPostArray(array('AccountAccountAffiliation' => array('secondaryAccount' => array('id' => self::$account->id)))); $this->runControllerWithRedirectExceptionAndGetContent('accountAccountAffiliations/default/createFromRelation'); $accountAccountAffiliations = AccountAccountAffiliation::getAll(); $this->assertEquals(1, count($accountAccountAffiliations)); $this->setGetArray(array('id' => $accountAccountAffiliations[0]->id)); $this->runControllerWithRedirectExceptionAndGetContent('accountAccountAffiliations/default/edit'); }