blob: 7f1ae9c2acb36c718aecb03e2bbd9c257e415bdf [file] [log] [blame]
package test.sample;
import org.testng.annotations.AfterClass;
import org.testng.annotations.AfterSuite;
import org.testng.annotations.Test;
/**
* This class is used to test invocationCountTest
*
* @author cbeust
*/
public class InvocationCountTest {
//
// Invocation test
//
private static int m_count = 0;
@AfterSuite(groups = {"invocationOnly"})
public void afterSuite() {
m_count = 0;
m_count2 = 0;
m_count3 = 0;
}
@Test(groups = { "invocationOnly"}, invocationCount = 10 )
public void tenTimesShouldSucceed() {
m_count++;
}
//
// Invocation + Success percentage test
// This method will work the first 8 times and fail after that, but overall
// the test should still pass because successPercentage = 80
//
private static int m_count2 = 0;
@Test(groups = { "successPercentageThatSucceedsOnly" },
invocationCount = 10, successPercentage = 80)
public void successPercentageShouldSucceed() {
if (m_count2 >= 8) {
throw new RuntimeException("Called more than eight times : " + m_count2);
}
m_count2++;
}
//
// Invocation + Success percentage test
// This method will work the first 8 times and fail after that. One of
// the failures will fall under the percentage tolerance but the next one
// will not.
//
private static int m_count3 = 0;
@Test(groups = { "successPercentageThatFailsOnly" },
invocationCount = 10, successPercentage = 90)
public void successPercentageShouldFail() {
if (m_count3>= 8) {
throw new RuntimeException("Called more than eight times : " + m_count3);
}
m_count3++;
}
@AfterClass(groups = { "invocationOnly"})
public void verify() {
assert 10 == m_count : "Method should have been invoked 10 times but was invoked "
+ m_count + " times";
}
public static void ppp(String s) {
System.out.println("[InvocationCount] " + s);
}
}