public static function getUserExternalSystemIds() { $columnName = ExternalSystemIdUtil::EXTERNAL_SYSTEM_ID_COLUMN_NAME; RedBeanColumnTypeOptimizer::externalIdColumn(User::getTableName('User'), $columnName); $sql = 'select ' . $columnName . ' from ' . User::getTableName('User'); return R::getCol($sql); }
public static function setUpBeforeClass() { parent::setUpBeforeClass(); $super = SecurityTestHelper::createSuperAdmin(); Yii::app()->user->userModel = $super; $jim = UserTestHelper::createBasicUser('jim'); $values = array('Test1', 'Test2', 'Test3', 'Sample', 'Demo'); $customFieldData = CustomFieldData::getByName('ImportTestDropDown'); $customFieldData->serializedData = serialize($values); $saved = $customFieldData->save(); assert($saved); // Not Coding Standard $values = array('Multi 1', 'Multi 2', 'Multi 3'); $customFieldData = CustomFieldData::getByName('ImportTestMultiDropDown'); $customFieldData->serializedData = serialize($values); $saved = $customFieldData->save(); assert($saved); // Not Coding Standard $values = array('Cloud 1', 'Cloud 2', 'Cloud 3'); $customFieldData = CustomFieldData::getByName('ImportTestTagCloud'); $customFieldData->serializedData = serialize($values); $saved = $customFieldData->save(); assert($saved); // Not Coding Standard //Ensure the external system id column is present. $columnName = ExternalSystemIdUtil::EXTERNAL_SYSTEM_ID_COLUMN_NAME; RedBeanColumnTypeOptimizer::externalIdColumn(User::getTableName('User'), $columnName); $userTableName = User::getTableName('User'); R::exec("update " . $userTableName . " set {$columnName} = 'A' where id = {$super->id}"); R::exec("update " . $userTableName . " set {$columnName} = 'B' where id = {$jim->id}"); RedBeanColumnTypeOptimizer::externalIdColumn(ImportModelTestItem::getTableName('ImportModelTestItem'), $columnName); RedBeanColumnTypeOptimizer::externalIdColumn(ImportModelTestItem2::getTableName('ImportModelTestItem2'), $columnName); RedBeanColumnTypeOptimizer::externalIdColumn(ImportModelTestItem3::getTableName('ImportModelTestItem3'), $columnName); RedBeanColumnTypeOptimizer::externalIdColumn(ImportModelTestItem4::getTableName('ImportModelTestItem4'), $columnName); }
/** * Given a model and external system id, update the external system id in the database for that model * @param object $model * @param string $externalSystemId */ public static function updateByModel(RedBeanModel $model, $externalSystemId) { assert('$externalSystemId == null || is_string($externalSystemId)'); $columnName = self::EXTERNAL_SYSTEM_ID_COLUMN_NAME; $tableName = $model::getTableName(get_class($model)); RedBeanColumnTypeOptimizer::externalIdColumn($tableName, $columnName); R::exec("update " . $tableName . " set {$columnName} = '" . $externalSystemId . "' where id = " . $model->id); }
public static function setUpBeforeClass() { parent::setUpBeforeClass(); $super = SecurityTestHelper::createSuperAdmin(); Yii::app()->user->userModel = $super; $accountTableName = Account::getTableName('Account'); $contactTableName = Contact::getTableName('Contact'); $opportunityTableName = Opportunity::getTableName('Opportunity'); $columnName = ExternalSystemIdUtil::EXTERNAL_SYSTEM_ID_COLUMN_NAME; RedBeanColumnTypeOptimizer::externalIdColumn($accountTableName, $columnName); RedBeanColumnTypeOptimizer::externalIdColumn($contactTableName, $columnName); RedBeanColumnTypeOptimizer::externalIdColumn($opportunityTableName, $columnName); }
public static function setUpBeforeClass() { parent::setUpBeforeClass(); $super = SecurityTestHelper::createSuperAdmin(); Yii::app()->user->userModel = $super; $columnName = ExternalSystemIdUtil::EXTERNAL_SYSTEM_ID_COLUMN_NAME; RedBeanColumnTypeOptimizer::externalIdColumn(ImportModelTestItem::getTableName('Account'), $columnName); RedBeanColumnTypeOptimizer::externalIdColumn(ImportModelTestItem2::getTableName('Contact'), $columnName); RedBeanColumnTypeOptimizer::externalIdColumn(ImportModelTestItem3::getTableName('Opportunity'), $columnName); $account = AccountTestHelper::createAccountByNameForOwner('testAccount', $super); ImportTestHelper::updateModelsExternalId($account, 'ACC'); $contact = ContactTestHelper::createContactByNameForOwner('testContact', $super); ImportTestHelper::updateModelsExternalId($contact, 'CON'); $opportunity = OpportunityTestHelper::createOpportunityByNameForOwner('testOpportunity', $super); ImportTestHelper::updateModelsExternalId($opportunity, 'OPP'); }
public function testSanitizeValueBySanitizerTypesForUserTypeThatIsRequired() { $billy = UserTestHelper::createBasicUser('billy'); $jimmy = UserTestHelper::createBasicUser('jimmy'); $sally = UserTestHelper::createBasicUser('sally'); //Update the external system id. $columnName = ExternalSystemIdUtil::EXTERNAL_SYSTEM_ID_COLUMN_NAME; RedBeanColumnTypeOptimizer::externalIdColumn(User::getTableName('User'), $columnName); $externalSystemIdColumnName = ExternalSystemIdUtil::EXTERNAL_SYSTEM_ID_COLUMN_NAME; R::exec("update " . User::getTableName('User') . " set {$externalSystemIdColumnName} = 'K' where id = {$jimmy->id}"); //Test a required user with no value or default value. $importSanitizeResultsUtil = new ImportSanitizeResultsUtil(); $columnMappingData = array('type' => 'importColumn', 'mappingRulesData' => array('DefaultModelNameIdMappingRuleForm' => array('defaultModelId' => null), 'UserValueTypeModelAttributeMappingRuleForm' => array('type' => UserValueTypeModelAttributeMappingRuleForm::ZURMO_USER_ID))); $sanitizerUtilTypes = UserAttributeImportRules::getSanitizerUtilTypesInProcessingOrder(); $sanitizedValue = ImportSanitizerUtil::sanitizeValueBySanitizerTypes($sanitizerUtilTypes, 'ImportModelTestItem', 'owner', null, 'column_0', $columnMappingData, $importSanitizeResultsUtil); $this->assertNull($sanitizedValue); $this->assertFalse($importSanitizeResultsUtil->shouldSaveModel()); $messages = $importSanitizeResultsUtil->getMessages(); $this->assertEquals(1, count($messages)); $compareMessage = 'Import - Owner Id is required and was not specified.'; $this->assertEquals($compareMessage, $messages[0]); //Test a required string with no value, but a valid default value, a user id. $importSanitizeResultsUtil = new ImportSanitizeResultsUtil(); $columnMappingData = array('type' => 'importColumn', 'mappingRulesData' => array('DefaultModelNameIdMappingRuleForm' => array('defaultModelId' => $billy->id), 'UserValueTypeModelAttributeMappingRuleForm' => array('type' => UserValueTypeModelAttributeMappingRuleForm::ZURMO_USER_ID))); $sanitizerUtilTypes = UserAttributeImportRules::getSanitizerUtilTypesInProcessingOrder(); $sanitizedValue = ImportSanitizerUtil::sanitizeValueBySanitizerTypes($sanitizerUtilTypes, 'ImportModelTestItem', 'owner', null, 'column_0', $columnMappingData, $importSanitizeResultsUtil); $this->assertEquals($billy, $sanitizedValue); $this->assertTrue($importSanitizeResultsUtil->shouldSaveModel()); $messages = $importSanitizeResultsUtil->getMessages(); $this->assertEquals(0, count($messages)); //Test a required string with a valid user id. $importSanitizeResultsUtil = new ImportSanitizeResultsUtil(); $columnMappingData = array('type' => 'importColumn', 'mappingRulesData' => array('DefaultModelNameIdMappingRuleForm' => array('defaultModelId' => null), 'UserValueTypeModelAttributeMappingRuleForm' => array('type' => UserValueTypeModelAttributeMappingRuleForm::ZURMO_USER_ID))); $sanitizerUtilTypes = UserAttributeImportRules::getSanitizerUtilTypesInProcessingOrder(); $sanitizedValue = ImportSanitizerUtil::sanitizeValueBySanitizerTypes($sanitizerUtilTypes, 'ImportModelTestItem', 'owner', $billy->id, 'column_0', $columnMappingData, $importSanitizeResultsUtil); $this->assertEquals($billy, $sanitizedValue); $this->assertTrue($importSanitizeResultsUtil->shouldSaveModel()); $messages = $importSanitizeResultsUtil->getMessages(); $this->assertEquals(0, count($messages)); //Test a required string with a valid external system user id. $importSanitizeResultsUtil = new ImportSanitizeResultsUtil(); $columnMappingData = array('type' => 'importColumn', 'mappingRulesData' => array('DefaultModelNameIdMappingRuleForm' => array('defaultModelId' => null), 'UserValueTypeModelAttributeMappingRuleForm' => array('type' => UserValueTypeModelAttributeMappingRuleForm::EXTERNAL_SYSTEM_USER_ID))); $sanitizerUtilTypes = UserAttributeImportRules::getSanitizerUtilTypesInProcessingOrder(); $sanitizedValue = ImportSanitizerUtil::sanitizeValueBySanitizerTypes($sanitizerUtilTypes, 'ImportModelTestItem', 'owner', 'K', 'column_0', $columnMappingData, $importSanitizeResultsUtil); $this->assertEquals($jimmy, $sanitizedValue); $this->assertTrue($importSanitizeResultsUtil->shouldSaveModel()); $messages = $importSanitizeResultsUtil->getMessages(); $this->assertEquals(0, count($messages)); //Test a required string with a valid username. $importSanitizeResultsUtil = new ImportSanitizeResultsUtil(); $columnMappingData = array('type' => 'importColumn', 'mappingRulesData' => array('DefaultModelNameIdMappingRuleForm' => array('defaultModelId' => null), 'UserValueTypeModelAttributeMappingRuleForm' => array('type' => UserValueTypeModelAttributeMappingRuleForm::ZURMO_USERNAME))); $sanitizerUtilTypes = UserAttributeImportRules::getSanitizerUtilTypesInProcessingOrder(); $sanitizedValue = ImportSanitizerUtil::sanitizeValueBySanitizerTypes($sanitizerUtilTypes, 'ImportModelTestItem', 'owner', 'sally', 'column_0', $columnMappingData, $importSanitizeResultsUtil); $this->assertEquals($sally, $sanitizedValue); $this->assertTrue($importSanitizeResultsUtil->shouldSaveModel()); $messages = $importSanitizeResultsUtil->getMessages(); $this->assertEquals(0, count($messages)); }
/** * @see LinkedToMappingRuleDataAnalyzerInterface::runAndMakeMessages() */ public function runAndMakeMessages(AnalyzerSupportedDataProvider $dataProvider, $columnName, $mappingRuleType, $mappingRuleData) { assert('is_string($columnName)'); assert('is_string($mappingRuleType)'); assert('is_array($mappingRuleData)'); $this->ensureTypeValueIsValid($mappingRuleData["type"]); $this->type = $mappingRuleData["type"]; if ($this->type == IdValueTypeMappingRuleForm::EXTERNAL_SYSTEM_ID) { $modelClassName = $this->attributeModelClassName; $tableColumnName = ExternalSystemIdUtil::EXTERNAL_SYSTEM_ID_COLUMN_NAME; RedBeanColumnTypeOptimizer::externalIdColumn($modelClassName::getTableName($modelClassName), $tableColumnName, $this->externalSystemIdMaxLength); } $this->processAndMakeMessage($dataProvider, $columnName); }
protected function init() { parent::init(); $modelClassName = $this->modelClassName; $model = new $modelClassName(false); $this->attributeModelClassName = $this->resolveAttributeModelClassName($model, $this->attributeName); $this->ensureTypeValueIsValid($this->mappingRuleData["type"]); if ($this->mappingRuleData["type"] == IdValueTypeMappingRuleForm::EXTERNAL_SYSTEM_ID) { $modelClassName = $this->attributeModelClassName; $tableColumnName = ExternalSystemIdUtil::EXTERNAL_SYSTEM_ID_COLUMN_NAME; RedBeanColumnTypeOptimizer::externalIdColumn($modelClassName::getTableName($modelClassName), $tableColumnName, $this->externalSystemIdMaxLength); } }