67 lines
1.8 KiB
Java
67 lines
1.8 KiB
Java
package com.baeldung;
|
|
|
|
import java.io.IOException;
|
|
import java.net.ServerSocket;
|
|
|
|
import org.junit.After;
|
|
import org.junit.Before;
|
|
import org.junit.BeforeClass;
|
|
import org.junit.Test;
|
|
import org.junit.runner.RunWith;
|
|
|
|
import com.baeldung.rest.RestServiceVerticle;
|
|
|
|
import io.vertx.core.DeploymentOptions;
|
|
import io.vertx.core.Vertx;
|
|
import io.vertx.core.json.JsonObject;
|
|
import io.vertx.ext.unit.Async;
|
|
import io.vertx.ext.unit.TestContext;
|
|
import io.vertx.ext.unit.junit.VertxUnitRunner;
|
|
|
|
@RunWith(VertxUnitRunner.class)
|
|
public class RestServiceVerticleUnitTest {
|
|
|
|
private Vertx vertx;
|
|
|
|
private int port = 8081;
|
|
|
|
@BeforeClass
|
|
public static void beforeClass() {
|
|
|
|
}
|
|
|
|
@Before
|
|
public void setup(TestContext testContext) throws IOException {
|
|
vertx = Vertx.vertx();
|
|
|
|
// Pick an available and random
|
|
ServerSocket socket = new ServerSocket(0);
|
|
port = socket.getLocalPort();
|
|
socket.close();
|
|
|
|
DeploymentOptions options = new DeploymentOptions().setConfig(new JsonObject().put("http.port", port));
|
|
|
|
vertx.deployVerticle(RestServiceVerticle.class.getName(), options, testContext.asyncAssertSuccess());
|
|
}
|
|
|
|
@After
|
|
public void tearDown(TestContext testContext) {
|
|
vertx.close(testContext.asyncAssertSuccess());
|
|
}
|
|
|
|
@Test
|
|
public void givenId_whenReceivedArticle_thenSuccess(TestContext testContext) {
|
|
final Async async = testContext.async();
|
|
|
|
vertx.createHttpClient()
|
|
.getNow(port, "localhost", "/api/baeldung/articles/article/12345", response -> {
|
|
response.handler(responseBody -> {
|
|
testContext.assertTrue(responseBody.toString()
|
|
.contains("\"id\" : \"12345\""));
|
|
async.complete();
|
|
});
|
|
});
|
|
}
|
|
|
|
}
|