/**
  * Test for method getAttributeOptions()
  */
 public function testGetAttributeOptions()
 {
     $indexAttributeCode = 'gender';
     /** @var $attributeCollection \Magento\Customer\Model\Resource\Attribute\Collection */
     $attributeCollection = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->create('Magento\\Customer\\Model\\Resource\\Attribute\\Collection');
     $attributeCollection->addFieldToFilter('attribute_code', ['in' => [$indexAttributeCode, 'group_id']]);
     /** @var $attribute \Magento\Customer\Model\Attribute */
     foreach ($attributeCollection as $attribute) {
         $index = $attribute->getAttributeCode() == $indexAttributeCode ? 'value' : 'label';
         $expectedOptions = [];
         foreach ($attribute->getSource()->getAllOptions(false) as $option) {
             $expectedOptions[strtolower($option[$index])] = $option['value'];
         }
         $actualOptions = $this->_model->getAttributeOptions($attribute, [$indexAttributeCode]);
         sort($expectedOptions);
         sort($actualOptions);
         $this->assertEquals($expectedOptions, $actualOptions);
     }
 }
 /**
  * @param \Magento\Framework\Stdlib\String $string
  * @param \Magento\Framework\App\Config\ScopeConfigInterface $scopeConfig
  * @param \Magento\ImportExport\Model\ImportFactory $importFactory
  * @param \Magento\ImportExport\Model\Resource\Helper $resourceHelper
  * @param \Magento\Framework\App\Resource $resource
  * @param \Magento\Store\Model\StoreManagerInterface $storeManager
  * @param \Magento\ImportExport\Model\Export\Factory $collectionFactory
  * @param \Magento\Eav\Model\Config $eavConfig
  * @param \Magento\CustomerImportExport\Model\Resource\Import\Customer\StorageFactory $storageFactory
  * @param array $data
  * @SuppressWarnings(PHPMD.ExcessiveParameterList)
  */
 public function __construct(\Magento\Framework\Stdlib\String $string, \Magento\Framework\App\Config\ScopeConfigInterface $scopeConfig, \Magento\ImportExport\Model\ImportFactory $importFactory, \Magento\ImportExport\Model\Resource\Helper $resourceHelper, \Magento\Framework\App\Resource $resource, \Magento\Store\Model\StoreManagerInterface $storeManager, \Magento\ImportExport\Model\Export\Factory $collectionFactory, \Magento\Eav\Model\Config $eavConfig, \Magento\CustomerImportExport\Model\Resource\Import\Customer\StorageFactory $storageFactory, array $data = [])
 {
     $this->_storageFactory = $storageFactory;
     parent::__construct($string, $scopeConfig, $importFactory, $resourceHelper, $resource, $storeManager, $collectionFactory, $eavConfig, $data);
     $this->addMessageTemplate(self::ERROR_WEBSITE_IS_EMPTY, __('Website is not specified'));
     $this->addMessageTemplate(self::ERROR_EMAIL_IS_EMPTY, __('E-mail is not specified'));
     $this->addMessageTemplate(self::ERROR_INVALID_WEBSITE, __("Invalid value in website column"));
     $this->addMessageTemplate(self::ERROR_INVALID_EMAIL, __('E-mail is invalid'));
     $this->addMessageTemplate(self::ERROR_VALUE_IS_REQUIRED, __("Required attribute '%s' has an empty value"));
     $this->addMessageTemplate(self::ERROR_CUSTOMER_NOT_FOUND, __("Customer with such email and website code doesn't exist"));
     $this->_initCustomers($data)->_initWebsites(true);
 }
 /**
  * @param \Magento\Framework\Stdlib\StringUtils $string
  * @param \Magento\Framework\App\Config\ScopeConfigInterface $scopeConfig
  * @param \Magento\ImportExport\Model\ImportFactory $importFactory
  * @param \Magento\ImportExport\Model\ResourceModel\Helper $resourceHelper
  * @param \Magento\Framework\App\ResourceConnection $resource
  * @param ProcessingErrorAggregatorInterface $errorAggregator
  * @param \Magento\Store\Model\StoreManagerInterface $storeManager
  * @param \Magento\ImportExport\Model\Export\Factory $collectionFactory
  * @param \Magento\Eav\Model\Config $eavConfig
  * @param \Magento\CustomerImportExport\Model\ResourceModel\Import\Customer\StorageFactory $storageFactory
  * @param array $data
  * @SuppressWarnings(PHPMD.ExcessiveParameterList)
  */
 public function __construct(\Magento\Framework\Stdlib\StringUtils $string, \Magento\Framework\App\Config\ScopeConfigInterface $scopeConfig, \Magento\ImportExport\Model\ImportFactory $importFactory, \Magento\ImportExport\Model\ResourceModel\Helper $resourceHelper, \Magento\Framework\App\ResourceConnection $resource, ProcessingErrorAggregatorInterface $errorAggregator, \Magento\Store\Model\StoreManagerInterface $storeManager, \Magento\ImportExport\Model\Export\Factory $collectionFactory, \Magento\Eav\Model\Config $eavConfig, \Magento\CustomerImportExport\Model\ResourceModel\Import\Customer\StorageFactory $storageFactory, array $data = [])
 {
     $this->_storageFactory = $storageFactory;
     parent::__construct($string, $scopeConfig, $importFactory, $resourceHelper, $resource, $errorAggregator, $storeManager, $collectionFactory, $eavConfig, $data);
     $this->addMessageTemplate(self::ERROR_WEBSITE_IS_EMPTY, __('Please specify a website.'));
     $this->addMessageTemplate(self::ERROR_EMAIL_IS_EMPTY, __('Please specify an email.'));
     $this->addMessageTemplate(self::ERROR_INVALID_WEBSITE, __('We found an invalid value in a website column.'));
     $this->addMessageTemplate(self::ERROR_INVALID_EMAIL, __('Please enter a valid email.'));
     $this->addMessageTemplate(self::ERROR_VALUE_IS_REQUIRED, __('Please make sure attribute "%s" is not empty.'));
     $this->addMessageTemplate(self::ERROR_CUSTOMER_NOT_FOUND, __('We can\'t find a customer who matches this email and website code.'));
     $this->_initCustomers($data)->_initWebsites(true);
 }
 /**
  * Test entity type id getter
  *
  * @covers \Magento\ImportExport\Model\Import\Entity\AbstractEav::getEntityTypeId
  */
 public function testGetEntityTypeId()
 {
     $this->assertEquals(self::ENTITY_TYPE_ID, $this->_model->getEntityTypeId());
 }