8 use AspectMock\Test as AspectMock;
32 AspectMock::double(SuiteGenerator::class, [
33 'clearPreviousSessionConfigEntries' =>
null,
34 'appendEntriesToConfig' =>
null 54 $mockData = $suiteDataArrayBuilder
55 ->withName(
'basicTestSuite')
58 ->includeTests([
'simpleTest'])
59 ->includeGroups([
'group1'])
63 $mockSimpleTest = $testDataArrayBuilder
64 ->withName(
'simpleTest')
68 $mockTestData = [
'tests' => array_merge($mockSimpleTest)];
69 $this->setMockTestAndSuiteParserOutput($mockTestData, $mockData);
73 $mockSuiteGenerator->generateSuite(
"basicTestSuite");
79 [
'suite' =>
'basicTestSuite',
'relative_path' =>
"_generated" . DIRECTORY_SEPARATOR .
"basicTestSuite"]
90 $mockData = $suiteDataArrayBuilder
91 ->withName(
'basicTestSuite')
94 ->includeTests([
'simpleTest'])
95 ->includeGroups([
'group1'])
99 $mockSimpleTest = $testDataArrayBuilder
100 ->withName(
'simpleTest')
104 $mockTestData = [
'tests' => array_merge($mockSimpleTest)];
105 $this->setMockTestAndSuiteParserOutput($mockTestData, $mockData);
108 $exampleTestManifest =
new DefaultTestManifest([],
"sample" . DIRECTORY_SEPARATOR .
"path");
110 $mockSuiteGenerator->generateAllSuites($exampleTestManifest);
116 [
'suite' =>
'basicTestSuite',
'relative_path' =>
"_generated" . DIRECTORY_SEPARATOR .
"basicTestSuite"]
127 $mockData = $suiteDataArrayBuilder
128 ->withName(
'basicTestSuite')
133 $mockTestData =
null;
134 $this->setMockTestAndSuiteParserOutput($mockTestData, $mockData);
137 $this->expectExceptionMessage(
"Suites must not be empty. Suite: \"basicTestSuite\"");
141 $mockSuiteGenerator->generateSuite(
"basicTestSuite");
150 private function setMockTestAndSuiteParserOutput($testData, $suiteData)
152 $property = new \ReflectionProperty(SuiteGenerator::class,
'SUITE_GENERATOR_INSTANCE');
153 $property->setAccessible(
true);
154 $property->setValue(
null);
157 $property = new \ReflectionProperty(TestObjectHandler::class,
'testObjectHandler');
158 $property->setAccessible(
true);
159 $property->setValue(
null);
162 $property = new \ReflectionProperty(SuiteObjectHandler::class,
'SUITE_OBJECT_HANLDER_INSTANCE');
163 $property->setAccessible(
true);
164 $property->setValue(
null);
166 $mockDataParser = AspectMock::double(TestDataParser::class, [
'readTestData' => $testData])->make();
167 $mockSuiteDataParser = AspectMock::double(SuiteDataParser::class, [
'readSuiteData' => $suiteData])->make();
168 $mockGroupClass = AspectMock::double(
169 GroupClassGenerator::class,
170 [
'generateGroupClass' =>
'namespace']
172 $mockSuiteClass = AspectMock::double(SuiteGenerator::class, [
'generateRelevantGroupTests' =>
null])->make();
173 $instance = AspectMock::double(
174 ObjectManager::class,
175 [
'create' =>
function ($clazz) use (
177 $mockSuiteDataParser,
181 if ($clazz == TestDataParser::class) {
182 return $mockDataParser;
184 if ($clazz == SuiteDataParser::class) {
185 return $mockSuiteDataParser;
187 if ($clazz == GroupClassGenerator::class) {
188 return $mockGroupClass;
190 if ($clazz == SuiteGenerator::class) {
191 return $mockSuiteClass;
196 AspectMock::double(ObjectManagerFactory::class, [
'getObjectManager' => $instance]);
198 $property = new \ReflectionProperty(SuiteGenerator::class,
'groupClassGenerator');
199 $property->setAccessible(
true);
200 $property->setValue($instance, $instance);
209 parent::tearDownAfterClass();
static setUpBeforeClass()
static tearDownAfterClass()