package org.fluentlenium.adapter;
import org.fluentlenium.configuration.ConfigurationProperties.DriverLifecycle;
/**
* Defines mutations of parameters used for {@link SharedWebDriverContainer} method calls.
*/
public interface SharedMutator {
/**
* Effective parameters used by the test.
*
* @param <T> type of test
*/
class EffectiveParameters<T> {
private final Class<T> testClass;
private final String testName;
private final DriverLifecycle driverLifecycle;
/**
* Creates new effective parameters
*
* @param testClass test class
* @param testName test name
* @param driverLifecycle driver lifecycle
*/
public EffectiveParameters(Class<T> testClass, String testName, DriverLifecycle driverLifecycle) {
this.testClass = testClass;
this.testName = testName;
this.driverLifecycle = driverLifecycle;
}
/**
* Get the test class
*
* @return test class
*/
public Class<T> getTestClass() {
return testClass;
}
/**
* Get the test name
*
* @return test name
*/
public String getTestName() {
return testName;
}
/**
* Get the driver lifecycle
*
* @return driver lifecycle
*/
public DriverLifecycle getDriverLifecycle() {
return driverLifecycle;
}
}
/**
* Effective parameters to use for {@link SharedWebDriverContainer}.
*
* @param testClass test class
* @param testName test name
* @param driverLifecycle WebDriver lifecycle
* @param <T> type of the test class
* @return Effective parameters object.
*/
<T> EffectiveParameters<T> getEffectiveParameters(Class<T> testClass, String testName, DriverLifecycle driverLifecycle);
}