package io.vertx.ext.unit.collect;
import io.vertx.codegen.annotations.GenIgnore;
import io.vertx.codegen.annotations.VertxGen;
import io.vertx.core.Handler;
import io.vertx.core.Vertx;
import io.vertx.core.eventbus.Message;
import io.vertx.core.eventbus.MessageConsumer;
import io.vertx.core.json.JsonObject;
import io.vertx.ext.unit.collect.impl.EventBusCollectorImpl;
import io.vertx.ext.unit.impl.TestCompletionImpl;
import io.vertx.ext.unit.report.Reporter;
import io.vertx.ext.unit.report.ReportingOptions;
import io.vertx.ext.unit.report.TestSuiteReport;
The event bus collector listen to events on the Vert.x event bus and translate them
into reports.
Author: Julien Viet
/**
* The event bus collector listen to events on the Vert.x event bus and translate them
* into reports.
*
* @author <a href="mailto:julien@julienviet.com">Julien Viet</a>
*/
@VertxGen
public interface EventBusCollector {
Json type
field value that signals a test suite begins, used as part of the test reporting protocol for the event bus. /**
* Json {@code type} field value that signals a test suite begins, used as part of the test reporting
* protocol for the event bus.
*/
String EVENT_TEST_SUITE_BEGIN = "testSuiteBegin";
Json type
field value that signals a test suite ends, used as part of the test reporting protocol for the event bus. /**
* Json {@code type} field value that signals a test suite ends, used as part of the test reporting
* protocol for the event bus.
*/
String EVENT_TEST_SUITE_END = "testSuiteEnd";
Json type
field value that reports a test suite error, used as part of the test reporting protocol for the event bus. /**
* Json {@code type} field value that reports a test suite error, used as part of the test reporting
* protocol for the event bus.
*/
String EVENT_TEST_SUITE_ERROR = "testSuiteError";
Json type
field value that signals a test case begins, used as part of the test reporting protocol for the event bus. /**
* Json {@code type} field value that signals a test case begins, used as part of the test reporting
* protocol for the event bus.
*/
String EVENT_TEST_CASE_BEGIN = "testCaseBegin";
Json type
field value that signals a test case ends, used as part of the test reporting protocol for the event bus. /**
* Json {@code type} field value that signals a test case ends, used as part of the test reporting
* protocol for the event bus.
*/
String EVENT_TEST_CASE_END = "testCaseEnd";
Create a message handler reporting with the specified options. The returned
message handler can be registered to an event bus.
Params: - options – the reporting options
Returns: the message handler
/**
* Create a message handler reporting with the specified options. The returned
* message handler can be registered to an event bus.
*
* @param options the reporting options
* @return the message handler
*/
static EventBusCollector create(Vertx vertx, ReportingOptions options) {
Reporter[] reporters = options.getReporters().stream().map(reportOptions -> Reporter.reporter(vertx, reportOptions)).toArray(Reporter[]::new);
TestCompletionImpl reporter = new TestCompletionImpl(reporters);
return new EventBusCollectorImpl(vertx, reporter);
}
static EventBusCollector create(Vertx vertx, Handler<TestSuiteReport> reporter) {
return new EventBusCollectorImpl(vertx, reporter);
}
Register the collector as a consumer of the event bus with the specified address.
Params: - address – the registration address
Returns: the subscribed message consumer
/**
* Register the collector as a consumer of the event bus with the specified address.
*
* @param address the registration address
* @return the subscribed message consumer
*/
MessageConsumer register(String address);
@GenIgnore
Handler<Message<JsonObject>> asMessageHandler();
}