use of io.vertx.ext.web.validation.testutils.TestRequest in project vertx-web by vert-x3.
the class RouterBuilderIntegrationTest method testPathParameter.
@Test
public void testPathParameter(Vertx vertx, VertxTestContext testContext) {
Checkpoint checkpoint = testContext.checkpoint(2);
loadBuilderAndStartServer(vertx, VALIDATION_SPEC, testContext, routerBuilder -> {
routerBuilder.operation("showPetById").handler(routingContext -> {
RequestParameters params = routingContext.get("parsedParameters");
routingContext.response().setStatusMessage(params.pathParameter("petId").toString()).end();
});
}).onComplete(h -> {
testRequest(client, HttpMethod.GET, "/pets/3").expect(statusCode(200), statusMessage("3")).send(testContext, checkpoint);
testRequest(client, HttpMethod.GET, "/pets/three").expect(statusCode(400)).expect(badParameterResponse(ParameterProcessorException.ParameterProcessorErrorType.PARSING_ERROR, "petId", ParameterLocation.PATH)).send(testContext, checkpoint);
});
}
use of io.vertx.ext.web.validation.testutils.TestRequest in project vertx-web by vert-x3.
the class RouterBuilderIntegrationTest method testOctetStreamBody.
/**
* Test: binary_test
*/
@Test
public void testOctetStreamBody(Vertx vertx, VertxTestContext testContext) {
Buffer body = Buffer.buffer("Hello World!");
loadBuilderAndStartServer(vertx, VALIDATION_SPEC, testContext, routerBuilder -> {
routerBuilder.operation("binary_test").handler(routingContext -> {
RequestParameters params = routingContext.get("parsedParameters");
routingContext.response().setStatusCode(200).setStatusMessage("OK").putHeader("content-type", "application/octet-stream").end(params.body().getBuffer());
});
}).onComplete(h -> {
testRequest(client, HttpMethod.POST, "/binaryTest").expect(statusCode(200)).expect(bodyResponse(body, "application/octet-stream")).with(requestHeader("content-type", "application/octet-stream")).sendBuffer(body, testContext);
});
}
use of io.vertx.ext.web.validation.testutils.TestRequest in project vertx-web by vert-x3.
the class RouterBuilderIntegrationTest method testJsonBody.
@Test
public void testJsonBody(Vertx vertx, VertxTestContext testContext) {
Checkpoint checkpoint = testContext.checkpoint(4);
loadBuilderAndStartServer(vertx, VALIDATION_SPEC, testContext, routerBuilder -> {
routerBuilder.operation("jsonBodyTest").handler(routingContext -> {
RequestParameters params = routingContext.get("parsedParameters");
routingContext.response().setStatusCode(200).setStatusMessage("OK").putHeader("Content-Type", "application/json").end(params.body().getJsonObject().encode());
});
}).onComplete(h -> {
JsonObject valid = new JsonObject().put("id", "anId").put("values", new JsonArray().add(5).add(10).add(2));
testRequest(client, HttpMethod.POST, "/jsonBodyTest/sampleTest").expect(statusCode(200), jsonBodyResponse(valid)).sendJson(valid, testContext, checkpoint);
testRequest(client, HttpMethod.POST, "/jsonBodyTest/sampleTest").with(requestHeader("content-type", "application/json; charset=utf-8")).expect(statusCode(200), jsonBodyResponse(valid)).sendBuffer(valid.toBuffer(), testContext, checkpoint);
testRequest(client, HttpMethod.POST, "/jsonBodyTest/sampleTest").with(requestHeader("content-type", "application/superapplication+json")).expect(statusCode(200), jsonBodyResponse(valid)).sendBuffer(valid.toBuffer(), testContext, checkpoint);
JsonObject invalid = new JsonObject().put("id", "anId").put("values", new JsonArray().add(5).add("bla").add(2));
testRequest(client, HttpMethod.POST, "/jsonBodyTest/sampleTest").expect(statusCode(400)).expect(badBodyResponse(BodyProcessorException.BodyProcessorErrorType.VALIDATION_ERROR)).sendJson(invalid, testContext, checkpoint);
});
}
use of io.vertx.ext.web.validation.testutils.TestRequest in project vertx-web by vert-x3.
the class RouterBuilderIntegrationTest method mountMultipleHandlers.
@Test
public void mountMultipleHandlers(Vertx vertx, VertxTestContext testContext) {
Checkpoint checkpoint = testContext.checkpoint();
loadBuilderAndStartServer(vertx, "src/test/resources/specs/router_builder_test.yaml", testContext, routerBuilder -> {
routerBuilder.setOptions(HANDLERS_TESTS_OPTIONS);
routerBuilder.operation("listPets").handler(routingContext -> routingContext.put("message", "A").next()).handler(routingContext -> {
routingContext.put("message", routingContext.get("message") + "B");
routingContext.fail(500);
});
routerBuilder.operation("listPets").failureHandler(routingContext -> routingContext.put("message", routingContext.get("message") + "E").next()).failureHandler(routingContext -> routingContext.response().setStatusCode(500).setStatusMessage(routingContext.get("message")).end());
}).onComplete(h -> testRequest(client, HttpMethod.GET, "/pets").expect(statusCode(500), statusMessage("ABE")).send(testContext, checkpoint));
}
use of io.vertx.ext.web.validation.testutils.TestRequest in project vertx-web by vert-x3.
the class RouterBuilderIntegrationTest method testComplexMultipart.
@Timeout(2000)
@Test
public void testComplexMultipart(Vertx vertx, VertxTestContext testContext) {
Checkpoint checkpoint = testContext.checkpoint(2);
loadBuilderAndStartServer(vertx, VALIDATION_SPEC, testContext, routerBuilder -> {
routerBuilder.setOptions(HANDLERS_TESTS_OPTIONS);
routerBuilder.operation("complexMultipartRequest").handler(routingContext -> {
RequestParameters params = routingContext.get("parsedParameters");
if (params.body() == null) {
routingContext.response().setStatusCode(200).end();
} else {
routingContext.response().putHeader("content-type", "application/json").setStatusCode(200).end(params.body().getJsonObject().toBuffer());
}
});
}).onComplete(h -> {
JsonObject pet = new JsonObject();
pet.put("id", 14612);
pet.put("name", "Willy");
MultipartForm form = MultipartForm.create().textFileUpload("param1", "random.txt", "src/test/resources/random.txt", "text/plain").attribute("param2", pet.encode()).textFileUpload("param3", "random.csv", "src/test/resources/random.txt", "text/csv").attribute("param4", "1.2").attribute("param4", "5.2").attribute("param4", "6.2").attribute("param5", "2").binaryFileUpload("param1NotRealBinary", "random-file", "src/test/resources/random-file", "text/plain").binaryFileUpload("param1Binary", "random-file", "src/test/resources/random-file", "application/octet-stream");
JsonObject expected = new JsonObject().put("param2", pet).put("param4", new JsonArray().add(1.2).add(5.2).add(6.2)).put("param5", 2);
testRequest(client, HttpMethod.POST, "/multipart/complex").expect(statusCode(200)).expect(jsonBodyResponse(expected)).sendMultipartForm(form, testContext, checkpoint);
testRequest(client, HttpMethod.POST, "/multipart/complex").expect(statusCode(200)).send(testContext, checkpoint);
});
}
Aggregations