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 timeout in milliseconds, the default value is 2 minutes
  • the useEventLoop
  • configures the event loop usage
    • true always runs with an event loop
    • false never runs with an event loop
    • null uses an event loop if there is one (provided by Vertx.currentContext()) otherwise run without
  • the reporters is an array of reporter configurations
Author:Julien Viet
/** * Test execution options: * * <ul> * <li>the {@code timeout} in milliseconds, the default value is 2 minutes </li> * <li>the {@code useEventLoop}</li> configures the event loop usage * <ul> * <li>{@code true} always runs with an event loop</li> * <li>{@code false} never runs with an event loop</li> * <li>{@code null} uses an event loop if there is one (provided by {@link io.vertx.core.Vertx#currentContext()}) * otherwise run without</li> * </ul> * </li> * <li>the {@code reporters} is an array of reporter configurations</li> * </ul> * * @author <a href="mailto:julien@julienviet.com">Julien Viet</a> */
@DataObject(generateConverter = true) public class TestOptions extends ReportingOptions {
The default time out value in milliseconds: 2 minutes.
/** * 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: null.
/** * 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.
/** * Create a new empty options, with the default time out and no reporters. */
public TestOptions() { }
Copy constructor.
Params:
  • other – the options to copy
/** * 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.
Params:
  • json – the json to create from
/** * 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); }
Returns:the current timeout in milliseconds.
/** * @return the current timeout in milliseconds. */
public long getTimeout() { return timeout; }
Set the test timeout.
Params:
  • timeout – the timeout value in milliseconds.
Returns:a reference to this, so the API can be used fluently
/** * 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; }
Returns:true if the execution should use an event loop when there is no one existing
/** * @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.
Params:
  • useEventLoop – the even loop usage
Returns:a reference to this, so the API can be used fluently
/** * 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<ReportOptions> reporters) { return (TestOptions) super.setReporters(reporters); }
Returns:the json modelling the current configuration
/** * @return the json modelling the current configuration */
public JsonObject toJson() { JsonObject json = super.toJson(); TestOptionsConverter.toJson(this, json); return json; } }