io.vertx.ext.unit.TestOptions Maven / Gradle / Ivy
package io.vertx.ext.unit;
import io.vertx.codegen.annotations.DataObject;
import io.vertx.codegen.annotations.Fluent;
import io.vertx.core.json.JsonObject;
import io.vertx.ext.unit.report.ReportOptions;
import io.vertx.ext.unit.report.ReportingOptions;
import java.util.List;
/**
* Test execution options:
*
*
* - the {@code timeout} in milliseconds, the default value is 2 minutes
* - the {@code useEventLoop}
configures the event loop usage
*
* - {@code true} always runs with an event loop
* - {@code false} never runs with an event loop
* - {@code null} uses an event loop if there is one (provided by {@link io.vertx.core.Vertx#currentContext()})
* otherwise run without
*
*
* - the {@code reporters} is an array of reporter configurations
*
*
* @author Julien Viet
*/
@DataObject(generateConverter = true)
public class TestOptions extends ReportingOptions {
/**
* The default time out value in milliseconds: 2 minutes.
*/
public static final long DEFAULT_TIMEOUT = 2 * 60 * 1000;
/**
* The default value for using or not the event loop: {@code null}.
*/
public static final Boolean DEFAULT_USE_EVENT_LOOP = null;
private long timeout = DEFAULT_TIMEOUT;
private Boolean useEventLoop = DEFAULT_USE_EVENT_LOOP;
/**
* Create a new empty options, with the default time out and no reporters.
*/
public TestOptions() {
}
/**
* Copy constructor.
*
* @param other the options to copy
*/
public TestOptions(TestOptions other) {
super(other);
setTimeout(other.timeout);
setUseEventLoop(other.useEventLoop);
}
/**
* Create a new options from the specified json.
*
* @param json the json to create from
*/
public TestOptions(JsonObject json) {
super(json);
TestOptionsConverter.fromJson(json, this);
}
/**
* @return the current timeout in milliseconds.
*/
public long getTimeout() {
return timeout;
}
/**
* Set the test timeout.
*
* @param timeout the timeout value in milliseconds.
* @return a reference to this, so the API can be used fluently
*/
@Fluent
public TestOptions setTimeout(long timeout) {
this.timeout = timeout;
return this;
}
/**
* @return true if the execution should use an event loop when there is no one existing
*/
public Boolean isUseEventLoop() {
return useEventLoop;
}
/**
* Configure the execution to use an event loop when there is no one existing.
*
* @param useEventLoop the even loop usage
* @return a reference to this, so the API can be used fluently
*/
@Fluent
public TestOptions setUseEventLoop(Boolean useEventLoop) {
this.useEventLoop = useEventLoop;
return this;
}
@Override
public TestOptions addReporter(ReportOptions reportOptions) {
return (TestOptions) super.addReporter(reportOptions);
}
@Override
public TestOptions setReporters(List reporters) {
return (TestOptions) super.setReporters(reporters);
}
/**
* @return the json modelling the current configuration
*/
public JsonObject toJson() {
JsonObject json = super.toJson();
TestOptionsConverter.toJson(this, json);
return json;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy