blob: 04e693ad572b387651f3f30dfa75a447051abcc3 [file] [log] [blame]
package test.methodselectors;
import org.testng.Assert;
import org.testng.ITestResult;
import org.testng.TestListenerAdapter;
import org.testng.TestNG;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
import test.SimpleBaseTest;
import testhelper.OutputDirectoryPatch;
import java.util.ArrayList;
import java.util.List;
public class CommandLineTest extends SimpleBaseTest {
private String[] ARG_WITHOUT_CLASSES =
new String[]{
"-log", "0",
"-d", OutputDirectoryPatch.getOutputDirectory(),
"-methodselectors", "",
""
};
private String[] ARG_WITH_GROUPS =
new String[]{
"-log", "0",
"-d", OutputDirectoryPatch.getOutputDirectory(),
"-testclass", "test.methodselectors.SampleTest",
"-methodselectors", "",
"-groups", ""
};
private String[] ARG_WITHOUT_GROUPS =
new String[]{
"-log", "0",
"-d", OutputDirectoryPatch.getOutputDirectory(),
"-testclass", "test.methodselectors.SampleTest",
"-methodselectors", "",
};
private TestListenerAdapter tla;
@BeforeMethod
public void setup() {
ppp("setup()");
tla = new TestListenerAdapter();
}
@Test
public void commandLineNegativePriorityAllGroups() {
ppp("commandLineNegativePriorityAllGroups()");
ARG_WITHOUT_GROUPS[7] = "test.methodselectors.AllTestsMethodSelector:-1";
TestNG.privateMain(ARG_WITHOUT_GROUPS, tla);
String[] passed = {
"test1", "test2", "test3"
};
String[] failed = {
};
verifyTests("Passed", passed, tla.getPassedTests());
verifyTests("Failed", failed, tla.getFailedTests());
}
@Test
public void commandLineNegativePriorityGroup2() {
ppp("commandLineNegativePriorityGroup2()");
ARG_WITHOUT_GROUPS[7] = "test.methodselectors.Test2MethodSelector:-1";
TestNG.privateMain(ARG_WITHOUT_GROUPS, tla);
String[] passed = {
"test2"
};
String[] failed = {
};
verifyTests("Passed", passed, tla.getPassedTests());
verifyTests("Failed", failed, tla.getFailedTests());
}
@Test
public void commandLineLessThanPriorityTest1Test() {
ppp("commandLineLessThanPriorityTest1Test()");
ARG_WITH_GROUPS[7] = "test.methodselectors.Test2MethodSelector:5";
ARG_WITH_GROUPS[9] = "test1";
TestNG.privateMain(ARG_WITH_GROUPS, tla);
String[] passed = {
"test1", "test2"
};
String[] failed = {
};
verifyTests("Passed", passed, tla.getPassedTests());
verifyTests("Failed", failed, tla.getFailedTests());
}
@Test
public void commandLineGreaterThanPriorityTest1Test2() {
ppp("commandLineGreaterThanPriorityTest1Test2()");
ARG_WITH_GROUPS[7] = "test.methodselectors.Test2MethodSelector:15";
ARG_WITH_GROUPS[9] = "test1";
TestNG.privateMain(ARG_WITH_GROUPS, tla);
String[] passed = {
"test2"
};
String[] failed = {
};
verifyTests("Passed", passed, tla.getPassedTests());
verifyTests("Failed", failed, tla.getFailedTests());
}
@Test
public void commandLineLessThanPriorityAllTests() {
ppp("commandLineLessThanPriorityAllTests()");
ARG_WITH_GROUPS[7] = "test.methodselectors.AllTestsMethodSelector:5";
ARG_WITH_GROUPS[9] = "test1";
TestNG.privateMain(ARG_WITH_GROUPS, tla);
String[] passed = {
"test1", "test2", "test3"
};
String[] failed = {
};
verifyTests("Passed", passed, tla.getPassedTests());
verifyTests("Failed", failed, tla.getFailedTests());
}
@Test
public void commandLineMultipleSelectors() {
ppp("commandLineMultipleSelectors()");
ARG_WITH_GROUPS[7] = "test.methodselectors.NoTestSelector:7,test.methodselectors.Test2MethodSelector:5";
ARG_WITH_GROUPS[9] = "test1";
TestNG.privateMain(ARG_WITH_GROUPS, tla);
String[] passed = {
"test1", "test2"
};
String[] failed = {
};
verifyTests("Passed", passed, tla.getPassedTests());
verifyTests("Failed", failed, tla.getFailedTests());
}
@Test
public void commandLineNoTest1Selector() {
ppp("commandLineNoTest1Selector()");
ARG_WITHOUT_GROUPS[7] = "test.methodselectors.NoTest1MethodSelector:5";
TestNG.privateMain(ARG_WITHOUT_GROUPS, tla);
String[] passed = {
"test2", "test3"
};
String[] failed = {
};
verifyTests("Passed", passed, tla.getPassedTests());
verifyTests("Failed", failed, tla.getFailedTests());
}
@Test
public void commandLineTestWithXmlFile() {
ppp("commandLineTestWithXmlFile()");
ARG_WITHOUT_CLASSES[5] = "test.methodselectors.NoTest1MethodSelector:5";
ARG_WITHOUT_CLASSES[6] = getPathToResource("testng-methodselectors.xml");
TestNG.privateMain(ARG_WITHOUT_CLASSES, tla);
String[] passed = {
"test2", "test3"
};
String[] failed = {
};
verifyTests("Passed", passed, tla.getPassedTests());
verifyTests("Failed", failed, tla.getFailedTests());
}
private void verifyTests(String title, String[] expected, List<ITestResult> found) {
List<String> resultMethods = new ArrayList<>();
for( ITestResult result : found ) {
resultMethods.add( result.getName() );
}
Assert.assertEquals(resultMethods.size(), expected.length, "wrong number of " + title + " tests");
for(String e : expected) {
Assert.assertTrue(resultMethods.contains(e), "Expected to find method " + e + " in "
+ title + " but didn't find it.");
}
}
public static void ppp(String s) {
//System.out.println("[CommandLineTest] " + s);
}
}