io.vertx.ext.unit.collect.EventBusCollector Maven / Gradle / Ivy
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
*/
@VertxGen
public interface EventBusCollector {
/**
* 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 {@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 {@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 {@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 {@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.
*
* @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 reporter) {
return new EventBusCollectorImpl(vertx, reporter);
}
/**
* 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> asMessageHandler();
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy