|
3 | 3 | * Copyright © Magento, Inc. All rights reserved. |
4 | 4 | * See COPYING.txt for license details. |
5 | 5 | */ |
| 6 | +declare(strict_types=1); |
| 7 | + |
6 | 8 | namespace tests\unit\Magento\FunctionalTestFramework\Suite\Handlers; |
7 | 9 |
|
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; |
11 | 12 | use Magento\FunctionalTestingFramework\Suite\Handlers\SuiteObjectHandler; |
12 | 13 | use Magento\FunctionalTestingFramework\Suite\Parsers\SuiteDataParser; |
13 | 14 | use Magento\FunctionalTestingFramework\Test\Handlers\TestObjectHandler; |
14 | 15 | use Magento\FunctionalTestingFramework\Test\Parsers\TestDataParser; |
| 16 | +use ReflectionProperty; |
15 | 17 | use tests\unit\Util\MagentoTestCase; |
16 | 18 | use tests\unit\Util\SuiteDataArrayBuilder; |
17 | 19 | use tests\unit\Util\TestDataArrayBuilder; |
18 | | -use tests\unit\Util\MockModuleResolverBuilder; |
19 | 20 |
|
20 | 21 | class SuiteObjectHandlerTest extends MagentoTestCase |
21 | 22 | { |
22 | | - public function setUp(): void |
23 | | - { |
24 | | - $resolverMock = new MockModuleResolverBuilder(); |
25 | | - $resolverMock->setup(); |
26 | | - } |
27 | | - |
28 | 23 | /** |
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 |
30 | 28 | */ |
31 | | - public function testGetSuiteObject() |
| 29 | + public function testGetSuiteObject(): void |
32 | 30 | { |
33 | 31 | $suiteDataArrayBuilder = new SuiteDataArrayBuilder(); |
34 | 32 | $mockData = $suiteDataArrayBuilder |
@@ -82,35 +80,54 @@ public function testGetSuiteObject() |
82 | 80 | * Function used to set mock for parser return and force init method to run between tests. |
83 | 81 | * |
84 | 82 | * @param array $testData |
85 | | - * @throws \Exception |
| 83 | + * @param array $suiteData |
| 84 | + * |
| 85 | + * @return void |
| 86 | + * @throws Exception |
86 | 87 | */ |
87 | | - private function setMockTestAndSuiteParserOutput($testData, $suiteData) |
| 88 | + private function setMockTestAndSuiteParserOutput(array $testData, array $suiteData): void |
88 | 89 | { |
89 | 90 | // clear test object handler value to inject parsed content |
90 | | - $property = new \ReflectionProperty(TestObjectHandler::class, 'testObjectHandler'); |
| 91 | + $property = new ReflectionProperty(TestObjectHandler::class, 'testObjectHandler'); |
91 | 92 | $property->setAccessible(true); |
92 | 93 | $property->setValue(null); |
93 | 94 |
|
94 | 95 | // clear suite object handler value to inject parsed content |
95 | | - $property = new \ReflectionProperty(SuiteObjectHandler::class, 'instance'); |
| 96 | + $property = new ReflectionProperty(SuiteObjectHandler::class, 'instance'); |
96 | 97 | $property->setAccessible(true); |
97 | 98 | $property->setValue(null); |
98 | 99 |
|
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); |
115 | 132 | } |
116 | 133 | } |
0 commit comments