package io.dropwizard.jersey.params;
import io.dropwizard.jersey.errors.ErrorMessage;
import org.junit.Test;
import javax.ws.rs.WebApplicationException;
import javax.ws.rs.core.Response;
import java.util.UUID;
import static org.assertj.core.api.Assertions.assertThat;
import static org.assertj.core.api.Assertions.failBecauseExceptionWasNotThrown;
public class UUIDParamTest {
@Test
public void aUUIDStringReturnsAUUIDObject() throws Exception {
final String uuidString = "067e6162-3b6f-4ae2-a171-2470b63dff00";
final UUID uuid = UUID.fromString(uuidString);
final UUIDParam param = new UUIDParam(uuidString);
assertThat(param.get())
.isEqualTo(uuid);
}
@Test
@SuppressWarnings("ResultOfObjectAllocationIgnored")
public void aNonUUIDThrowsAnException() throws Exception {
try {
new UUIDParam("foo");
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("\"foo\" is not a UUID.");
}
}
}