Modified: cxf/branches/2.2.x-fixes/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/JAXRSMultipartTest.java URL: http://svn.apache.org/viewvc/cxf/branches/2.2.x-fixes/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/JAXRSMultipartTest.java?rev=833911&r1=833910&r2=833911&view=diff ============================================================================== --- cxf/branches/2.2.x-fixes/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/JAXRSMultipartTest.java (original) +++ cxf/branches/2.2.x-fixes/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/JAXRSMultipartTest.java Sun Nov 8 18:46:07 2009 @@ -89,6 +89,30 @@ } @Test + public void testBookJSONForm() throws Exception { + String address = "http://localhost:9085/bookstore/books/jsonform"; + doAddFormBook(address, "attachmentFormJson", 200); + } + + @Test + public void testBookJaxbForm() throws Exception { + String address = "http://localhost:9085/bookstore/books/jaxbform"; + doAddFormBook(address, "attachmentFormJaxb", 200); + } + + @Test + public void testBookJSONJAXBForm() throws Exception { + String address = "http://localhost:9085/bookstore/books/jsonjaxbform"; + doAddFormBook(address, "attachmentFormJsonJaxb", 200); + } + + @Test + public void testBookJSONFormFiles() throws Exception { + String address = "http://localhost:9085/bookstore/books/filesform"; + doAddFormBook(address, "attachmentFormJsonFiles", 200); + } + + @Test public void testBookAsMessageContextAttachment() throws Exception { String address = "http://localhost:9085/bookstore/books/attachment"; doAddBook(address, "attachmentData", 200); @@ -400,6 +424,30 @@ } } + private void doAddFormBook(String address, String resourceName, int status) throws Exception { + PostMethod post = new PostMethod(address); + + String ct = "multipart/form-data; boundary=bqJky99mlBWa-ZuqjC53mG6EzbmlxB"; + post.setRequestHeader("Content-Type", ct); + InputStream is = + getClass().getResourceAsStream("/org/apache/cxf/systest/jaxrs/resources/" + resourceName); + RequestEntity entity = new InputStreamRequestEntity(is); + post.setRequestEntity(entity); + HttpClient httpclient = new HttpClient(); + + try { + int result = httpclient.executeMethod(post); + assertEquals(status, result); + if (status == 200) { + InputStream expected = getClass().getResourceAsStream("resources/expected_add_book.txt"); + assertEquals(getStringFromInputStream(expected), post.getResponseBodyAsString()); + } + } finally { + // Release current connection to the connection pool once you are done + post.releaseConnection(); + } + } + private String getStringFromInputStream(InputStream in) throws Exception { CachedOutputStream bos = new CachedOutputStream(); IOUtils.copy(in, bos);
Modified: cxf/branches/2.2.x-fixes/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/MultipartStore.java URL: http://svn.apache.org/viewvc/cxf/branches/2.2.x-fixes/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/MultipartStore.java?rev=833911&r1=833910&r2=833911&view=diff ============================================================================== --- cxf/branches/2.2.x-fixes/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/MultipartStore.java (original) +++ cxf/branches/2.2.x-fixes/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/MultipartStore.java Sun Nov 8 18:46:07 2009 @@ -223,6 +223,64 @@ } @POST + @Path("/books/jsonform") + @Produces("text/xml") + @Consumes("multipart/form-data") + public Response addBookJsonFromForm(Book b1) + throws Exception { + b1.setId(124); + return Response.ok(b1).build(); + } + + @POST + @Path("/books/filesform") + @Produces("text/xml") + @Consumes("multipart/form-data") + public Response addBookFilesForm(@Multipart("owner") String name, + @Multipart("files") List<Book> books) + throws Exception { + if (books.size() != 2) { + throw new WebApplicationException(); + } + Book b1 = books.get(0); + Book b2 = books.get(1); + if (!"CXF in Action - 1".equals(b1.getName()) + || !"CXF in Action - 2".equals(b2.getName()) + || !"Larry".equals(name)) { + throw new WebApplicationException(); + } + b1.setId(124); + b1.setName("CXF in Action - 2"); + return Response.ok(b1).build(); + } + + @POST + @Path("/books/jaxbform") + @Produces("text/xml") + @Consumes("multipart/form-data") + public Response addBookJaxbFromForm(Book b1) + throws Exception { + b1.setId(124); + return Response.ok(b1).build(); + } + + @POST + @Path("/books/jsonjaxbform") + @Produces("text/xml") + @Consumes("multipart/form-data") + public Response addBookJaxbJsonForm(@Multipart("jsonPart") Book b1, + @Multipart("bookXML") Book b2) + throws Exception { + if (!"CXF in Action - 1".equals(b1.getName()) + || !"CXF in Action - 2".equals(b2.getName())) { + throw new WebApplicationException(); + } + b2.setId(124); + return Response.ok(b2).build(); + } + + + @POST @Path("/books/dsource2") @Produces("text/xml") public Response addBookFromDataSource2(@Multipart("rootPart") DataSource ds1, Modified: cxf/branches/2.2.x-fixes/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/resources/expected_get_chapter1.txt URL: http://svn.apache.org/viewvc/cxf/branches/2.2.x-fixes/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/resources/expected_get_chapter1.txt?rev=833911&r1=833910&r2=833911&view=diff ============================================================================== --- cxf/branches/2.2.x-fixes/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/resources/expected_get_chapter1.txt (original) +++ cxf/branches/2.2.x-fixes/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/resources/expected_get_chapter1.txt Sun Nov 8 18:46:07 2009 @@ -1 +1 @@ -<?xml version="1.0" encoding="iso-8859-1" standalone="yes"?><Chapter><id>1</id><title>chapter 1</title></Chapter> \ No newline at end of file +<?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?><Chapter><id>1</id><title>chapter 1</title></Chapter> \ No newline at end of file
