01: package test.retryAnalyzer;
02:
03: import org.testng.Assert;
04: import org.testng.util.RetryAnalyzerCount;
05: import org.testng.ITestResult;
06: import org.testng.annotations.DataProvider;
07: import org.testng.annotations.Test;
08:
09: /**
10: * retryAnalyzer parameter unit tests.
11: * @author tocman@gmail.com (Jeremie Lenfant-Engelmann)
12: *
13: */
14: public final class RetryAnalyzerTest extends RetryAnalyzerCount {
15:
16: private static int r = 1;
17: private static int r2 = 1;
18: private static int r3 = 1;
19: private static int value = 42;
20:
21: public RetryAnalyzerTest() {
22: setCount(2);
23: }
24:
25: @Test(retryAnalyzer=RetryAnalyzerTest.class)
26: public void testAnnotation() {
27: Assert.assertTrue(true);
28: }
29:
30: @Test(retryAnalyzer=RetryAnalyzerTest.class)
31: public void testAnnotationWithOneRetry() {
32: if (r == 1) {
33: r--;
34: Assert.assertTrue(false);
35: }
36: if (r == 0) {
37: Assert.assertTrue(true);
38: }
39: }
40:
41: @DataProvider(name="dataProvider")
42: private Object[][] dataProvider() {
43: return new Object[][] { { 1, false }, { 0, true }, { 0, true },
44: { 1, false } };
45: }
46:
47: @DataProvider(name="dataProvider2")
48: private Object[][] dataProvider2() {
49: value = 42;
50:
51: return new Object[][] { { true }, { true } };
52: }
53:
54: @Test(retryAnalyzer=RetryAnalyzerTest.class,dataProvider="dataProvider")
55: public void testAnnotationWithDataProvider(int paf, boolean test) {
56: if (paf == 1 && test == false) {
57: if (r2 >= 1) {
58: r2--;
59: Assert.assertTrue(false);
60: } else if (r2 == 0) {
61: Assert.assertTrue(true);
62: }
63: } else if (paf == 0 || test == true) {
64: Assert.assertTrue(true);
65: }
66: }
67:
68: @Test(retryAnalyzer=RetryAnalyzerTest.class,dataProvider="dataProvider2")
69: public void testAnnotationWithDataProviderAndRecreateParameters(
70: boolean dummy) {
71: if (r3 == 1) {
72: this .value = 0;
73: r3--;
74: Assert.assertTrue(false);
75: } else if (r3 == 0) {
76: Assert.assertEquals(this .value, 42);
77: }
78: }
79:
80: public boolean retryMethod(ITestResult result) {
81: return true;
82: }
83: }
|