1cd1e8eebd53bf95c43dc324c1d45ab25c65276c1Cédric Beustpackage test.factory;
2cd1e8eebd53bf95c43dc324c1d45ab25c65276c1Cédric Beust
3cd1e8eebd53bf95c43dc324c1d45ab25c65276c1Cédric Beustimport org.testng.Assert;
4cd1e8eebd53bf95c43dc324c1d45ab25c65276c1Cédric Beustimport org.testng.TestNG;
5cd1e8eebd53bf95c43dc324c1d45ab25c65276c1Cédric Beustimport org.testng.annotations.Test;
6cd1e8eebd53bf95c43dc324c1d45ab25c65276c1Cédric Beustimport org.testng.collections.Lists;
7cd1e8eebd53bf95c43dc324c1d45ab25c65276c1Cédric Beust
8cd1e8eebd53bf95c43dc324c1d45ab25c65276c1Cédric Beustimport test.SimpleBaseTest;
9cd1e8eebd53bf95c43dc324c1d45ab25c65276c1Cédric Beust
10cd1e8eebd53bf95c43dc324c1d45ab25c65276c1Cédric Beustimport java.util.List;
11cd1e8eebd53bf95c43dc324c1d45ab25c65276c1Cédric Beust
12cd1e8eebd53bf95c43dc324c1d45ab25c65276c1Cédric Beustpublic class FactoryInterleavingTest extends SimpleBaseTest {
13cd1e8eebd53bf95c43dc324c1d45ab25c65276c1Cédric Beust
14cd1e8eebd53bf95c43dc324c1d45ab25c65276c1Cédric Beust  public static List<Integer> LOG = Lists.newArrayList();
15cd1e8eebd53bf95c43dc324c1d45ab25c65276c1Cédric Beust
16cd1e8eebd53bf95c43dc324c1d45ab25c65276c1Cédric Beust  @Test
17cd1e8eebd53bf95c43dc324c1d45ab25c65276c1Cédric Beust  public void methodsShouldBeInterleaved() {
18cd1e8eebd53bf95c43dc324c1d45ab25c65276c1Cédric Beust    TestNG tng = create(FactoryInterleavingSampleFactory.class);
19cd1e8eebd53bf95c43dc324c1d45ab25c65276c1Cédric Beust    tng.run();
20cd1e8eebd53bf95c43dc324c1d45ab25c65276c1Cédric Beust    Integer[] valid1 = {
21cd1e8eebd53bf95c43dc324c1d45ab25c65276c1Cédric Beust        10, 11, 12, 13,
22cd1e8eebd53bf95c43dc324c1d45ab25c65276c1Cédric Beust        20, 21, 22, 23,
23cd1e8eebd53bf95c43dc324c1d45ab25c65276c1Cédric Beust    };
24cd1e8eebd53bf95c43dc324c1d45ab25c65276c1Cédric Beust
25cd1e8eebd53bf95c43dc324c1d45ab25c65276c1Cédric Beust    Integer[] valid2 = {
26cd1e8eebd53bf95c43dc324c1d45ab25c65276c1Cédric Beust        20, 21, 22, 23,
27cd1e8eebd53bf95c43dc324c1d45ab25c65276c1Cédric Beust        10, 11, 12, 13,
28cd1e8eebd53bf95c43dc324c1d45ab25c65276c1Cédric Beust    };
29cd1e8eebd53bf95c43dc324c1d45ab25c65276c1Cédric Beust    Integer[] logArray = LOG.toArray(new Integer[LOG.size()]);
3036830361d4d308b11b897bc7a330d75dcc761c61Cédric Beust    if (! logArray.equals(valid1)) {
3136830361d4d308b11b897bc7a330d75dcc761c61Cédric Beust      Assert.assertEquals(logArray, valid1);
3236830361d4d308b11b897bc7a330d75dcc761c61Cédric Beust    } else if (! logArray.equals(valid2)) {
3336830361d4d308b11b897bc7a330d75dcc761c61Cédric Beust      System.err.println(logArray + " " + valid2);
3436830361d4d308b11b897bc7a330d75dcc761c61Cédric Beust      Assert.assertEquals(logArray, valid2);
3536830361d4d308b11b897bc7a330d75dcc761c61Cédric Beust    }
36cd1e8eebd53bf95c43dc324c1d45ab25c65276c1Cédric Beust  }
37cd1e8eebd53bf95c43dc324c1d45ab25c65276c1Cédric Beust}
38