package test.com.uaihebert.uaimockserver.validation.body;
import com.uaihebert.uaimockserver.runner.UaiMockServerRunner;
import com.uaihebert.uaimockserver.runner.UaiRunnerMockServerConfiguration;
import org.junit.Test;
import org.junit.runner.RunWith;
import javax.ws.rs.client.Client;
import javax.ws.rs.client.ClientBuilder;
import javax.ws.rs.client.Entity;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
import static org.junit.Assert.assertEquals;
@RunWith(UaiMockServerRunner.class)
@UaiRunnerMockServerConfiguration(configurationFile = "bodyJsonValidationTest.json")
public class JsonLenientBodyTest {
@Test
public void isRejectingWhenNoBody() {
final String url = "http://localhost:1234/uaiMockServer/jsonLenientBodyRequired";
final Client client = ClientBuilder.newClient();
final Response response = client.target(url).request().post(Entity.entity("", MediaType.TEXT_PLAIN_TYPE));
assertEquals(500, response.getStatus());
}
@Test
public void isRejectingWhenAllAttributesWithWrongValueInBody() {
final String url = "http://localhost:1234/uaiMockServer/jsonLenientBodyRequired";
final Client client = ClientBuilder.newClient();
final Response response = client.target(url).request().post(Entity.entity("{id:12,age:334}", MediaType.TEXT_PLAIN_TYPE));
assertEquals(500, response.getStatus());
}
@Test
public void isRejectingWhenOnlyOneCorrectValueInBody() {
final String url = "http://localhost:1234/uaiMockServer/jsonLenientBodyRequired";
final Client client = ClientBuilder.newClient();
final Response response = client.target(url).request().post(Entity.entity("{id:1,age:334}", MediaType.TEXT_PLAIN_TYPE));
assertEquals(500, response.getStatus());
}
@Test
public void isAcceptingTheCorrectValue() {
final String url = "http://localhost:1234/uaiMockServer/jsonLenientBodyRequired";
final Client client = ClientBuilder.newClient();
final Response response = client.target(url).request().post(Entity.entity("{id:1,age:33}", MediaType.TEXT_PLAIN_TYPE));
assertEquals(204, response.getStatus());
}
@Test
public void isAcceptingExtraValues() {
final String url = "http://localhost:1234/uaiMockServer/jsonLenientBodyRequired";
final Client client = ClientBuilder.newClient();
final Response response = client.target(url).request().post(Entity.entity("{id:1,age:33,aNumber:3333}", MediaType.TEXT_PLAIN_TYPE));
assertEquals(204, response.getStatus());
}
}