package io.dropwizard.jersey.params; import io.dropwizard.jersey.errors.ErrorMessage; import io.dropwizard.util.Size; import org.junit.Test; import javax.ws.rs.WebApplicationException; import javax.ws.rs.core.Response; import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.catchThrowable; public class SizeParamTest { @Test public void parseSizeKilobytes() throws Exception { final SizeParam param = new SizeParam("10kb"); assertThat(param.get()) .isEqualTo(Size.kilobytes(10)); } @Test public void badValueThrowsException() throws Exception { final Throwable exn = catchThrowable(() -> new SizeParam("10 kelvins", "degrees")); assertThat(exn).isInstanceOf(WebApplicationException.class); final Response response = ((WebApplicationException) exn).getResponse(); assertThat(response.getStatus()).isEqualTo(400); assertThat((ErrorMessage) response.getEntity()) .isEqualTo(new ErrorMessage(400, "degrees is not a valid size.")); } }