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;
 }