blob: 58f463a41c64553bbe710286ca4e6591d934c524 [file] [log] [blame]
package test.objectfactory;
import org.testng.annotations.Test;
import org.testng.annotations.AfterMethod;
import org.testng.TestNG;
import org.testng.TestNGException;
import org.testng.xml.XmlSuite;
import org.testng.xml.XmlClass;
import test.TestHelper;
/**
* @author Hani Suleiman
* Date: Mar 6, 2007
* Time: 3:52:19 PM
*/
public class CustomFactoryTest
{
@Test
public void setFactoryOnTestNG() {
XmlSuite suite = TestHelper.createSuite("test.objectfactory.Simple", "objectfactory");
//suite.setObjectFactory(new LoggingObjectFactory());
TestNG tng = TestHelper.createTestNG(suite);
tng.setObjectFactory(LoggingObjectFactory.class);
tng.run();
assert LoggingObjectFactory.invoked == 1 : "Logging factory invoked " + LoggingObjectFactory.invoked + " times";
}
@AfterMethod
public void resetCount() {
LoggingObjectFactory.invoked = 0;
}
@Test
public void setFactoryOnSuite() {
XmlSuite suite = TestHelper.createSuite("test.objectfactory.Simple", "objectfactory");
suite.setObjectFactory(new LoggingObjectFactory());
TestNG tng = TestHelper.createTestNG(suite);
tng.run();
assert LoggingObjectFactory.invoked == 1 : "Logging factory invoked " + LoggingObjectFactory.invoked + " times";
}
@Test
public void setFactoryByAnnotation() {
XmlSuite suite = TestHelper.createSuite("test.objectfactory.Simple", "objectfactory");
suite.getTests().get(0).getXmlClasses().add(new XmlClass("test.objectfactory.MyFactoryFactory"));
TestNG tng = TestHelper.createTestNG(suite);
tng.run();
assert LoggingObjectFactory.invoked == 1 : "Logging factory invoked " + LoggingObjectFactory.invoked + " times";
}
@Test
public void factoryReceivesContext() {
XmlSuite suite = TestHelper.createSuite("test.objectfactory.Simple", "objectfactory");
suite.getTests().get(0).getXmlClasses().add(new XmlClass("test.objectfactory.ContextAwareFactoryFactory"));
TestNG tng = TestHelper.createTestNG(suite);
tng.run();
}
@Test(expectedExceptions = TestNGException.class)
public void setInvalidMethodFactoryByAnnotation() {
XmlSuite suite = TestHelper.createSuite("test.objectfactory.Simple", "objectfactory");
suite.getTests().get(0).getXmlClasses().add(new XmlClass("test.objectfactory.BadMethodFactoryFactory"));
TestNG tng = TestHelper.createTestNG(suite);
tng.run();
}
}