public function testResolveModelClassNameAndAttributeNameByAttributeIndexOrDerivedType() { $modelClassName = 'ImportModelTestItem'; $attributeName = AttributeImportRulesFactory::resolveModelClassNameAndAttributeNameByAttributeIndexOrDerivedType($modelClassName, 'primaryAddress__city'); $this->assertEquals('Address', $modelClassName); $this->assertEquals('city', $attributeName); $modelClassName = 'ImportModelTestItem'; $attributeName = AttributeImportRulesFactory::resolveModelClassNameAndAttributeNameByAttributeIndexOrDerivedType($modelClassName, 'string'); $this->assertEquals('ImportModelTestItem', $modelClassName); $this->assertEquals('string', $attributeName); $modelClassName = 'ImportModelTestItem'; $attributeName = AttributeImportRulesFactory::resolveModelClassNameAndAttributeNameByAttributeIndexOrDerivedType($modelClassName, 'FullName'); $this->assertEquals('ImportModelTestItem', $modelClassName); $this->assertEquals('FullName', $attributeName); }
/** * Make a mapping rule form object. * @param string $importRulesType * @param string $attributeIndexOrDerivedType * @param string $mappingRuleFormClassName */ public static function makeForm($importRulesType, $attributeIndexOrDerivedType, $mappingRuleFormClassName) { assert('is_string($importRulesType)'); assert('is_string($attributeIndexOrDerivedType)'); assert('is_string($mappingRuleFormClassName)'); $importRulesTypeClassName = ImportRulesUtil::getImportRulesClassNameByType($importRulesType); $modelClassName = $importRulesTypeClassName::getModelClassNameByAttributeIndexOrDerivedType($attributeIndexOrDerivedType); $attributeName = AttributeImportRulesFactory::resolveModelClassNameAndAttributeNameByAttributeIndexOrDerivedType($modelClassName, $attributeIndexOrDerivedType); $mappingRuleForm = new $mappingRuleFormClassName($modelClassName, $attributeName); return $mappingRuleForm; }