public function testSanitizeValueBySanitizerTypesForStringTypeThatIsRequired() { //Test a required string with no value or default value. $importSanitizeResultsUtil = new ImportSanitizeResultsUtil(); $columnMappingData = array('type' => 'importColumn', 'mappingRulesData' => array('DefaultValueModelAttributeMappingRuleForm' => array('defaultValue' => null))); $sanitizerUtilTypes = TextAttributeImportRules::getSanitizerUtilTypesInProcessingOrder(); $sanitizedValue = ImportSanitizerUtil::sanitizeValueBySanitizerTypes($sanitizerUtilTypes, 'ImportModelTestItem', 'string', null, 'column_0', $columnMappingData, $importSanitizeResultsUtil); $this->assertNull($sanitizedValue); $this->assertFalse($importSanitizeResultsUtil->shouldSaveModel()); $messages = $importSanitizeResultsUtil->getMessages(); $this->assertEquals(1, count($messages)); $compareMessage = 'Import - String This field is required and neither a value' . ' nor a default value was specified.'; $this->assertEquals($compareMessage, $messages[0]); //Test a required string with no value, but a valid default value $importSanitizeResultsUtil = new ImportSanitizeResultsUtil(); $columnMappingData = array('type' => 'importColumn', 'mappingRulesData' => array('DefaultValueModelAttributeMappingRuleForm' => array('defaultValue' => 'something valid'))); $sanitizerUtilTypes = TextAttributeImportRules::getSanitizerUtilTypesInProcessingOrder(); $sanitizedValue = ImportSanitizerUtil::sanitizeValueBySanitizerTypes($sanitizerUtilTypes, 'ImportModelTestItem', 'string', null, 'column_0', $columnMappingData, $importSanitizeResultsUtil); $this->assertEquals('something valid', $sanitizedValue); $this->assertTrue($importSanitizeResultsUtil->shouldSaveModel()); $messages = $importSanitizeResultsUtil->getMessages(); $this->assertEquals(0, count($messages)); //Test a required string with a valid value, and a default value. The valid value should come through. $importSanitizeResultsUtil = new ImportSanitizeResultsUtil(); $columnMappingData = array('type' => 'importColumn', 'mappingRulesData' => array('DefaultValueModelAttributeMappingRuleForm' => array('defaultValue' => 'something valid'))); $sanitizerUtilTypes = TextAttributeImportRules::getSanitizerUtilTypesInProcessingOrder(); $sanitizedValue = ImportSanitizerUtil::sanitizeValueBySanitizerTypes($sanitizerUtilTypes, 'ImportModelTestItem', 'string', 'aValue', 'column_0', $columnMappingData, $importSanitizeResultsUtil); $this->assertEquals('aValue', $sanitizedValue); $this->assertTrue($importSanitizeResultsUtil->shouldSaveModel()); $messages = $importSanitizeResultsUtil->getMessages(); $this->assertEquals(0, count($messages)); //Test a required string with a valid value and no default value. $importSanitizeResultsUtil = new ImportSanitizeResultsUtil(); $columnMappingData = array('type' => 'importColumn', 'mappingRulesData' => array('DefaultValueModelAttributeMappingRuleForm' => array('defaultValue' => null))); $sanitizerUtilTypes = TextAttributeImportRules::getSanitizerUtilTypesInProcessingOrder(); $sanitizedValue = ImportSanitizerUtil::sanitizeValueBySanitizerTypes($sanitizerUtilTypes, 'ImportModelTestItem', 'string', 'bValue', 'column_0', $columnMappingData, $importSanitizeResultsUtil); $this->assertEquals('bValue', $sanitizedValue); $this->assertTrue($importSanitizeResultsUtil->shouldSaveModel()); $messages = $importSanitizeResultsUtil->getMessages(); $this->assertEquals(0, count($messages)); //Test a required string with a value that is too long and no specified default value. $importSanitizeResultsUtil = new ImportSanitizeResultsUtil(); $columnMappingData = array('type' => 'importColumn', 'mappingRulesData' => array('DefaultValueModelAttributeMappingRuleForm' => array('defaultValue' => null))); $sanitizerUtilTypes = TextAttributeImportRules::getSanitizerUtilTypesInProcessingOrder(); $value = self::getStringByLength(85); $sanitizedValue = ImportSanitizerUtil::sanitizeValueBySanitizerTypes($sanitizerUtilTypes, 'ImportModelTestItem', 'string', $value, 'column_0', $columnMappingData, $importSanitizeResultsUtil); $this->assertEquals(substr($value, 0, 64), $sanitizedValue); $this->assertTrue($importSanitizeResultsUtil->shouldSaveModel()); $messages = $importSanitizeResultsUtil->getMessages(); $this->assertEquals(0, count($messages)); //Test a required string with a value that is too long and a specified default value. The specified //default value should be ignored in this scenario. $importSanitizeResultsUtil = new ImportSanitizeResultsUtil(); $columnMappingData = array('type' => 'importColumn', 'mappingRulesData' => array('DefaultValueModelAttributeMappingRuleForm' => array('defaultValue' => 'willNotMatter'))); $sanitizerUtilTypes = TextAttributeImportRules::getSanitizerUtilTypesInProcessingOrder(); $value = self::getStringByLength(85); $sanitizedValue = ImportSanitizerUtil::sanitizeValueBySanitizerTypes($sanitizerUtilTypes, 'ImportModelTestItem', 'string', $value, 'column_0', $columnMappingData, $importSanitizeResultsUtil); $this->assertEquals(substr($value, 0, 64), $sanitizedValue); $this->assertTrue($importSanitizeResultsUtil->shouldSaveModel()); $messages = $importSanitizeResultsUtil->getMessages(); $this->assertEquals(0, count($messages)); }
public static function getSanitizerUtilTypesInProcessingOrder() { return array_merge(parent::getSanitizerUtilTypesInProcessingOrder(), array('NameDedupe')); }