@@ -40,6 +40,60 @@ protected function setUp(): void
40
40
TestLoggingUtil::getInstance ()->setMockLoggingUtil ();
41
41
}
42
42
43
+ /**
44
+ * Tests generating a suite given a set of parsed test data.
45
+ *
46
+ * @return void
47
+ * @throws Exception
48
+ */
49
+ public function testGenerateTestgroupmembership (): void
50
+ {
51
+ $ suiteDataArrayBuilder = new SuiteDataArrayBuilder ();
52
+ $ mockSuiteData = $ suiteDataArrayBuilder
53
+ ->withName ('mockSuite ' )
54
+ ->includeGroups (['group1 ' ])
55
+ ->build ();
56
+ $ testDataArrayBuilder = new TestDataArrayBuilder ();
57
+ $ mockSimpleTest1 = $ testDataArrayBuilder
58
+ ->withName ('simpleTest1 ' )
59
+ ->withAnnotations (['group ' => [['value ' => 'group1 ' ]]])
60
+ ->withTestReference ("NonExistantTest " )
61
+ ->withTestActions ()
62
+ ->build ();
63
+ $ mockSimpleTest2 = $ testDataArrayBuilder
64
+ ->withName ('simpleTest2 ' )
65
+ ->withAnnotations (['group ' => [['value ' => 'group1 ' ]]])
66
+ ->withTestActions ()
67
+ ->build ();
68
+ $ mockSimpleTest3 = $ testDataArrayBuilder
69
+ ->withName ('simpleTest3 ' )
70
+ ->withAnnotations (['group ' => [['value ' => 'group1 ' ]]])
71
+ ->withTestActions ()
72
+ ->build ();
73
+ $ mockTestData = array_merge ($ mockSimpleTest1 , $ mockSimpleTest2 , $ mockSimpleTest3 );
74
+ $ this ->setMockTestAndSuiteParserOutput ($ mockTestData , $ mockSuiteData );
75
+
76
+ // Make manifest for split suites
77
+ $ suiteConfig = [
78
+ 'mockSuite ' => [
79
+ 'mockSuite_0_G ' => ['simpleTest1 ' , 'simpleTest2 ' ],
80
+ 'mockSuite_1_G ' => ['simpleTest3 ' ],
81
+ ],
82
+ ];
83
+ $ manifest = TestManifestFactory::makeManifest ('default ' , $ suiteConfig );
84
+
85
+ // parse and generate suite object with mocked data and manifest
86
+ $ mockSuiteGenerator = SuiteGenerator::getInstance ();
87
+ $ mockSuiteGenerator ->generateAllSuites ($ manifest );
88
+
89
+ // assert last split suite group generated
90
+ TestLoggingUtil::getInstance ()->validateMockLogStatement (
91
+ 'info ' ,
92
+ 'suite generated ' ,
93
+ ['suite ' => 'mockSuite_1_G ' , 'relative_path ' => '_generated ' . DIRECTORY_SEPARATOR . 'mockSuite_1_G ' ]
94
+ );
95
+ }
96
+
43
97
/**
44
98
* Tests generating a single suite given a set of parsed test data.
45
99
*
0 commit comments