Skip to content

Commit 245c17c

Browse files
authored
Merge pull request #536 from magento-performance/ACPT-1316
ACPT-1316: Fix Sales Webapi GraphQl tests on MTS
2 parents 98fb0dc + b95f266 commit 245c17c

File tree

2 files changed

+30
-4
lines changed
  • app/code/Magento/Eav

2 files changed

+30
-4
lines changed

app/code/Magento/Eav/Model/Validator/Attribute/Data.php

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88

99
use Magento\Eav\Model\Attribute;
1010
use Magento\Eav\Model\AttributeDataFactory;
11+
use Magento\Eav\Model\Config;
1112
use Magento\Framework\DataObject;
1213

1314
/**
@@ -47,14 +48,23 @@ class Data extends \Magento\Framework\Validator\AbstractValidator
4748
*/
4849
private $ignoredAttributesByTypesList;
4950

51+
/**
52+
* @var \Magento\Eav\Model\Config
53+
*/
54+
private $eavConfig;
55+
5056
/**
5157
* @param AttributeDataFactory $attrDataFactory
58+
* @param Config|null $eavConfig
5259
* @param array $ignoredAttributesByTypesList
5360
*/
5461
public function __construct(
5562
AttributeDataFactory $attrDataFactory,
63+
Config $eavConfig = null,
5664
array $ignoredAttributesByTypesList = []
5765
) {
66+
$this->eavConfig = $eavConfig ?: \Magento\Framework\App\ObjectManager::getInstance()
67+
->get(Config::class);
5868
$this->_attrDataFactory = $attrDataFactory;
5969
$this->ignoredAttributesByTypesList = $ignoredAttributesByTypesList;
6070
}
@@ -166,8 +176,9 @@ protected function _getAttributes($entity)
166176
} elseif ($entity instanceof \Magento\Framework\Model\AbstractModel &&
167177
$entity->getResource() instanceof \Magento\Eav\Model\Entity\AbstractEntity
168178
) { // $entity is EAV-model
179+
$type = $entity->getEntityType()->getEntityTypeCode();
169180
/** @var \Magento\Eav\Model\Entity\Type $entityType */
170-
$entityType = $entity->getEntityType();
181+
$entityType = $this->eavConfig->getEntityType($type);
171182
$attributes = $entityType->getAttributeCollection()->getItems();
172183

173184
$ignoredTypeAttributes = $this->ignoredAttributesByTypesList[$entityType->getEntityTypeCode()] ?? [];

app/code/Magento/Eav/Test/Unit/Model/Validator/Attribute/DataTest.php

Lines changed: 18 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
use Magento\Eav\Model\AttributeDataFactory;
1414
use Magento\Eav\Model\Entity\AbstractEntity;
1515
use Magento\Eav\Model\Validator\Attribute\Data;
16+
use Magento\Framework\App\ObjectManager;
1617
use Magento\Framework\DataObject;
1718
use Magento\Framework\Model\AbstractModel;
1819
use Magento\Framework\ObjectManagerInterface;
@@ -35,6 +36,11 @@ class DataTest extends TestCase
3536
*/
3637
private $model;
3738

39+
/**
40+
* @var \Magento\Eav\Model\Config|MockObject
41+
*/
42+
private $eavConfigMock;
43+
3844
/**
3945
* @inheritdoc
4046
*/
@@ -49,7 +55,12 @@ protected function setUp(): void
4955
]
5056
)
5157
->getMock();
52-
58+
$this->createMock(ObjectManagerInterface::class);
59+
ObjectManager::setInstance($this->createMock(ObjectManagerInterface::class));
60+
$this->eavConfigMock = $this->getMockBuilder(\Magento\Eav\Model\Config::class)
61+
->onlyMethods(['getEntityType'])
62+
->disableOriginalConstructor()
63+
->getMock();
5364
$this->model = new Data($this->attrDataFactory);
5465
}
5566

@@ -205,13 +216,17 @@ public function testIsValidAttributesFromCollection(): void
205216
'is_visible' => true,
206217
]
207218
);
219+
$entityTypeCode = 'entity_type_code';
208220
$collection = $this->getMockBuilder(DataObject::class)
209221
->addMethods(['getItems'])->getMock();
210222
$collection->expects($this->once())->method('getItems')->willReturn([$attribute]);
211223
$entityType = $this->getMockBuilder(DataObject::class)
212-
->addMethods(['getAttributeCollection'])
224+
->addMethods(['getAttributeCollection','getEntityTypeCode'])
213225
->getMock();
226+
$entityType->expects($this->atMost(2))->method('getEntityTypeCode')->willReturn($entityTypeCode);
214227
$entityType->expects($this->once())->method('getAttributeCollection')->willReturn($collection);
228+
$this->eavConfigMock->expects($this->once())->method('getEntityType')
229+
->with($entityTypeCode)->willReturn($entityType);
215230
$entity = $this->_getEntityMock();
216231
$entity->expects($this->once())->method('getResource')->willReturn($resource);
217232
$entity->expects($this->once())->method('getEntityType')->willReturn($entityType);
@@ -235,7 +250,7 @@ public function testIsValidAttributesFromCollection(): void
235250
)->willReturn(
236251
$dataModel
237252
);
238-
$validator = new Data($attrDataFactory);
253+
$validator = new Data($attrDataFactory, $this->eavConfigMock);
239254

240255
$validator->setData(['attribute' => 'new_test_data']);
241256
$this->assertTrue($validator->isValid($entity));

0 commit comments

Comments
 (0)