Home | History | Annotate | Download | only in methodselectors
      1 package test.methodselectors;
      2 
      3 import org.testng.Assert;
      4 import org.testng.ITestResult;
      5 import org.testng.TestListenerAdapter;
      6 import org.testng.TestNG;
      7 import org.testng.annotations.BeforeMethod;
      8 import org.testng.annotations.Test;
      9 import org.testng.collections.Lists;
     10 import org.testng.xml.XmlClass;
     11 import org.testng.xml.XmlMethodSelector;
     12 import org.testng.xml.XmlSuite;
     13 import org.testng.xml.XmlTest;
     14 
     15 import test.SimpleBaseTest;
     16 import testhelper.OutputDirectoryPatch;
     17 
     18 import java.util.Arrays;
     19 import java.util.List;
     20 
     21 public class MethodSelectorInSuiteTest  extends SimpleBaseTest{
     22 
     23   private TestListenerAdapter m_tla;
     24 
     25   @BeforeMethod
     26   public void setup() {
     27     m_tla = new TestListenerAdapter();
     28   }
     29 
     30   @Test
     31   public void programmaticXmlSuite() {
     32     TestNG tng = create();
     33     XmlSuite suite = new XmlSuite();
     34     XmlMethodSelector methodSelector = new XmlMethodSelector();
     35     methodSelector.setName("test.methodselectors.Test2MethodSelector");
     36     methodSelector.setPriority(-1);
     37     List<XmlMethodSelector> methodSelectors = Lists.newArrayList();
     38     methodSelectors.add(methodSelector);
     39     suite.setMethodSelectors(methodSelectors);
     40     XmlTest test = new XmlTest(suite);
     41     XmlClass testClass = new XmlClass(test.methodselectors.SampleTest.class);
     42     test.setXmlClasses(Arrays.asList(testClass));
     43     tng.setXmlSuites(Arrays.asList(suite));
     44     tng.addListener(m_tla);
     45     tng.run();
     46 
     47     validate(new String[] { "test2" });
     48   }
     49 
     50   @Test
     51   public void xmlXmlSuite() {
     52     TestNG tng = create();
     53     tng.setTestSuites(Arrays.asList(getPathToResource("methodselector-in-xml.xml")));
     54     tng.addListener(m_tla);
     55     tng.run();
     56 
     57     validate(new String[] { "test2" });
     58   }
     59 
     60   @Test
     61   public void fileOnCommandLine() {
     62     String[] args = new String[] {
     63         "-d", OutputDirectoryPatch.getOutputDirectory(),
     64         getPathToResource("methodselector-in-xml.xml") };
     65     TestNG.privateMain(args, m_tla);
     66 
     67     validate(new String[] { "test2" });
     68   }
     69 
     70   private void validate(String[] expectPassed) {
     71     List<ITestResult> passed = m_tla.getPassedTests();
     72     Assert.assertEquals(passed.size(), expectPassed.length);
     73     // doing this index based is probably not the best
     74     for (int i = 0; i < expectPassed.length; i++) {
     75       Assert.assertEquals(passed.get(i).getName(), expectPassed[i]);
     76     }
     77   }
     78 }
     79