|
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 | + * @throws Exception |
30 | 27 | */
|
31 |
| - public function testGetSuiteObject() |
| 28 | + public function testGetSuiteObject(): void |
32 | 29 | {
|
33 | 30 | $suiteDataArrayBuilder = new SuiteDataArrayBuilder();
|
34 | 31 | $mockData = $suiteDataArrayBuilder
|
@@ -82,35 +79,53 @@ public function testGetSuiteObject()
|
82 | 79 | * Function used to set mock for parser return and force init method to run between tests.
|
83 | 80 | *
|
84 | 81 | * @param array $testData
|
85 |
| - * @throws \Exception |
| 82 | + * @param array $suiteData |
| 83 | + * |
| 84 | + * @throws Exception |
86 | 85 | */
|
87 |
| - private function setMockTestAndSuiteParserOutput($testData, $suiteData) |
| 86 | + private function setMockTestAndSuiteParserOutput(array $testData, array $suiteData): void |
88 | 87 | {
|
89 | 88 | // clear test object handler value to inject parsed content
|
90 |
| - $property = new \ReflectionProperty(TestObjectHandler::class, 'testObjectHandler'); |
| 89 | + $property = new ReflectionProperty(TestObjectHandler::class, 'testObjectHandler'); |
91 | 90 | $property->setAccessible(true);
|
92 | 91 | $property->setValue(null);
|
93 | 92 |
|
94 | 93 | // clear suite object handler value to inject parsed content
|
95 |
| - $property = new \ReflectionProperty(SuiteObjectHandler::class, 'instance'); |
| 94 | + $property = new ReflectionProperty(SuiteObjectHandler::class, 'instance'); |
96 | 95 | $property->setAccessible(true);
|
97 | 96 | $property->setValue(null);
|
98 | 97 |
|
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); |
115 | 130 | }
|
116 | 131 | }
|
0 commit comments