package org.eck;
import org.junit.Assert;
import org.junit.Test;
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;
import com.mashape.unirest.http.exceptions.UnirestException;
public class LocomotiveRequestTest extends AbstractLocomotiveTest {
@Test
public void testRequestQueryString() throws UnirestException {
locomotive.get("/calc", (req, resp) -> {
int sum = req.param("number1").asInteger()
+ req.param("number2").asInteger();
resp.send(String.valueOf(sum));
});
HttpResponse<String> response = Unirest.get(url("/calc"))
.queryString("number1", 1).queryString("number2", 2).asString();
Assert.assertEquals("3", response.getBody());
}
@Test
public void testRequestFormData() throws UnirestException {
locomotive.post("/calc", (req, resp) -> {
int sum = req.param("number1").asInteger()
+ req.param("number2").asInteger();
resp.send(String.valueOf(sum));
});
HttpResponse<String> response = Unirest.post(url("/calc"))
.field("number1", 1).field("number2", 2).asString();
Assert.assertEquals("3", response.getBody());
}
@Test
public void testRequestBody() throws UnirestException {
locomotive.post(
"/calc",
(req, resp) -> {
String[] values = req.body().split(",");
int sum = Integer.parseInt(values[0])
+ Integer.parseInt(values[1]);
resp.send(String.valueOf(sum));
});
HttpResponse<String> response = Unirest.post(url("/calc")).body("1,2")
.asString();
Assert.assertEquals("3", response.getBody());
}
@Test
public void testRequestRouteParams() throws UnirestException {
locomotive.post("/calc/sum/:number1/and/:number2", (req, resp) -> {
int sum = req.param("number1").asInteger()
+ req.param("number2").asInteger();
resp.send(String.valueOf(sum));
});
HttpResponse<String> response = Unirest.post(url("/calc/sum/{number1}/and/{number2}"))
.routeParam("number1", "1").routeParam("number2", "2").asString();
Assert.assertEquals("3", response.getBody());
}
@Test
public void testRequestHeaders() throws UnirestException {
locomotive.post("/calc", (req, resp) -> {
resp.send(req.header("my-header"));
});
HttpResponse<String> response = Unirest.post(url("/calc")).header("my-header", "Hello Header").asString();
Assert.assertEquals("Hello Header", response.getBody());
}
}