package org.jboss.resteasy.test.providers.jaxb.resource;
import org.jboss.resteasy.annotations.providers.jaxb.WrappedMap;
import org.junit.Assert;
import javax.ws.rs.Consumes;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import java.util.HashMap;
import java.util.Map;
@Path("/map")
public class MapResource {
@POST
@Produces("application/xml")
@Consumes("application/xml")
public Map<String, MapFoo> post(Map<String, MapFoo> map) {
Assert.assertEquals("The map from the request has unexpected content", 2, map.size());
Assert.assertNotNull("The map from the request has unexpected content", map.get("bill"));
Assert.assertNotNull("The map from the request has unexpected content", map.get("monica"));
Assert.assertEquals("The map from the request has unexpected content", map.get("bill").getName(), "bill");
Assert.assertEquals("The map from the request has unexpected content", map.get("monica").getName(), "monica");
return map;
}
@POST
@Produces("application/xml")
@Consumes("application/xml")
@Path("/wrapped")
@WrappedMap(namespace = "")
public Map<String, MapFoo> postWrapped(@WrappedMap(namespace = "") Map<String, MapFoo> map) {
Assert.assertEquals("The map from the request has unexpected content", 2, map.size());
Assert.assertNotNull("The map from the request has unexpected content", map.get("bill"));
Assert.assertNotNull("The map from the request has unexpected content", map.get("monica"));
Assert.assertEquals("The map from the request has unexpected content", map.get("bill").getName(), "bill");
Assert.assertEquals("The map from the request has unexpected content", map.get("monica").getName(), "monica");
return map;
}
@POST
@Produces("application/xml")
@Consumes("application/xml")
@Path("/integerFoo")
public Map<Integer, MapFoo> postIntegerFoo(Map<String, MapFoo> map) {
Assert.assertEquals("The map from the request has unexpected content", 2, map.size());
Assert.assertNotNull("The map from the request has unexpected content", map.get("1"));
Assert.assertNotNull("The map from the request has unexpected content", map.get("2"));
Assert.assertEquals("The map from the request has unexpected content", map.get("1").getName(), "bill");
Assert.assertEquals("The map from the request has unexpected content", map.get("2").getName(), "monica");
Map<Integer, MapFoo> result = new HashMap<Integer, MapFoo>();
for (Map.Entry<String, MapFoo> e : map.entrySet()) {
result.put(Integer.valueOf(e.getKey()), e.getValue());
}
return result;
}
}