package io.dropwizard.java8.testing.junit;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.QueryParam;
import javax.ws.rs.core.MediaType;
import java.util.Optional;
@Path("/optional")
public class TestResource {
interface Check {
public void check(Optional<String> paramOne, Optional<Long> paramTwo);
}
private final Check check;
public TestResource(Check check) {
this.check = check;
}
@GET
@Path("/params")
@Produces(MediaType.APPLICATION_JSON)
public String responseOk(@QueryParam("p1") Optional<String> paramOne,
@QueryParam("p2") Optional<Long> paramTwo) {
check.check(paramOne, paramTwo);
return "{}";
}
@GET()
@Path("/some")
@Produces(MediaType.APPLICATION_JSON)
public Optional<String> optional_some() {
return Optional.of("{}");
}
@GET()
@Path("/empty")
@Produces(MediaType.APPLICATION_JSON)
public Optional<String> optional_empty() {
return Optional.empty();
}
}