package test.dataprovider; import org.testng.Assert; import org.testng.annotations.BeforeClass; import org.testng.annotations.BeforeMethod; import org.testng.annotations.BeforeSuite; import org.testng.annotations.BeforeTest; import org.testng.annotations.DataProvider; import org.testng.annotations.Test; /** * Make sure that all before methods except beforeTestMethod are invoked * before DataProvider. * * Created on Jan 19, 2006 * @author <a href="mailto:cedric@beust.com">Cedric Beust</a> */ public class ConfigurationAndDataProvidersTest { private boolean m_beforeSuite = false; private boolean m_beforeTest = false; private boolean m_beforeClass = false; private boolean m_beforeTestMethod = false; @DataProvider(name = "test1") public Object[][] createData() { Assert.assertTrue(m_beforeSuite, "beforeSuite should have been invoked"); Assert.assertTrue(m_beforeTest, "beforeTest should have been invoked"); Assert.assertTrue(m_beforeClass, "beforeClass should have been invoked"); Assert.assertFalse(m_beforeTestMethod, "beforeMethod should not have been invoked"); return new Object[][] { new Object[] { "Test" } }; } @Test(dataProvider = "test1") public void verifyNames(Object p) { // do nothing } @BeforeSuite public void setUpSuite () { m_beforeSuite = true; ppp("BEFORE SUITE"); } @BeforeTest public void setUpTest() { m_beforeTest = true; ppp("BEFORE TEST"); } @BeforeClass public void setUpClass() { m_beforeClass = true; ppp("BEFORE TEST CLASS"); } @BeforeMethod public void setUp() { m_beforeTestMethod = true; ppp("BEFORE TEST METHOD"); } private static void ppp(String s) { if (false) { System.out.println("[ConfigurationAndDataProvidersTest] " + s); } } }