package test;
import org.testng.Assert;
import org.testng.ITestNGListener;
import org.testng.TestNG;
import org.testng.annotations.Test;
import org.testng.xml.XmlSuite;
import org.testng.xml.XmlTest;
import test.sample.Sample1;
import java.util.logging.Handler;
import java.util.logging.Level;
import java.util.logging.Logger;
import static org.assertj.core.api.Assertions.assertThat;
public class Test1 extends SimpleBaseTest {
/**
* This constructor is package protected on purpose, to test that
* TestNG can still instantiate the class.
*/
Test1() {
}
@Test(groups = {"current"})
public void includedGroups() {
XmlSuite suite = createXmlSuite("Internal_suite");
XmlTest test = createXmlTest(suite, "Internal_test_failures_are_expected", Sample1.class);
Assert.assertEquals(test.getXmlClasses().size(), 1);
test.addIncludedGroup("odd");
TestNG tng = create(suite);
InvokedMethodNameListener listener = new InvokedMethodNameListener();
tng.addListener((ITestNGListener) listener);
tng.run();
assertThat(listener.getSucceedMethodNames()).containsExactly("method1", "method3");
assertThat(listener.getFailedMethodNames()).isEmpty();
}
@Test
public void groupsOfGroupsSimple() {
XmlSuite suite = createXmlSuite("Internal_suite");
XmlTest test = createXmlTest(suite, "Internal_test_failures_are_expected", Sample1.class);
Assert.assertEquals(test.getXmlClasses().size(), 1);
// should match all methods belonging to group "odd" and "even"
test.addIncludedGroup("evenodd");
test.addMetaGroup("evenodd", "even", "odd");
TestNG tng = create(suite);
InvokedMethodNameListener listener = new InvokedMethodNameListener();
tng.addListener((ITestNGListener) listener);
tng.run();
assertThat(listener.getSucceedMethodNames()).containsExactly("method1", "method2", "method3");
assertThat(listener.getFailedMethodNames()).isEmpty();
}
@Test
public void groupsOfGroupsWithIndirections() {
XmlSuite suite = createXmlSuite("Internal_suite");
XmlTest test = createXmlTest(suite, "Internal_test_failures_are_expected", Sample1.class);
test.addIncludedGroup("all");
test.addMetaGroup("all", "methods", "broken");
test.addMetaGroup("methods", "odd", "even");
test.addMetaGroup("broken", "broken");
TestNG tng = create(suite);
InvokedMethodNameListener listener = new InvokedMethodNameListener();
tng.addListener((ITestNGListener) listener);
tng.run();
assertThat(listener.getSucceedMethodNames()).containsExactly("method1", "broken", "method2", "method3");
assertThat(listener.getFailedMethodNames()).isEmpty();
}
@Test
public void groupsOfGroupsWithCycle() {
XmlSuite suite = createXmlSuite("Internal_suite");
XmlTest test = createXmlTest(suite, "Internal_test_failures_are_expected", Sample1.class);
test.addIncludedGroup("all");
test.addMetaGroup("all", "all2");
test.addMetaGroup("all2", "methods");
test.addMetaGroup("methods", "all");
TestNG tng = create(suite);
InvokedMethodNameListener listener = new InvokedMethodNameListener();
tng.addListener((ITestNGListener) listener);
tng.run();
assertThat(listener.getSucceedMethodNames()).isEmpty();
assertThat(listener.getFailedMethodNames()).isEmpty();
}
@Test
public void excludedGroups() {
XmlSuite suite = createXmlSuite("Internal_suite");
XmlTest test = createXmlTest(suite, "Internal_test_failures_are_expected", Sample1.class);
test.addExcludedGroup("odd");
TestNG tng = create(suite);
InvokedMethodNameListener listener = new InvokedMethodNameListener(true);
tng.addListener((ITestNGListener) listener);
tng.run();
assertThat(listener.getSucceedMethodNames()).containsExactly(
"broken", "method2",
"throwExpectedException1ShouldPass",
"throwExpectedException2ShouldPass"
);
assertThat(listener.getFailedMethodNames()).containsExactly(
"throwExceptionShouldFail", "verifyLastNameShouldFail"
);
}
@Test
public void regexp() {
XmlSuite suite = createXmlSuite("Internal_suite");
XmlTest test = createXmlTest(suite, "Internal_test_failures_are_expected", Sample1.class);
// should matches all methods belonging to group "odd"
test.addIncludedGroup("o.*");
TestNG tng = create(suite);
InvokedMethodNameListener listener = new InvokedMethodNameListener();
tng.addListener((ITestNGListener) listener);
tng.run();
assertThat(listener.getSucceedMethodNames()).containsExactly("method1", "method3");
assertThat(listener.getFailedMethodNames()).isEmpty();
}
@Test(groups = {"currentold"})
public void logger() {
Logger logger = Logger.getLogger("");
for (Handler handler : logger.getHandlers()) {
handler.setLevel(Level.WARNING);
handler.setFormatter(new org.testng.log.TextFormatter());
}
logger.setLevel(Level.SEVERE);
}
}