/** * Override to implement custom factory method for tested product. * * @param testedProductClass tested product class * @return tested product instance */ protected TestedProduct<?> createProduct(Class<? extends TestedProduct<?>> testedProductClass) { return TestedProductFactory.create(testedProductClass); }
/** * Creates a tested product, allowing the instance to choose its own default {@link Tester} and instance id * * @param testedProductClass The tested product class * @param <P> The tested product type * @return The created tested product */ public static <P extends TestedProduct<?>> P create(Class<P> testedProductClass) { return create(testedProductClass, getDefaultInstanceId(testedProductClass), null); }
Defaults defaults = getDefaultsAnnotation(testedProductClass); httpPort = defaults.httpPort(); contextPath = defaults.contextPath(); baseUrl = "http://" + Env.getVar("WEBDRIVER_TARGET_HOST", getLocalHostName()) + ":" + Env.getVar("WEBDRIVER_TARGET_PORT", String.valueOf(httpPort)) + contextPath; return create(testedProductClass, instance, testerFactory);
public static <T extends TestedProduct<?>> TestRule forTest(Object testInstance, Class<T> testedProductClass) { return new InstanceInjectionRules.InstanceStandaloneInjectionRule<T>(testInstance, memoize(fromFactory(testedProductClass))); }
private static String getDefaultInstanceId(Class<?> testedProductClass) { Defaults annotation = getDefaultsAnnotation(testedProductClass); return annotation.instanceId(); }
public static <T extends TestedProduct<?>> InjectingTestRule forTestClass(Class<T> productClass) { return new ClassInjectionRule<T>(memoize(fromFactory(productClass))); }
Product(String name, String defaultInstanceId, String defaultContextPath, int defaultHttpPort, String serverInfoUrl, boolean hasLicense, Class<? extends TestedProduct> testedProductClass) { this.defaultContextPath = defaultContextPath; this.defaultHttpPort = defaultHttpPort; this.defaultInstanceId = defaultInstanceId; this.hasLicense = hasLicense; this.name = name; this.serverInfoUrl = serverInfoUrl; this.testedProduct = TestedProductFactory.create(testedProductClass); }
@Override public T get() { return create(productClass); } };
@Override public void evaluate() throws Throwable { product = TestedProductFactory.create(testedProductClass); base.evaluate(); } };
/** * Creates a tested product, allowing the instance to choose its own default {@link Tester} and instance id * * @param testedProductClass The tested product class name * @return The created tested product */ @SuppressWarnings("unchecked") public static TestedProduct<?> create(String testedProductClass) { Class<TestedProduct<?>> clazz; try { clazz = (Class<TestedProduct<?>>) TestedProductFactory.class.getClassLoader().loadClass(testedProductClass); } catch (ClassNotFoundException e) { throw new IllegalArgumentException("Cannot find tested product class: " + testedProductClass); } return create(clazz); }
@Override protected TestedProduct<?> createProduct() { prepareProductInstanceConfiguration(); return TestedProductFactory.create(ConfluenceBrowserlessTestedProduct.class); }
@Override protected TestedProduct<?> createProduct() { prepareProductInstanceConfiguration(); return TestedProductFactory.create(ConfluenceTestedProduct.class); }
@Override protected TestedProduct<?> createProduct(Class<? extends TestedProduct<?>> testedProductClass) { final int port = startServer(); return TestedProductFactory.create(testedProductClass, createProductInstance(port), null); }
public final FixedConfluenceTestedProduct getConfluenceProduct() { FixedConfluenceTestedProduct product; product = TestedProductFactory.create(FixedConfluenceTestedProduct.class); product.getPageBinder().override(GeneralPage.class, ConfluenceGeneralPage.class); return product; } }
public JiraTestedProduct getJiraProduct() { JiraTestedProduct product = TestedProductFactory.create(JiraTestedProduct.class); product.backdoor().darkFeatures().enableForSite("jira.onboarding.feature.disabled"); product.getPageBinder().override(AdminHomePage.class, JiraAdminSummaryPage.class); product.getPageBinder().override(GeneralPage.class, JiraGeneralPage.class); product.getPageBinder().override(HomePage.class, DashboardPage.class); return product; } }