package com.englishtown.vertx.jersey.integration;
import com.englishtown.promises.Promise;
import com.englishtown.vertx.promises.WhenHttpClient;
import com.englishtown.vertx.promises.WhenVertx;
import io.vertx.core.DeploymentOptions;
import io.vertx.core.Vertx;
import io.vertx.core.json.JsonObject;
/**
* DI helper for integration tests
*/
public interface TestServiceLocator {
void init(Vertx vertx);
void tearDown();
default JsonObject getConfig() {
return ConfigUtils.loadConfig();
}
<T> T getService(Class<T> clazz);
default WhenHttpClient getWhenHttpClient() {
return getService(WhenHttpClient.class);
}
default WhenVertx getWhenVertx() {
return getService(WhenVertx.class);
}
Promise<String> deployJerseyVerticle();
default Promise<String> deployJerseyVerticle(String identifier) {
DeploymentOptions options = new DeploymentOptions().setConfig(getConfig());
return getWhenVertx().deployVerticle(identifier, options);
}
}