Skip to content

Commit 5da9853

Browse files
committed
33584: Eliminated AspectMock from ObjectHandlerUtil
1 parent 256f603 commit 5da9853

File tree

8 files changed

+485
-219
lines changed

8 files changed

+485
-219
lines changed

dev/tests/unit/Magento/FunctionalTestFramework/DataGenerator/Handlers/DataObjectHandlerTest.php

Lines changed: 66 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,12 @@
1010
use Exception;
1111
use Magento\FunctionalTestingFramework\DataGenerator\Handlers\DataObjectHandler;
1212
use Magento\FunctionalTestingFramework\DataGenerator\Objects\EntityDataObject;
13+
use Magento\FunctionalTestingFramework\DataGenerator\Parsers\DataProfileSchemaParser;
1314
use Magento\FunctionalTestingFramework\Exceptions\TestFrameworkException;
15+
use Magento\FunctionalTestingFramework\ObjectManager;
16+
use Magento\FunctionalTestingFramework\ObjectManagerFactory;
17+
use ReflectionProperty;
1418
use tests\unit\Util\MagentoTestCase;
15-
use tests\unit\Util\ObjectHandlerUtil;
1619
use tests\unit\Util\TestLoggingUtil;
1720

1821
/**
@@ -151,7 +154,7 @@ protected function setUp(): void
151154
*/
152155
public function testGetAllObjects(): void
153156
{
154-
ObjectHandlerUtil::mockDataObjectHandlerWithData(self::PARSER_OUTPUT);
157+
$this->mockDataObjectHandlerWithData(self::PARSER_OUTPUT);
155158

156159
// Call the method under test
157160
$actual = DataObjectHandler::getInstance()->getAllObjects();
@@ -170,10 +173,10 @@ public function testGetAllObjects(): void
170173
*/
171174
public function testDeprecatedDataObject(): void
172175
{
173-
ObjectHandlerUtil::mockDataObjectHandlerWithData(self::PARSER_OUTPUT_DEPRECATED);
176+
$this->mockDataObjectHandlerWithData(self::PARSER_OUTPUT_DEPRECATED);
174177

175178
// Call the method under test
176-
$actual = DataObjectHandler::getInstance()->getAllObjects();
179+
DataObjectHandler::getInstance()->getAllObjects();
177180

178181
//validate deprecation warning
179182
TestLoggingUtil::getInstance()->validateMockLogStatement(
@@ -191,7 +194,7 @@ public function testDeprecatedDataObject(): void
191194
*/
192195
public function testGetObject(): void
193196
{
194-
ObjectHandlerUtil::mockDataObjectHandlerWithData(self::PARSER_OUTPUT);
197+
$this->mockDataObjectHandlerWithData(self::PARSER_OUTPUT);
195198

196199
// Call the method under test
197200
$actual = DataObjectHandler::getInstance()->getObject('EntityOne');
@@ -209,7 +212,7 @@ public function testGetObject(): void
209212
*/
210213
public function testGetObjectNull(): void
211214
{
212-
ObjectHandlerUtil::mockDataObjectHandlerWithData(self::PARSER_OUTPUT);
215+
$this->mockDataObjectHandlerWithData(self::PARSER_OUTPUT);
213216

214217
$actual = DataObjectHandler::getInstance()->getObject('h953u789h0g73t521'); // doesnt exist
215218
$this->assertNull($actual);
@@ -223,7 +226,7 @@ public function testGetObjectNull(): void
223226
*/
224227
public function testGetAllObjectsWithDataExtends(): void
225228
{
226-
ObjectHandlerUtil::mockDataObjectHandlerWithData(self::PARSER_OUTPUT_WITH_EXTEND);
229+
$this->mockDataObjectHandlerWithData(self::PARSER_OUTPUT_WITH_EXTEND);
227230

228231
// Call the method under test
229232
$actual = DataObjectHandler::getInstance()->getAllObjects();
@@ -250,7 +253,7 @@ public function testGetAllObjectsWithDataExtends(): void
250253
*/
251254
public function testGetObjectWithDataExtends(): void
252255
{
253-
ObjectHandlerUtil::mockDataObjectHandlerWithData(self::PARSER_OUTPUT_WITH_EXTEND);
256+
$this->mockDataObjectHandlerWithData(self::PARSER_OUTPUT_WITH_EXTEND);
254257

255258
// Call the method under test
256259
$actual = DataObjectHandler::getInstance()->getObject('EntityTwo');
@@ -276,7 +279,7 @@ public function testGetObjectWithDataExtends(): void
276279
*/
277280
public function testGetAllObjectsWithDataExtendsItself(): void
278281
{
279-
ObjectHandlerUtil::mockDataObjectHandlerWithData(self::PARSER_OUTPUT_WITH_EXTEND_INVALID);
282+
$this->mockDataObjectHandlerWithData(self::PARSER_OUTPUT_WITH_EXTEND_INVALID);
280283

281284
$this->expectException(TestFrameworkException::class);
282285
$this->expectExceptionMessage(
@@ -296,7 +299,7 @@ public function testGetAllObjectsWithDataExtendsItself(): void
296299
*/
297300
public function testGetObjectWithDataExtendsItself(): void
298301
{
299-
ObjectHandlerUtil::mockDataObjectHandlerWithData(self::PARSER_OUTPUT_WITH_EXTEND_INVALID);
302+
$this->mockDataObjectHandlerWithData(self::PARSER_OUTPUT_WITH_EXTEND_INVALID);
300303

301304
$this->expectException(TestFrameworkException::class);
302305
$this->expectExceptionMessage(
@@ -310,11 +313,64 @@ public function testGetObjectWithDataExtendsItself(): void
310313
);
311314
}
312315

316+
/**
317+
* Create mock data object handler with data.
318+
*
319+
* @param array $mockData
320+
*
321+
* @return void
322+
*/
323+
private function mockDataObjectHandlerWithData(array $mockData): void
324+
{
325+
$dataObjectHandlerProperty = new ReflectionProperty(DataObjectHandler::class, "INSTANCE");
326+
$dataObjectHandlerProperty->setAccessible(true);
327+
$dataObjectHandlerProperty->setValue(null);
328+
329+
$mockDataProfileSchemaParser = $this->createMock(DataProfileSchemaParser::class);
330+
$mockDataProfileSchemaParser
331+
->method('readDataProfiles')
332+
->willReturn($mockData);
333+
334+
$objectManager = ObjectManagerFactory::getObjectManager();
335+
$mockObjectManagerInstance = $this->createMock(ObjectManager::class);
336+
$mockObjectManagerInstance
337+
->method('create')
338+
->will(
339+
$this->returnCallback(
340+
function (
341+
string $class,
342+
array $arguments = []
343+
) use ($objectManager, $mockDataProfileSchemaParser) {
344+
345+
if ($class === DataProfileSchemaParser::class) {
346+
return $mockDataProfileSchemaParser;
347+
}
348+
349+
return $objectManager->create($class, $arguments);
350+
}
351+
)
352+
);
353+
354+
$property = new ReflectionProperty(ObjectManager::class, 'instance');
355+
$property->setAccessible(true);
356+
$property->setValue($mockObjectManagerInstance);
357+
}
358+
313359
/**
314360
* @inheritDoc
315361
*/
316362
public static function tearDownAfterClass(): void
317363
{
364+
parent::tearDownAfterClass();
365+
366+
$dataObjectHandlerProperty = new ReflectionProperty(DataObjectHandler::class, "INSTANCE");
367+
$dataObjectHandlerProperty->setAccessible(true);
368+
$dataObjectHandlerProperty->setValue(null);
369+
370+
$objectManagerProperty = new ReflectionProperty(ObjectManager::class, 'instance');
371+
$objectManagerProperty->setAccessible(true);
372+
$objectManagerProperty->setValue(null);
373+
318374
TestLoggingUtil::getInstance()->clearMockLoggingUtil();
319375
}
320376
}

dev/tests/unit/Magento/FunctionalTestFramework/DataGenerator/Handlers/OperationDefinitionObjectHandlerTest.php

Lines changed: 69 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,11 @@
1111
use Magento\FunctionalTestingFramework\DataGenerator\Handlers\OperationDefinitionObjectHandler;
1212
use Magento\FunctionalTestingFramework\DataGenerator\Objects\OperationDefinitionObject;
1313
use Magento\FunctionalTestingFramework\DataGenerator\Objects\OperationElement;
14+
use Magento\FunctionalTestingFramework\DataGenerator\Parsers\OperationDefinitionParser;
15+
use Magento\FunctionalTestingFramework\ObjectManager;
16+
use Magento\FunctionalTestingFramework\ObjectManagerFactory;
17+
use ReflectionProperty;
1418
use tests\unit\Util\MagentoTestCase;
15-
use tests\unit\Util\ObjectHandlerUtil;
1619
use tests\unit\Util\TestLoggingUtil;
1720

1821
/**
@@ -63,8 +66,8 @@ public function testGetMultipleObjects(): void
6366
OperationDefinitionObjectHandler::ENTITY_OPERATION_ENTRY_KEY => 'id',
6467
OperationDefinitionObjectHandler::ENTITY_OPERATION_ENTRY_VALUE => 'integer'
6568
],
66-
]
67-
],[
69+
]
70+
],[
6871
OperationDefinitionObjectHandler::ENTITY_OPERATION_DATA_TYPE => $dataType1,
6972
OperationDefinitionObjectHandler::ENTITY_OPERATION_TYPE => $operationType2,
7073
OperationDefinitionObjectHandler::ENTITY_OPERATION_AUTH => 'auth',
@@ -76,8 +79,8 @@ public function testGetMultipleObjects(): void
7679
OperationDefinitionObjectHandler::ENTITY_OPERATION_ENTRY_VALUE => 'integer'
7780
],
7881
]
79-
]]];
80-
ObjectHandlerUtil::mockOperationHandlerWithData($mockData);
82+
]]];
83+
$this->mockOperationHandlerWithData($mockData);
8184

8285
//Perform Assertions
8386
$operationDefinitionManager = OperationDefinitionObjectHandler::getInstance();
@@ -120,7 +123,7 @@ public function testDeprecatedOperation(): void
120123
],
121124
OperationDefinitionObjectHandler::OBJ_DEPRECATED => 'deprecation message'
122125
]]];
123-
ObjectHandlerUtil::mockOperationHandlerWithData($mockData);
126+
$this->mockOperationHandlerWithData($mockData);
124127

125128
//Perform Assertions
126129
$operationDefinitionManager = OperationDefinitionObjectHandler::getInstance();
@@ -274,7 +277,7 @@ public function testObjectCreation(): void
274277
);
275278

276279
// Set up mocked data output
277-
ObjectHandlerUtil::mockOperationHandlerWithData($mockData);
280+
$this->mockOperationHandlerWithData($mockData);
278281

279282
// Get Operation
280283
$operationDefinitionManager = OperationDefinitionObjectHandler::getInstance();
@@ -382,7 +385,7 @@ public function testObjectArrayCreation(): void
382385
);
383386

384387
// Set up mocked data output
385-
ObjectHandlerUtil::mockOperationHandlerWithData($mockData);
388+
$this->mockOperationHandlerWithData($mockData);
386389

387390
// Get Operation
388391
$operationDefinitionManager = OperationDefinitionObjectHandler::getInstance();
@@ -456,7 +459,7 @@ public function testLooseJsonCreation(): void
456459
);
457460

458461
// Set up mocked data output
459-
ObjectHandlerUtil::mockOperationHandlerWithData($mockData);
462+
$this->mockOperationHandlerWithData($mockData);
460463

461464
// get Operations
462465
$operationDefinitionManager = OperationDefinitionObjectHandler::getInstance();
@@ -467,13 +470,70 @@ public function testLooseJsonCreation(): void
467470
$this->assertEquals($array, $operation->getOperationMetadata()[1]);
468471
}
469472

473+
/**
474+
* Create mock operation handler with data.
475+
*
476+
* @param array $mockData
477+
*
478+
* @return void
479+
*/
480+
private function mockOperationHandlerWithData(array $mockData): void
481+
{
482+
$operationDefinitionObjectHandlerProperty = new ReflectionProperty(
483+
OperationDefinitionObjectHandler::class,
484+
'INSTANCE'
485+
);
486+
$operationDefinitionObjectHandlerProperty->setAccessible(true);
487+
$operationDefinitionObjectHandlerProperty->setValue(null);
488+
489+
$mockOperationParser = $this->createMock(OperationDefinitionParser::class);
490+
$mockOperationParser
491+
->method('readOperationMetadata')
492+
->willReturn($mockData);
493+
494+
$objectManager = ObjectManagerFactory::getObjectManager();
495+
$mockObjectManagerInstance = $this->createMock(ObjectManager::class);
496+
$mockObjectManagerInstance
497+
->method('create')
498+
->will(
499+
$this->returnCallback(
500+
function (
501+
string $class,
502+
array $arguments = []
503+
) use ($objectManager, $mockOperationParser) {
504+
505+
if ($class === OperationDefinitionParser::class) {
506+
return $mockOperationParser;
507+
}
508+
509+
return $objectManager->create($class, $arguments);
510+
}
511+
)
512+
);
513+
514+
$property = new ReflectionProperty(ObjectManager::class, 'instance');
515+
$property->setAccessible(true);
516+
$property->setValue($mockObjectManagerInstance);
517+
}
518+
470519
/**
471520
* @inheritDoc
472521
*/
473522
public static function tearDownAfterClass(): void
474523
{
475524
parent::tearDownAfterClass();
476525

526+
$operationDefinitionObjectHandlerProperty = new ReflectionProperty(
527+
OperationDefinitionObjectHandler::class,
528+
'INSTANCE'
529+
);
530+
$operationDefinitionObjectHandlerProperty->setAccessible(true);
531+
$operationDefinitionObjectHandlerProperty->setValue(null);
532+
533+
$objectManagerProperty = new ReflectionProperty(ObjectManager::class, 'instance');
534+
$objectManagerProperty->setAccessible(true);
535+
$objectManagerProperty->setValue(null);
536+
477537
TestLoggingUtil::getInstance()->clearMockLoggingUtil();
478538
}
479539
}

dev/tests/unit/Magento/FunctionalTestFramework/DataGenerator/Handlers/PersistedObjectHandlerTest.php

Lines changed: 9 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -8,17 +8,16 @@
88
namespace tests\unit\Magento\FunctionalTestFramework\DataGenerator\Handlers;
99

1010
use Exception;
11+
use Magento\FunctionalTestingFramework\DataGenerator\Handlers\DataObjectHandler;
1112
use Magento\FunctionalTestingFramework\DataGenerator\Handlers\PersistedObjectHandler;
1213
use Magento\FunctionalTestingFramework\DataGenerator\Parsers\DataProfileSchemaParser;
1314
use Magento\FunctionalTestingFramework\DataGenerator\Persist\CurlHandler;
1415
use Magento\FunctionalTestingFramework\Exceptions\TestFrameworkException;
1516
use Magento\FunctionalTestingFramework\Exceptions\TestReferenceException;
1617
use Magento\FunctionalTestingFramework\ObjectManager;
1718
use Magento\FunctionalTestingFramework\ObjectManagerFactory;
18-
use Magento\FunctionalTestingFramework\DataGenerator\Handlers\DataObjectHandler;
1919
use ReflectionProperty;
2020
use tests\unit\Util\MagentoTestCase;
21-
use tests\unit\Util\ObjectHandlerUtil;
2221
use tests\unit\Util\TestLoggingUtil;
2322

2423
/**
@@ -261,15 +260,14 @@ public function testUpdateSimpleEntity(): void
261260
";
262261

263262
// Mock Classes
264-
ObjectHandlerUtil::mockDataObjectHandlerWithData($parserOutput);
265-
$this->mockCurlHandler($jsonResponse);
263+
$this->mockCurlHandler($jsonResponse, $parserOutput);
266264
$handler = PersistedObjectHandler::getInstance();
267265
$handler->createEntity(
268266
$entityStepKey,
269267
$scope,
270268
$entityName
271269
);
272-
$this->mockCurlHandler($updatedResponse);
270+
$this->mockCurlHandler($updatedResponse, $parserOutput);
273271

274272
// Call method
275273
$handler->updateEntity(
@@ -589,13 +587,13 @@ public static function tearDownAfterClass(): void
589587
parent::tearDownAfterClass();
590588

591589
// Clear out Singleton between tests
592-
$property = new ReflectionProperty(PersistedObjectHandler::class, "INSTANCE");
593-
$property->setAccessible(true);
594-
$property->setValue(null);
590+
$persistedObjectHandlerProperty = new ReflectionProperty(PersistedObjectHandler::class, "INSTANCE");
591+
$persistedObjectHandlerProperty->setAccessible(true);
592+
$persistedObjectHandlerProperty->setValue(null);
595593

596-
$property = new ReflectionProperty(ObjectManager::class, 'instance');
597-
$property->setAccessible(true);
598-
$property->setValue(null);
594+
$objectManagerProperty = new ReflectionProperty(ObjectManager::class, 'instance');
595+
$objectManagerProperty->setAccessible(true);
596+
$objectManagerProperty->setValue(null);
599597

600598
TestLoggingUtil::getInstance()->clearMockLoggingUtil();
601599
}

0 commit comments

Comments
 (0)