Skip to content

Commit e63c603

Browse files
committed
33300: Eliminated AspectMock usage from SuiteObjectHandlerTest.php
1 parent 9dfd3e3 commit e63c603

File tree

1 file changed

+47
-32
lines changed

1 file changed

+47
-32
lines changed

dev/tests/unit/Magento/FunctionalTestFramework/Suite/Handlers/SuiteObjectHandlerTest.php

Lines changed: 47 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -3,32 +3,29 @@
33
* Copyright © Magento, Inc. All rights reserved.
44
* See COPYING.txt for license details.
55
*/
6+
declare(strict_types=1);
7+
68
namespace tests\unit\Magento\FunctionalTestFramework\Suite\Handlers;
79

8-
use AspectMock\Test as AspectMock;
9-
use Magento\FunctionalTestingFramework\ObjectManager\ObjectManager;
10-
use Magento\FunctionalTestingFramework\ObjectManagerFactory;
10+
use Exception;
11+
use Magento\FunctionalTestingFramework\ObjectManager;
1112
use Magento\FunctionalTestingFramework\Suite\Handlers\SuiteObjectHandler;
1213
use Magento\FunctionalTestingFramework\Suite\Parsers\SuiteDataParser;
1314
use Magento\FunctionalTestingFramework\Test\Handlers\TestObjectHandler;
1415
use Magento\FunctionalTestingFramework\Test\Parsers\TestDataParser;
16+
use ReflectionProperty;
1517
use tests\unit\Util\MagentoTestCase;
1618
use tests\unit\Util\SuiteDataArrayBuilder;
1719
use tests\unit\Util\TestDataArrayBuilder;
18-
use tests\unit\Util\MockModuleResolverBuilder;
1920

2021
class SuiteObjectHandlerTest extends MagentoTestCase
2122
{
22-
public function setUp(): void
23-
{
24-
$resolverMock = new MockModuleResolverBuilder();
25-
$resolverMock->setup();
26-
}
27-
2823
/**
29-
* Tests basic parsing and accesors of suite object and suite object supporting classes
24+
* Tests basic parsing and accessors of suite object and suite object supporting classes.
25+
*
26+
* @throws Exception
3027
*/
31-
public function testGetSuiteObject()
28+
public function testGetSuiteObject(): void
3229
{
3330
$suiteDataArrayBuilder = new SuiteDataArrayBuilder();
3431
$mockData = $suiteDataArrayBuilder
@@ -82,35 +79,53 @@ public function testGetSuiteObject()
8279
* Function used to set mock for parser return and force init method to run between tests.
8380
*
8481
* @param array $testData
85-
* @throws \Exception
82+
* @param array $suiteData
83+
*
84+
* @throws Exception
8685
*/
87-
private function setMockTestAndSuiteParserOutput($testData, $suiteData)
86+
private function setMockTestAndSuiteParserOutput(array $testData, array $suiteData): void
8887
{
8988
// clear test object handler value to inject parsed content
90-
$property = new \ReflectionProperty(TestObjectHandler::class, 'testObjectHandler');
89+
$property = new ReflectionProperty(TestObjectHandler::class, 'testObjectHandler');
9190
$property->setAccessible(true);
9291
$property->setValue(null);
9392

9493
// clear suite object handler value to inject parsed content
95-
$property = new \ReflectionProperty(SuiteObjectHandler::class, 'instance');
94+
$property = new ReflectionProperty(SuiteObjectHandler::class, 'instance');
9695
$property->setAccessible(true);
9796
$property->setValue(null);
9897

99-
$mockDataParser = AspectMock::double(TestDataParser::class, ['readTestData' => $testData])->make();
100-
$mockSuiteDataParser = AspectMock::double(SuiteDataParser::class, ['readSuiteData' => $suiteData])->make();
101-
$instance = AspectMock::double(
102-
ObjectManager::class,
103-
['create' => function ($clazz) use ($mockDataParser, $mockSuiteDataParser) {
104-
if ($clazz == TestDataParser::class) {
105-
return $mockDataParser;
106-
}
107-
108-
if ($clazz == SuiteDataParser::class) {
109-
return $mockSuiteDataParser;
110-
}
111-
}]
112-
)->make();
113-
// bypass the private constructor
114-
AspectMock::double(ObjectManagerFactory::class, ['getObjectManager' => $instance]);
98+
$mockDataParser = $this->createMock(TestDataParser::class);
99+
$mockDataParser
100+
->method('readTestData')
101+
->willReturn($testData);
102+
103+
$mockSuiteDataParser = $this->createMock(SuiteDataParser::class);
104+
$mockSuiteDataParser
105+
->method('readSuiteData')
106+
->willReturn($suiteData);
107+
108+
$instance = $this->createMock(ObjectManager::class);
109+
$instance
110+
->method('create')
111+
->will(
112+
$this->returnCallback(
113+
function ($clazz) use ($mockDataParser, $mockSuiteDataParser) {
114+
if ($clazz == TestDataParser::class) {
115+
return $mockDataParser;
116+
}
117+
118+
if ($clazz == SuiteDataParser::class) {
119+
return $mockSuiteDataParser;
120+
}
121+
122+
return null;
123+
}
124+
)
125+
);
126+
127+
$property = new ReflectionProperty(ObjectManager::class, 'instance');
128+
$property->setAccessible(true);
129+
$property->setValue($instance);
115130
}
116131
}

0 commit comments

Comments
 (0)