package org.jboss.resteasy.test.form.resource;
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 javax.ws.rs.QueryParam;
import javax.ws.rs.core.MultivaluedMap;
import javax.ws.rs.core.StreamingOutput;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
@Path("/")
public class FormUrlEncodedResource {
@Path("/simple")
@POST
public StreamingOutput post(@QueryParam("hello") String abs, InputStream entityStream) throws IOException {
Assert.assertNull(abs);
final InputStream is = entityStream;
return new StreamingOutput() {
public void write(OutputStream output) throws IOException {
int c;
while ((c = is.read()) != -1) {
output.write(c);
}
}
};
}
@Path("/form")
@POST
@Produces("application/x-www-form-urlencoded")
@Consumes("application/x-www-form-urlencoded")
public MultivaluedMap<String, String> post(MultivaluedMap<String, String> form)
{
Assert.assertEquals("world", form.getFirst("hello"));
return form;
}
@Path("/form/twoparams")
@POST
@Produces("application/x-www-form-urlencoded")
@Consumes("application/x-www-form-urlencoded")
public MultivaluedMap<String, String> post2Parameters(MultivaluedMap<String, String> form)
{
Assert.assertEquals(2, form.size());
Assert.assertEquals("world", form.getFirst("hello"));
Assert.assertEquals("mama", form.getFirst("yo"));
return form;
}
@Path("/RESTEASY-109")
@POST
public void post109(MultivaluedMap<String, String> form)
{
Assert.assertEquals(form.getFirst("name"), "jon");
Assert.assertEquals(form.getFirst("address1"), "123 Main St");
Assert.assertEquals(form.getFirst("address2"), "");
Assert.assertEquals(form.getFirst("zip"), "12345");
}
}