コード例 #1
0
 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()));
 }
コード例 #2
0
 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;
 }
コード例 #4
0
 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));
 }
コード例 #6
0
 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
 }
コード例 #7
0
 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');
 }