package org.jboss.resteasy.test.providers.jaxb.resource;
import org.jboss.resteasy.annotations.providers.jaxb.Wrapped;
import org.junit.Assert;
import javax.ws.rs.Consumes;
import javax.ws.rs.GET;
import javax.ws.rs.PUT;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.GenericEntity;
import javax.ws.rs.core.Response;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
@Path("/")
public class CollectionResource {
private static final String WRONG_REQUEST_ERROR_MSG = "Request contains wrong data";
@GET
@Path("array")
@Produces("application/xml")
@Wrapped
public CollectionCustomer[] getCustomers() {
CollectionCustomer[] custs = {new CollectionCustomer("bill"), new CollectionCustomer("monica")};
return custs;
}
@PUT
@Path("array")
@Consumes("application/xml")
public void putCustomers(@Wrapped CollectionCustomer[] customers) {
Assert.assertEquals(WRONG_REQUEST_ERROR_MSG, "bill", customers[0].getName());
Assert.assertEquals(WRONG_REQUEST_ERROR_MSG, "monica", customers[1].getName());
}
@GET
@Path("set")
@Produces("application/xml")
@Wrapped
public Set<CollectionCustomer> getCustomerSet() {
HashSet<CollectionCustomer> set = new HashSet<CollectionCustomer>();
set.add(new CollectionCustomer("bill"));
set.add(new CollectionCustomer("monica"));
return set;
}
@PUT
@Path("list")
@Consumes("application/xml")
public void putCustomers(@Wrapped List<CollectionCustomer> customers) {
Assert.assertEquals(WRONG_REQUEST_ERROR_MSG, "bill", customers.get(0).getName());
Assert.assertEquals(WRONG_REQUEST_ERROR_MSG, "monica", customers.get(1).getName());
}
@GET
@Path("list")
@Produces("application/xml")
@Wrapped
public List<CollectionCustomer> getCustomerList() {
ArrayList<CollectionCustomer> set = new ArrayList<CollectionCustomer>();
set.add(new CollectionCustomer("bill"));
set.add(new CollectionCustomer("monica"));
return set;
}
@GET
@Path("list/response")
@Produces("application/xml")
@Wrapped
public Response getCustomerListResponse() {
ArrayList<CollectionCustomer> set = new ArrayList<CollectionCustomer>();
set.add(new CollectionCustomer("bill"));
set.add(new CollectionCustomer("monica"));
GenericEntity<List<CollectionCustomer>> genericEntity = new GenericEntity<List<CollectionCustomer>>(set) {
};
return Response.ok(genericEntity).build();
}
}