Skip to content

Commit 1bc2180

Browse files
committed
Merge pull request #556 from magento-south/merchant_beta
[MERCHANT_BETA][SOUTH+TROLL] Create a customer on the frontend, open customer acct in admin, receive error message
2 parents d0dd2b9 + 290dcf4 commit 1bc2180

File tree

19 files changed

+172
-79
lines changed

19 files changed

+172
-79
lines changed

app/code/Magento/AdvancedPricingImportExport/Model/Import/AdvancedPricing/Validator.php

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,12 @@
66
namespace Magento\AdvancedPricingImportExport\Model\Import\AdvancedPricing;
77

88
use Magento\CatalogImportExport\Model\Import\Product\RowValidatorInterface;
9-
use \Magento\Framework\Validator\AbstractValidator;
9+
use Magento\CatalogImportExport\Model\Import\Product\Validator\AbstractImportValidator;
1010

11-
class Validator extends AbstractValidator implements RowValidatorInterface
11+
class Validator extends AbstractImportValidator implements RowValidatorInterface
1212
{
1313
/**
14-
* @var RowValidatorInterface[]|AbstractValidator[]
14+
* @var RowValidatorInterface[]|AbstractImportValidator[]
1515
*/
1616
protected $validators = [];
1717

@@ -43,14 +43,12 @@ public function isValid($value)
4343
}
4444

4545
/**
46-
* Init validators
47-
*
48-
* @return void
46+
* {@inheritdoc}
4947
*/
5048
public function init()
5149
{
5250
foreach ($this->validators as $validator) {
53-
$validator->init();
51+
$validator->setContext($this->getContext())->init();
5452
}
5553
}
5654
}

app/code/Magento/AdvancedPricingImportExport/Model/Import/AdvancedPricing/Validator/GroupPrice.php

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,9 @@
66
namespace Magento\AdvancedPricingImportExport\Model\Import\AdvancedPricing\Validator;
77

88
use Magento\AdvancedPricingImportExport\Model\Import\AdvancedPricing;
9+
use Magento\CatalogImportExport\Model\Import\Product\Validator\AbstractPrice;
910

10-
class GroupPrice extends \Magento\CatalogImportExport\Model\Import\Product\Validator\AbstractPrice
11+
class GroupPrice extends AbstractPrice
1112
{
1213
/**
1314
* @var \Magento\CatalogImportExport\Model\Import\Product\StoreResolver
@@ -38,15 +39,14 @@ public function __construct(
3839
}
3940

4041
/**
41-
* Call parent init()
42-
*
43-
* @return $this
42+
* {@inheritdoc}
4443
*/
4544
public function init()
4645
{
4746
foreach ($this->groupRepository->getList($this->searchCriteriaBuilder->create())->getItems() as $group) {
4847
$this->customerGroups[$group->getCode()] = $group->getId();
4948
}
49+
return $this;
5050
}
5151

5252
/**

app/code/Magento/AdvancedPricingImportExport/Model/Import/AdvancedPricing/Validator/TierPrice.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@ public function init()
4848
foreach ($this->groupRepository->getList($this->searchCriteriaBuilder->create())->getItems() as $group) {
4949
$this->customerGroups[$group->getCode()] = $group->getId();
5050
}
51+
return $this;
5152
}
5253

5354
/**

app/code/Magento/AdvancedPricingImportExport/Model/Import/AdvancedPricing/Validator/Website.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,10 @@
66
namespace Magento\AdvancedPricingImportExport\Model\Import\AdvancedPricing\Validator;
77

88
use Magento\AdvancedPricingImportExport\Model\Import\AdvancedPricing;
9-
use \Magento\Framework\Validator\AbstractValidator;
9+
use Magento\CatalogImportExport\Model\Import\Product\Validator\AbstractImportValidator;
1010
use Magento\CatalogImportExport\Model\Import\Product\RowValidatorInterface;
1111

12-
class Website extends AbstractValidator implements RowValidatorInterface
12+
class Website extends AbstractImportValidator implements RowValidatorInterface
1313
{
1414
/**
1515
* @var \Magento\CatalogImportExport\Model\Import\Product\StoreResolver

app/code/Magento/AdvancedPricingImportExport/Test/Unit/Model/Import/AdvancedPricing/ValidatorTest.php

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,10 @@ public function setUp()
3131
'Magento\CatalogImportExport\Model\Import\Product\RowValidatorInterface',
3232
[],
3333
'',
34-
false
34+
false,
35+
false,
36+
true,
37+
['setContext']
3538
);
3639
$messages = ['messages'];
3740
$this->validatorTest->expects($this->any())->method('getMessages')->willReturn($messages);
@@ -42,6 +45,7 @@ public function setUp()
4245
['_clearMessages', '_addMessages'],
4346
[$this->validators]
4447
);
48+
4549
}
4650

4751
/**
@@ -71,9 +75,12 @@ public function testIsValidAddMessagesCall()
7175

7276
public function testInit()
7377
{
74-
$this->validatorTest->expects($this->once())->method('init');
75-
76-
$this->validator->init();
78+
$this->validator->expects($this->any())->method('setContext')->will($this->returnSelf());
79+
$this->validatorTest->expects($this->once())->method('init')->will($this->returnSelf());
80+
$this->validatorTest->expects($this->any())->method('setContext')->will($this->returnSelf());
81+
/** @var \Magento\CatalogImportExport\Model\Import\ContextInterface $contextMock */
82+
$contextMock = $this->getMock('Magento\CatalogImportExport\Model\Import\ContextInterface', [], [], '', false);
83+
$this->validator->setContext($contextMock)->init();
7784
}
7885

7986
public function isValidDataProvider()
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
<?php
2+
/**
3+
* Copyright © 2015 Magento. All rights reserved.
4+
* See COPYING.txt for license details.
5+
*/
6+
7+
namespace Magento\CatalogImportExport\Model\Import;
8+
9+
/**
10+
* Interface ContextInterface
11+
* @package Magento\CatalogImportExport\Model\Import
12+
*/
13+
interface ContextInterface
14+
{
15+
/**
16+
* Get context params
17+
*
18+
* @return array|null
19+
*/
20+
public function getParams();
21+
22+
/**
23+
* Get context param by name
24+
*
25+
* @param string $name
26+
*
27+
* @return mixed
28+
*/
29+
public function getParam($name);
30+
}

app/code/Magento/CatalogImportExport/Model/Import/Product.php

Lines changed: 24 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
* @SuppressWarnings(PHPMD.ExcessiveClassComplexity)
2121
* @SuppressWarnings(PHPMD.CouplingBetweenObjects)
2222
*/
23-
class Product extends \Magento\ImportExport\Model\Import\Entity\AbstractEntity
23+
class Product extends \Magento\ImportExport\Model\Import\Entity\AbstractEntity implements ContextInterface
2424
{
2525
const CONFIG_KEY_PRODUCT_TYPES = 'global/importexport/import_product_types';
2626

@@ -660,7 +660,7 @@ public function __construct(
660660
$this->_initAttributeSets()
661661
->_initTypeModels()
662662
->_initSkus();
663-
$this->validator->init();
663+
$this->validator->setContext($this)->init();
664664
}
665665

666666
/**
@@ -2288,4 +2288,26 @@ protected function _saveValidatedBunches()
22882288
$this->getOptionEntity()->validateAmbiguousData();
22892289
return parent::_saveValidatedBunches();
22902290
}
2291+
2292+
/**
2293+
* Get context params
2294+
*
2295+
* @return array|null
2296+
*/
2297+
public function getParams()
2298+
{
2299+
return $this->_parameters;
2300+
}
2301+
2302+
/**
2303+
* Get context param by name
2304+
*
2305+
* @param string $name
2306+
*
2307+
* @return mixed
2308+
*/
2309+
public function getParam($name)
2310+
{
2311+
return isset($this->_parameters[$name]) ? $this->_parameters[$name] : null;
2312+
}
22912313
}

app/code/Magento/CatalogImportExport/Model/Import/Product/Validator.php

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,12 @@
55
*/
66
namespace Magento\CatalogImportExport\Model\Import\Product;
77

8-
use \Magento\Framework\Validator\AbstractValidator;
8+
use Magento\CatalogImportExport\Model\Import\Product\Validator\AbstractImportValidator;
99

10-
class Validator extends AbstractValidator implements RowValidatorInterface
10+
class Validator extends AbstractImportValidator implements RowValidatorInterface
1111
{
1212
/**
13-
* @var RowValidatorInterface[]|AbstractValidator[]
13+
* @var RowValidatorInterface[]|AbstractImportValidator[]
1414
*/
1515
protected $validators = [];
1616

@@ -44,7 +44,7 @@ public function isValid($value)
4444
public function init()
4545
{
4646
foreach ($this->validators as $validator) {
47-
$validator->init();
47+
$validator->setContext($this->getContext())->init();
4848
}
4949
}
5050
}
Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
<?php
2+
/**
3+
* Copyright © 2015 Magento. All rights reserved.
4+
* See COPYING.txt for license details.
5+
*/
6+
namespace Magento\CatalogImportExport\Model\Import\Product\Validator;
7+
8+
use Magento\Framework\Exception\State\InitException;
9+
use Magento\Framework\Validator\AbstractValidator;
10+
use Magento\CatalogImportExport\Model\Import\Product\RowValidatorInterface;
11+
use Magento\CatalogImportExport\Model\Import\ContextInterface;
12+
13+
abstract class AbstractImportValidator extends AbstractValidator implements RowValidatorInterface
14+
{
15+
/**
16+
* @var \Magento\CatalogImportExport\Model\Import\Product
17+
*/
18+
protected $context;
19+
20+
/**
21+
* {@inheritdoc}
22+
*/
23+
public function init()
24+
{
25+
return $this;
26+
}
27+
28+
/**
29+
* Set context object
30+
*
31+
* @param ContextInterface $context
32+
*
33+
* @return $this
34+
*/
35+
public function setContext(ContextInterface $context)
36+
{
37+
$this->context = $context;
38+
return $this;
39+
}
40+
41+
/**
42+
* Get context object
43+
*
44+
* @return ContextInterface
45+
* @throws InitException
46+
*/
47+
public function getContext()
48+
{
49+
if (!$this->context instanceof ContextInterface) {
50+
throw new InitException(__('Validation context is not initialized.'));
51+
}
52+
return $this->context;
53+
}
54+
}

app/code/Magento/CatalogImportExport/Model/Import/Product/Validator/AbstractPrice.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
use Magento\Framework\Validator\AbstractValidator;
99
use Magento\CatalogImportExport\Model\Import\Product\RowValidatorInterface;
1010

11-
abstract class AbstractPrice extends AbstractValidator implements RowValidatorInterface
11+
abstract class AbstractPrice extends AbstractImportValidator implements RowValidatorInterface
1212
{
1313
/**
1414
* @var \Magento\Customer\Api\GroupRepositoryInterface
@@ -47,6 +47,6 @@ public function init()
4747
foreach ($this->groupRepository->getList($this->searchCriteriaBuilder->create())->getItems() as $group) {
4848
$this->customerGroups[$group->getId()] = true;
4949
}
50-
return $this;
50+
return parent::init();
5151
}
5252
}

0 commit comments

Comments
 (0)