Skip to content

Commit 8736fdf

Browse files
authored
Merge pull request #91 from magento-commerce/imported-magento-magento2-functional-testing-framework-845
[Imported] 33300: Eliminated AspectMock usage from SuiteObjectHandlerTest.php
2 parents 93676a8 + dc2aa4f commit 8736fdf

File tree

1 file changed

+49
-32
lines changed

1 file changed

+49
-32
lines changed

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

Lines changed: 49 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -3,32 +3,30 @@
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+
* @return void
27+
* @throws Exception
3028
*/
31-
public function testGetSuiteObject()
29+
public function testGetSuiteObject(): void
3230
{
3331
$suiteDataArrayBuilder = new SuiteDataArrayBuilder();
3432
$mockData = $suiteDataArrayBuilder
@@ -82,35 +80,54 @@ public function testGetSuiteObject()
8280
* Function used to set mock for parser return and force init method to run between tests.
8381
*
8482
* @param array $testData
85-
* @throws \Exception
83+
* @param array $suiteData
84+
*
85+
* @return void
86+
* @throws Exception
8687
*/
87-
private function setMockTestAndSuiteParserOutput($testData, $suiteData)
88+
private function setMockTestAndSuiteParserOutput(array $testData, array $suiteData): void
8889
{
8990
// clear test object handler value to inject parsed content
90-
$property = new \ReflectionProperty(TestObjectHandler::class, 'testObjectHandler');
91+
$property = new ReflectionProperty(TestObjectHandler::class, 'testObjectHandler');
9192
$property->setAccessible(true);
9293
$property->setValue(null);
9394

9495
// clear suite object handler value to inject parsed content
95-
$property = new \ReflectionProperty(SuiteObjectHandler::class, 'instance');
96+
$property = new ReflectionProperty(SuiteObjectHandler::class, 'instance');
9697
$property->setAccessible(true);
9798
$property->setValue(null);
9899

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]);
100+
$mockDataParser = $this->createMock(TestDataParser::class);
101+
$mockDataParser
102+
->method('readTestData')
103+
->willReturn($testData);
104+
105+
$mockSuiteDataParser = $this->createMock(SuiteDataParser::class);
106+
$mockSuiteDataParser
107+
->method('readSuiteData')
108+
->willReturn($suiteData);
109+
110+
$instance = $this->createMock(ObjectManager::class);
111+
$instance
112+
->method('create')
113+
->will(
114+
$this->returnCallback(
115+
function ($clazz) use ($mockDataParser, $mockSuiteDataParser) {
116+
if ($clazz == TestDataParser::class) {
117+
return $mockDataParser;
118+
}
119+
120+
if ($clazz == SuiteDataParser::class) {
121+
return $mockSuiteDataParser;
122+
}
123+
124+
return null;
125+
}
126+
)
127+
);
128+
129+
$property = new ReflectionProperty(ObjectManager::class, 'instance');
130+
$property->setAccessible(true);
131+
$property->setValue($instance);
115132
}
116133
}

0 commit comments

Comments
 (0)