28 protected $_websites = [1 =>
'website1', 2 =>
'website2'];
71 $customerCollection = new \Magento\Framework\Data\Collection(
74 foreach ($this->_customers as
$customer) {
78 $modelMock = $this->getMockBuilder(\
Magento\CustomerImportExport\Model\
Import\AbstractCustomer::class)
79 ->disableOriginalConstructor()
83 '_getCustomerCollection',
84 '_validateRowForUpdate',
85 '_validateRowForDelete' 87 )->getMockForAbstractClass();
90 $property = new \ReflectionProperty($modelMock,
'_websiteCodeToId');
91 $property->setAccessible(
true);
92 $property->setValue($modelMock, array_flip($this->_websites));
94 $property = new \ReflectionProperty($modelMock,
'_availableBehaviors');
95 $property->setAccessible(
true);
96 $property->setValue($modelMock, $this->_availableBehaviors);
98 $modelMock->expects($this->any())
99 ->method(
'_getCustomerCollection')
100 ->will($this->returnValue($customerCollection));
114 '$rowData' => include
__DIR__ .
'/_files/row_data_abstract_valid.php',
119 '$rowData' => include
__DIR__ .
'/_files/row_data_abstract_no_website.php',
127 '$rowData' => include
__DIR__ .
'/_files/row_data_abstract_empty_website.php',
135 '$rowData' => include
__DIR__ .
'/_files/row_data_abstract_no_email.php',
143 '$rowData' => include
__DIR__ .
'/_files/row_data_abstract_empty_email.php',
151 '$rowData' => include
__DIR__ .
'/_files/row_data_abstract_invalid_email.php',
158 'invalid website' => [
159 '$rowData' => include
__DIR__ .
'/_files/row_data_abstract_invalid_website.php',
179 $checkUniqueKey = new \ReflectionMethod(
180 \
Magento\CustomerImportExport\Model\
Import\AbstractCustomer::class,
183 $checkUniqueKey->setAccessible(
true);
186 $this->assertTrue($checkUniqueKey->invoke($this->_model, $rowData, 0));
188 $this->assertFalse($checkUniqueKey->invoke($this->_model, $rowData, 0));
195 $this->_model->expects($this->once())->method(
'_validateRowForUpdate');
197 $this->assertAttributeEquals(0,
'_processedEntitiesCount', $this->_model);
203 $this->assertAttributeEquals([],
'_validatedRows', $this->_model);
204 $this->assertTrue($this->_model->validateRow([], 1));
205 $this->assertAttributeEquals([1 =>
true],
'_validatedRows', $this->_model);
206 $this->assertAttributeEquals(1,
'_processedEntitiesCount', $this->_model);
207 $this->assertTrue($this->_model->validateRow([], 1));
213 $this->_model->expects($this->once())->method(
'_validateRowForDelete');
219 $this->assertAttributeEquals([],
'_validatedRows', $this->_model);
220 $this->assertTrue($this->_model->validateRow([], 2));
221 $this->assertAttributeEquals([2 =>
true],
'_validatedRows', $this->_model);
222 $this->assertAttributeEquals(1,
'_processedEntitiesCount', $this->_model);
223 $this->assertTrue($this->_model->validateRow([], 2));
232 $validatedRows = new \ReflectionProperty(
233 \
Magento\CustomerImportExport\Model\
Import\AbstractCustomer::class,
236 $validatedRows->setAccessible(
true);
237 $validatedRows->setValue($this->_model, []);
238 $validatedRows->setAccessible(
false);
241 $entitiesCount = new \ReflectionProperty(
242 \
Magento\CustomerImportExport\Model\
Import\AbstractCustomer::class,
243 '_processedEntitiesCount' 245 $entitiesCount->setAccessible(
true);
246 $entitiesCount->setValue($this->_model, 0);
247 $entitiesCount->setAccessible(
false);
getErrorAggregatorObject($methods=null)
testValidateRowForDelete()
const BEHAVIOR_ADD_UPDATE
defined('TESTS_BP')||define('TESTS_BP' __DIR__
testCheckUniqueKey(array $rowData, array $errors, $isValid=false)
const ERROR_WEBSITE_IS_EMPTY
const ERROR_EMAIL_IS_EMPTY
const ERROR_INVALID_EMAIL
testValidateRowForUpdate()
const ERROR_INVALID_WEBSITE
checkUniqueKeyDataProvider()