package io.dropwizard.jersey.params; import io.dropwizard.jersey.errors.ErrorMessage; import io.dropwizard.util.Duration; 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.failBecauseExceptionWasNotThrown; public class DurationParamTest { @Test public void parseDurationSeconds() throws Exception { final DurationParam param = new DurationParam("10 seconds"); assertThat(param.get()) .isEqualTo(Duration.seconds(10)); } @Test public void badValueThrowsException() throws Exception { try { new DurationParam("invalid", "param_name"); failBecauseExceptionWasNotThrown(WebApplicationException.class); } catch (WebApplicationException e) { final Response response = e.getResponse(); assertThat(response.getStatus()) .isEqualTo(400); ErrorMessage entity = (ErrorMessage) response.getEntity(); assertThat(entity.getCode()).isEqualTo(400); assertThat(entity.getMessage()) .isEqualTo("param_name is not a valid duration."); } } }