Skip to content

Commit ef92ba1

Browse files
authored
Merge pull request #78 from magento-commerce/imported-magento-magento2-functional-testing-framework-856
[Imported] Issue 33297: Eliminate AspectMock from DataExtensionUtilTest
2 parents 01d02e5 + 7b520d1 commit ef92ba1

File tree

2 files changed

+43
-41
lines changed

2 files changed

+43
-41
lines changed

dev/tests/unit/Magento/FunctionalTestFramework/DataGenerator/Util/DataExtensionUtilTest.php

Lines changed: 41 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -3,37 +3,28 @@
33
* Copyright © Magento, Inc. All rights reserved.
44
* See COPYING.txt for license details.
55
*/
6+
declare(strict_types=1);
67

78
namespace tests\unit\Magento\FunctionalTestFramework\DataGenerator\Util;
89

910
use Magento\FunctionalTestingFramework\DataGenerator\Handlers\DataObjectHandler;
1011
use Magento\FunctionalTestingFramework\DataGenerator\Parsers\DataProfileSchemaParser;
11-
use Magento\FunctionalTestingFramework\ObjectManager\ObjectManager;
12-
use Magento\FunctionalTestingFramework\ObjectManagerFactory;
12+
use Magento\FunctionalTestingFramework\ObjectManager;
13+
use ReflectionProperty;
1314
use tests\unit\Util\MagentoTestCase;
14-
use AspectMock\Test as AspectMock;
1515

1616
/**
1717
* Class DataExtensionUtilTest
1818
*/
1919
class DataExtensionUtilTest extends MagentoTestCase
2020
{
21-
/**
22-
* Before method functionality
23-
* @return void
24-
*/
25-
protected function setUp(): void
26-
{
27-
AspectMock::clean();
28-
}
29-
30-
public function testNoParentData()
21+
public function testNoParentData(): void
3122
{
3223
$extendedDataObject = [
3324
'entity' => [
3425
'extended' => [
3526
'type' => 'testType',
36-
'extends' => "parent",
27+
'extends' => 'parent',
3728
'data' => [
3829
0 => [
3930
'key' => 'testKey',
@@ -46,21 +37,21 @@ public function testNoParentData()
4637

4738
$this->setMockEntities($extendedDataObject);
4839

49-
$this->expectExceptionMessage("Parent Entity parent not defined for Entity extended.");
50-
DataObjectHandler::getInstance()->getObject("extended");
40+
$this->expectExceptionMessage('Parent Entity parent not defined for Entity extended.');
41+
DataObjectHandler::getInstance()->getObject('extended');
5142
}
5243

53-
public function testAlreadyExtendedParentData()
44+
public function testAlreadyExtendedParentData(): void
5445
{
5546
$extendedDataObjects = [
5647
'entity' => [
5748
'extended' => [
5849
'type' => 'testType',
59-
'extends' => "parent"
50+
'extends' => 'parent'
6051
],
6152
'parent' => [
6253
'type' => 'type',
63-
'extends' => "grandparent"
54+
'extends' => 'grandparent'
6455
],
6556
'grandparent' => [
6657
'type' => 'grand'
@@ -71,18 +62,18 @@ public function testAlreadyExtendedParentData()
7162
$this->setMockEntities($extendedDataObjects);
7263

7364
$this->expectExceptionMessage(
74-
"Cannot extend an entity that already extends another entity. Entity: parent." . PHP_EOL
65+
'Cannot extend an entity that already extends another entity. Entity: parent.' . PHP_EOL
7566
);
76-
DataObjectHandler::getInstance()->getObject("extended");
67+
DataObjectHandler::getInstance()->getObject('extended');
7768
}
7869

79-
public function testExtendedVarGetter()
70+
public function testExtendedVarGetter(): void
8071
{
8172
$extendedDataObjects = [
8273
'entity' => [
8374
'extended' => [
8475
'type' => 'testType',
85-
'extends' => "parent"
76+
'extends' => 'parent'
8677
],
8778
'parent' => [
8879
'type' => 'type',
@@ -98,18 +89,18 @@ public function testExtendedVarGetter()
9889
];
9990

10091
$this->setMockEntities($extendedDataObjects);
101-
$resultextendedDataObject = DataObjectHandler::getInstance()->getObject("extended");
92+
$resultextendedDataObject = DataObjectHandler::getInstance()->getObject('extended');
10293
// Perform Asserts
103-
$this->assertEquals("someOtherEntity->id", $resultextendedDataObject->getVarReference("someOtherEntity"));
94+
$this->assertEquals('someOtherEntity->id', $resultextendedDataObject->getVarReference('someOtherEntity'));
10495
}
10596

106-
public function testGetLinkedEntities()
97+
public function testGetLinkedEntities(): void
10798
{
10899
$extendedDataObjects = [
109100
'entity' => [
110101
'extended' => [
111102
'type' => 'testType',
112-
'extends' => "parent"
103+
'extends' => 'parent'
113104
],
114105
'parent' => [
115106
'type' => 'type',
@@ -129,27 +120,36 @@ public function testGetLinkedEntities()
129120

130121
$this->setMockEntities($extendedDataObjects);
131122
// Perform Asserts
132-
$resultextendedDataObject = DataObjectHandler::getInstance()->getObject("extended");
133-
$this->assertEquals("linkedEntity1", $resultextendedDataObject->getLinkedEntitiesOfType("linkedEntityType")[0]);
134-
$this->assertEquals("linkedEntity2", $resultextendedDataObject->getLinkedEntitiesOfType("otherEntityType")[0]);
123+
$resultextendedDataObject = DataObjectHandler::getInstance()->getObject('extended');
124+
$this->assertEquals('linkedEntity1', $resultextendedDataObject->getLinkedEntitiesOfType('linkedEntityType')[0]);
125+
$this->assertEquals('linkedEntity2', $resultextendedDataObject->getLinkedEntitiesOfType('otherEntityType')[0]);
135126
}
136127

137-
private function setMockEntities($mockEntityData)
128+
/**
129+
* Prepare mock entites.
130+
*
131+
* @param $mockEntityData
132+
*
133+
* @return void
134+
*/
135+
private function setMockEntities($mockEntityData): void
138136
{
139-
$property = new \ReflectionProperty(DataObjectHandler::class, 'INSTANCE');
137+
$property = new ReflectionProperty(DataObjectHandler::class, 'INSTANCE');
140138
$property->setAccessible(true);
141139
$property->setValue(null);
142140

143-
$mockDataProfileSchemaParser = AspectMock::double(DataProfileSchemaParser::class, [
144-
'readDataProfiles' => $mockEntityData
145-
])->make();
141+
$mockDataProfileSchemaParser = $this->createMock(DataProfileSchemaParser::class);
142+
$mockDataProfileSchemaParser->expects($this->any())
143+
->method('readDataProfiles')
144+
->willReturn($mockEntityData);
146145

147-
$mockObjectManager = AspectMock::double(ObjectManager::class, [
148-
'create' => $mockDataProfileSchemaParser
149-
])->make();
146+
$mockObjectManager = $this->createMock(ObjectManager::class);
147+
$mockObjectManager
148+
->method('create')
149+
->willReturn($mockDataProfileSchemaParser);
150150

151-
AspectMock::double(ObjectManagerFactory::class, [
152-
'getObjectManager' => $mockObjectManager
153-
]);
151+
$property = new ReflectionProperty(ObjectManager::class, 'instance');
152+
$property->setAccessible(true);
153+
$property->setValue($mockObjectManager);
154154
}
155155
}

dev/tests/unit/Util/MagentoTestCase.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,8 @@ public static function setUpBeforeClass(): void
1919
if (!self::fileExists(DOCS_OUTPUT_DIR)) {
2020
mkdir(DOCS_OUTPUT_DIR, 0755, true);
2121
}
22+
// Should be used to clean AspectMock mocking before using PHPUnit mocking and Reflection.
23+
AspectMock::clean();
2224
parent::setUpBeforeClass();
2325
}
2426

0 commit comments

Comments
 (0)