Skip to content

Commit b052e80

Browse files
Manjusha.SManjusha.S
Manjusha.S
authored and
Manjusha.S
committed
MQE-3096 : unit tests for GenerateTestFailedCommandTest and RunTestFailedCommandTest
1 parent 7c45556 commit b052e80

File tree

2 files changed

+206
-1
lines changed

2 files changed

+206
-1
lines changed

dev/tests/unit/Magento/FunctionalTestFramework/Console/GenerateTestFailedCommandTest.php

+127-1
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515

1616
class GenerateTestFailedCommandTest extends BaseGenerateCommandTest
1717
{
18-
public function testSingleTestNoSuite(): void
18+
public function testSingleTestWithNoSuite(): void
1919
{
2020
$testFileReturn = [
2121
"tests/functional/tests/MFTF/_generated/default/SingleTestNoSuiteTest.php:SingleTestNoSuiteTest"
@@ -38,4 +38,130 @@ public function testSingleTestNoSuite(): void
3838
$configuration = $stub->getFailedTestList("", "");
3939
$this->assertEquals($expectedConfiguration, $configuration);
4040
}
41+
42+
public function testMultipleTestsWithSuites(): void
43+
{
44+
$testFileReturn = [
45+
"tests/functional/tests/MFTF/_generated/SomeSpecificSuite/FirstTestSuiteTest.php:SingleTestSuiteTest",
46+
"tests/functional/tests/MFTF/_generated/SomeSpecificSuite/SecondTestNoSuiteTest.php:SingleTestNoSuiteTest",
47+
"tests/functional/tests/MFTF/_generated/SomeOtherSuite/SecondTestNoSuiteTest.php:SingleTestNoSuiteTest",
48+
];
49+
$expectedConfiguration = '{"tests":null,"suites":{"SomeSpecificSuite":["SingleTestSuiteTest",
50+
"SingleTestNoSuiteTest"],"SomeOtherSuite":["SingleTestNoSuiteTest"]}}';
51+
52+
// Create a stub for the SomeClass class.
53+
$stub = $this->getMockBuilder(GenerateTestFailedCommand::class)
54+
->onlyMethods(["readFailedTestFile", "writeFailedTestToFile"])
55+
->getMock();
56+
// Configure the stub.
57+
$stub
58+
->method('readFailedTestFile')
59+
->willReturn($testFileReturn);
60+
$stub
61+
->method('writeFailedTestToFile')
62+
->willReturn(null);
63+
64+
// Run the real code
65+
$configuration = $stub->getFailedTestList("", "");
66+
$this->assertEquals($expectedConfiguration, $configuration);
67+
}
68+
69+
public function testMultipleTestFailureWithNoSuites(): void
70+
{
71+
$testFileReturn = [
72+
"tests/functional/tests/MFTF/_generated/default/SingleTestNoSuiteTest.php:SingleTestNoSuiteTest",
73+
"tests/functional/tests/MFTF/_generated/default/FirstTestSuiteTest.php:SingleTestSuiteTest"
74+
];
75+
$expectedConfiguration = '{"tests":["SingleTestNoSuiteTest","SingleTestSuiteTest"],"suites":null}';
76+
77+
// Create a stub for the SomeClass class.
78+
$stub = $this->getMockBuilder(GenerateTestFailedCommand::class)
79+
->onlyMethods(["readFailedTestFile", "writeFailedTestToFile"])
80+
->getMock();
81+
// Configure the stub.
82+
$stub
83+
->method('readFailedTestFile')
84+
->willReturn($testFileReturn);
85+
$stub
86+
->method('writeFailedTestToFile')
87+
->willReturn(null);
88+
89+
// Run the real code
90+
$configuration = $stub->getFailedTestList("", "");
91+
$this->assertEquals($expectedConfiguration, $configuration);
92+
}
93+
94+
public function testSingleSuiteAndNoTest(): void
95+
{
96+
$testFileReturn = [
97+
"tests/functional/tests/MFTF/_generated/SomeSpecificSuite/",
98+
];
99+
$expectedConfiguration = '{"tests":null,"suites":{"SomeSpecificSuite":[null]}}';
100+
101+
// Create a stub for the SomeClass class.
102+
$stub = $this->getMockBuilder(GenerateTestFailedCommand::class)
103+
->onlyMethods(["readFailedTestFile", "writeFailedTestToFile"])
104+
->getMock();
105+
// Configure the stub.
106+
$stub
107+
->method('readFailedTestFile')
108+
->willReturn($testFileReturn);
109+
$stub
110+
->method('writeFailedTestToFile')
111+
->willReturn(null);
112+
113+
// Run the real code
114+
$configuration = $stub->getFailedTestList("", "");
115+
$this->assertEquals($expectedConfiguration, $configuration);
116+
}
117+
118+
public function testSingleSuiteWithTest(): void
119+
{
120+
$testFileReturn = [
121+
"tests/functional/tests/MFTF/_generated/SomeSpecificSuite/FirstTestSuiteTest.php:SingleTestSuiteTest",
122+
];
123+
$expectedConfiguration = '{"tests":null,"suites":{"SomeSpecificSuite":["SingleTestSuiteTest"]}}';
124+
125+
// Create a stub for the SomeClass class.
126+
$stub = $this->getMockBuilder(GenerateTestFailedCommand::class)
127+
->onlyMethods(["readFailedTestFile", "writeFailedTestToFile"])
128+
->getMock();
129+
// Configure the stub.
130+
$stub
131+
->method('readFailedTestFile')
132+
->willReturn($testFileReturn);
133+
$stub
134+
->method('writeFailedTestToFile')
135+
->willReturn(null);
136+
137+
// Run the real code
138+
$configuration = $stub->getFailedTestList("", "");
139+
$this->assertEquals($expectedConfiguration, $configuration);
140+
}
141+
142+
public function testMultipleSuitesWithNoTests(): void
143+
{
144+
$testFileReturn = [
145+
"tests/functional/tests/MFTF/_generated/SomeSpecificSuite/",
146+
"tests/functional/tests/MFTF/_generated/SomeSpecificSuite1/",
147+
148+
];
149+
$expectedConfiguration = '{"tests":null,"suites":{"SomeSpecificSuite":[null],"SomeSpecificSuite1":[null]}}';
150+
151+
// Create a stub for the SomeClass class.
152+
$stub = $this->getMockBuilder(GenerateTestFailedCommand::class)
153+
->onlyMethods(["readFailedTestFile", "writeFailedTestToFile"])
154+
->getMock();
155+
// Configure the stub.
156+
$stub
157+
->method('readFailedTestFile')
158+
->willReturn($testFileReturn);
159+
$stub
160+
->method('writeFailedTestToFile')
161+
->willReturn(null);
162+
163+
// Run the real code
164+
$configuration = $stub->getFailedTestList("", "");
165+
$this->assertEquals($expectedConfiguration, $configuration);
166+
}
41167
}

dev/tests/unit/Magento/FunctionalTestFramework/Console/RunTestFailedCommandTest.php

+79
Original file line numberDiff line numberDiff line change
@@ -50,4 +50,83 @@ private function invokePrivateMethod(&$object, $methodName, array $parameters =
5050
$method->setAccessible(true);
5151
return $method->invokeArgs($object, $parameters);
5252
}
53+
54+
public function testSingleTestNoSuite(): void
55+
{
56+
$testFailedFile = [
57+
"tests/functional/tests/MFTF/_generated/default/SingleTestNoSuiteTest.php:SingleTestNoSuiteTest"
58+
];
59+
60+
$expectedResult = [
61+
'tests/functional/tests/MFTF/_generated/default/SingleTestNoSuiteTest.php'
62+
];
63+
64+
$runFailed = new RunTestFailedCommand('run:failed');
65+
$filter = $this->invokePrivateMethod($runFailed, 'filterTestsForExecution', [$testFailedFile]);
66+
$this->assertEquals($expectedResult, $filter);
67+
}
68+
69+
public function testMultipleTestNoSuite(): void
70+
{
71+
$testFailedFile = [
72+
"tests/functional/tests/MFTF/_generated/default/SingleTestNoSuiteTest.php:SingleTestNoSuiteTest",
73+
"tests/functional/tests/MFTF/_generated/default/FirstTestSuiteTest.php:SingleTestSuiteTest"
74+
];
75+
76+
$expectedResult = [
77+
"tests/functional/tests/MFTF/_generated/default/SingleTestNoSuiteTest.php",
78+
"tests/functional/tests/MFTF/_generated/default/FirstTestSuiteTest.php"
79+
];
80+
81+
$runFailed = new RunTestFailedCommand('run:failed');
82+
$filter = $this->invokePrivateMethod($runFailed, 'filterTestsForExecution', [$testFailedFile]);
83+
$this->assertEquals($expectedResult, $filter);
84+
}
85+
86+
public function testSingleSuiteNoTest(): void
87+
{
88+
$testFailedFile = [
89+
"tests/functional/tests/MFTF/_generated/SomeSpecificSuite/FirstTestSuiteTest.php:SingleTestSuiteTest",
90+
];
91+
92+
$expectedResult = [
93+
"-g SomeSpecificSuite"
94+
];
95+
96+
$runFailed = new RunTestFailedCommand('run:failed');
97+
$filter = $this->invokePrivateMethod($runFailed, 'filterTestsForExecution', [$testFailedFile]);
98+
$this->assertEquals($expectedResult, $filter);
99+
}
100+
101+
public function testSingleSuiteAndTest(): void
102+
{
103+
$testFailedFile = [
104+
"tests/functional/tests/MFTF/_generated/SomeSpecificSuite/FirstTestSuiteTest.php:SingleTestSuiteTest",
105+
];
106+
$expectedResult = [
107+
"-g SomeSpecificSuite",
108+
];
109+
110+
$runFailed = new RunTestFailedCommand('run:failed');
111+
$filter = $this->invokePrivateMethod($runFailed, 'filterTestsForExecution', [$testFailedFile]);
112+
$this->assertEquals($expectedResult, $filter);
113+
}
114+
115+
public function testMultipleSuitesWithNoTest(): void
116+
{
117+
$testFailedFile = [
118+
"tests/functional/tests/MFTF/_generated/SomeSpecificSuite/",
119+
"tests/functional/tests/MFTF/_generated/SomeSpecificSuite1/",
120+
"tests/functional/tests/MFTF/_generated/SomeSpecificSuite2/"
121+
];
122+
$expectedResult = [
123+
"-g SomeSpecificSuite",
124+
"-g SomeSpecificSuite1",
125+
"-g SomeSpecificSuite2",
126+
];
127+
128+
$runFailed = new RunTestFailedCommand('run:failed');
129+
$filter = $this->invokePrivateMethod($runFailed, 'filterTestsForExecution', [$testFailedFile]);
130+
$this->assertEquals($expectedResult, $filter);
131+
}
53132
}

0 commit comments

Comments
 (0)