Home | History | Annotate | Download | only in interleavedorder
      1 package test.interleavedorder;
      2 
      3 import org.testng.Assert;
      4 import org.testng.TestListenerAdapter;
      5 import org.testng.TestNG;
      6 import org.testng.annotations.BeforeTest;
      7 import org.testng.annotations.Test;
      8 
      9 import test.BaseTest;
     10 import testhelper.OutputDirectoryPatch;
     11 
     12 import java.util.ArrayList;
     13 import java.util.List;
     14 
     15 
     16 public class InterleavedInvocationTest extends BaseTest {
     17   public static List<String> LOG = new ArrayList<>();
     18 
     19   @BeforeTest
     20   public void beforeTest() {
     21     LOG = new ArrayList<>();
     22   }
     23 
     24   private void verifyInvocation(int number, List<String> log, int index) {
     25     Assert.assertEquals(log.get(index), "beforeTestChild" + number + "Class");
     26     Assert.assertTrue(("test1".equals(log.get(index + 1)) && "test2".equals(LOG.get(index + 2)))
     27         || ("test2".equals(LOG.get(index + 1)) && "test1".equals(LOG.get(index + 2))),
     28         "test methods were not invoked correctly");
     29     Assert.assertEquals(log.get(index + 3), "afterTestChild" + number + "Class");
     30   }
     31 
     32   @Test
     33   public void invocationOrder() {
     34     TestListenerAdapter tla = new TestListenerAdapter();
     35     TestNG testng = new TestNG();
     36     testng.setOutputDirectory(OutputDirectoryPatch.getOutputDirectory());
     37     testng.setTestClasses(new Class[] { TestChild1.class, TestChild2.class });
     38     testng.addListener(tla);
     39     testng.setVerbose(0);
     40     testng.run();
     41 
     42     Assert.assertEquals(LOG.size(), 8, LOG.toString());
     43     int number1 = "beforeTestChild1Class".equals(LOG.get(0)) ? 1 : 2;
     44     int number2 = number1 == 1 ? 2 : 1;
     45     verifyInvocation(number1, LOG, 0);
     46     verifyInvocation(number2, LOG, 4);
     47   }
     48 
     49   public static void ppp(String s) {
     50     System.out.println("[InterleavedTest] " + s);
     51   }
     52 }
     53