Home | History | Annotate | Download | only in parameters
      1 package test.parameters;
      2 
      3 import org.testng.TestListenerAdapter;
      4 import org.testng.TestNG;
      5 import org.testng.annotations.Test;
      6 import org.testng.xml.XmlClass;
      7 import org.testng.xml.XmlInclude;
      8 import org.testng.xml.XmlSuite;
      9 import org.testng.xml.XmlTest;
     10 
     11 import test.SimpleBaseTest;
     12 
     13 import java.util.Arrays;
     14 
     15 public class ParameterOverrideTest extends SimpleBaseTest {
     16   enum S {
     17     FAIL,
     18     PASS_TEST,
     19     PASS_CLASS,
     20     PASS_INCLUDE,
     21   };
     22 
     23   @Test
     24   public void testOverrideSuite() {
     25     privateTestOverrideSuite(S.PASS_TEST);
     26   }
     27 
     28   @Test(expectedExceptions = AssertionError.class)
     29   public void testOverrideSuiteNegative() {
     30     privateTestOverrideSuite(S.FAIL);
     31   }
     32 
     33   @Test
     34   public void classOverrideSuite() {
     35     privateTestOverrideSuite(S.PASS_CLASS);
     36   }
     37 
     38   @Test(expectedExceptions = AssertionError.class)
     39   public void classOverrideSuiteNegative() {
     40     privateTestOverrideSuite(S.FAIL);
     41   }
     42 
     43   @Test
     44   public void includeOverrideClass() {
     45     privateTestOverrideSuite(S.PASS_INCLUDE);
     46   }
     47 
     48   @Test(expectedExceptions = AssertionError.class)
     49   public void includeOverrideClassNegative() {
     50     privateTestOverrideSuite(S.FAIL);
     51   }
     52 
     53   public void privateTestOverrideSuite(S status) {
     54     XmlSuite s = createXmlSuite("s");
     55     s.getParameters().put("a", "Incorrect");
     56     s.getParameters().put("InheritedFromSuite", "InheritedFromSuite");
     57     XmlTest t = createXmlTest(s, "t");
     58     t.getLocalParameters().put("InheritedFromTest", "InheritedFromTest");
     59     if (status == S.PASS_TEST) {
     60       t.getLocalParameters().put("a", "Correct");
     61     }
     62 
     63     {
     64       XmlClass c1 = new XmlClass(Override1Sample.class.getName());
     65       c1.getLocalParameters().put("InheritedFromClass", "InheritedFromClass");
     66       if (status == S.PASS_CLASS) {
     67         c1.getLocalParameters().put("a", "Correct");
     68       }
     69       t.getXmlClasses().add(c1);
     70 
     71       for (String method : new String[] { "f", "g" }) {
     72         XmlInclude include1 = new XmlInclude(method);
     73         if (status == S.PASS_INCLUDE) {
     74           include1.getLocalParameters().put("a", "Correct");
     75         }
     76         include1.setXmlClass(c1);
     77         c1.getIncludedMethods().add(include1);
     78       }
     79 
     80     }
     81 
     82     TestNG tng = create();
     83     tng.setXmlSuites(Arrays.asList(s));
     84     TestListenerAdapter tla = new TestListenerAdapter();
     85     tng.addListener(tla);
     86 //    System.out.println(s.toXml());
     87 //    tng.setVerbose(10);
     88     tng.run();
     89 
     90     assertTestResultsEqual(tla.getPassedTests(), Arrays.asList("f", "g"));
     91   }
     92 }
     93