package jp.vmi.selenium.selenese.inject; import com.google.inject.Guice; import com.google.inject.Injector; import jp.vmi.selenium.selenese.ErrorTestCase; import jp.vmi.selenium.selenese.ErrorTestSuite; import jp.vmi.selenium.selenese.InvalidSeleneseException; import jp.vmi.selenium.selenese.TestCase; import jp.vmi.selenium.selenese.TestSuite; import jp.vmi.selenium.selenese.command.CommandList; /** * Apply aspect. */ public class Binder { private static Injector injector = Guice.createInjector(new BindModule()); private Binder() { } /** * Replace customized BindModule. * * You need call this before instanciate TestCase/TestSuite. * * @param module BindModule instance. */ public static void replaceBindModule(BindModule module) { injector = Guice.createInjector(module); } /** * Constructs TestCase applied aspect. * * @param filename Selenese script file. * @param name test-case name. * @param baseURL base URL in script. * @return TestCase instance. */ public static TestCase newTestCase(String filename, String name, String baseURL) { return injector.getInstance(TestCase.class).initialize(filename, name, baseURL); } /** * Constructs TestSuite applied aspect. * * @param filename Selenese script file. * @param name test-case name. * @return TestSuite instance. */ public static TestSuite newTestSuite(String filename, String name) { return injector.getInstance(TestSuite.class).initialize(filename, name); } /** * Constructs ErrorTestCase applied aspect. * * @param filename Selenese script file. * @param e InvalidSeleneseException instance. * @return ErrorTestCase instance. */ public static ErrorTestCase newErrorTestCase(String filename, InvalidSeleneseException e) { ErrorTestCase errorTestCase = injector.getInstance(ErrorTestCase.class); return errorTestCase.initialize(filename, e); } /** * Constructs ErrorTestSuite applied aspect. * * @param filename Selenese script file. * @param e InvalidSeleneseException instance. * @return ErrorSuiteCase instance. */ public static ErrorTestSuite newErrorTestSuite(String filename, InvalidSeleneseException e) { ErrorTestSuite errorTestSuite = injector.getInstance(ErrorTestSuite.class); return errorTestSuite.initialize(filename, e); } /** * Constructs CommandList applied aspect. * * @return CommandList instance. */ public static CommandList newCommandList() { return injector.getInstance(CommandList.class); } }