package io.dropwizard.jersey.params;
import com.codahale.metrics.MetricRegistry;
import io.dropwizard.jersey.AbstractJerseyTest;
import io.dropwizard.jersey.DropwizardResourceConfig;
import org.junit.Test;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.QueryParam;
import javax.ws.rs.core.Application;
import static org.assertj.core.api.Assertions.assertThat;
public class NonEmptyStringParamProviderTest extends AbstractJerseyTest {
@Override
protected Application configure() {
return DropwizardResourceConfig.forTesting(new MetricRegistry())
.register(NonEmptyStringParamResource.class);
}
@Test
public void shouldReturnDefaultMessageWhenNonExistent() {
String response = target("/non-empty/string").request().get(String.class);
assertThat(response).isEqualTo("Hello");
}
@Test
public void shouldReturnDefaultMessageWhenEmptyString() {
String response = target("/non-empty/string").queryParam("message", "").request().get(String.class);
assertThat(response).isEqualTo("Hello");
}
@Test
public void shouldReturnDefaultMessageWhenNull() {
String response = target("/non-empty/string").queryParam("message").request().get(String.class);
assertThat(response).isEqualTo("Hello");
}
@Test
public void shouldReturnMessageWhenSpecified() {
String response = target("/non-empty/string").queryParam("message", "Goodbye").request().get(String.class);
assertThat(response).isEqualTo("Goodbye");
}
@Path("/non-empty")
public static class NonEmptyStringParamResource {
@GET
@Path("/string")
public String getMessage(@QueryParam("message") NonEmptyStringParam message) {
return message.get().orElse("Hello");
}
}
}