/** * Create a new {@code MockMultipartHttpServletRequest} with the supplied {@link ServletContext}. * @param servletContext the ServletContext that the request runs in * (may be {@code null} to use a default {@link MockServletContext}) */ public MockMultipartHttpServletRequest(@Nullable ServletContext servletContext) { super(servletContext); setMethod("POST"); setContentType("multipart/form-data"); }
/** * Create a new {@code MockMultipartHttpServletRequest} with the supplied {@link ServletContext}. * @param servletContext the ServletContext that the request runs in * (may be {@code null} to use a default {@link MockServletContext}) */ public MockMultipartHttpServletRequest(ServletContext servletContext) { super(servletContext); setMethod("POST"); setContentType("multipart/form-data"); }
/** * Create a new {@code MockMultipartHttpServletRequest} with the supplied {@link ServletContext}. * @param servletContext the ServletContext that the request runs in * (may be {@code null} to use a default {@link MockServletContext}) */ public MockMultipartHttpServletRequest(@Nullable ServletContext servletContext) { super(servletContext); setMethod("POST"); setContentType("multipart/form-data"); }
public MockFileRequest(String filename) { super.setMethod("POST"); if (StringUtils.isNotEmpty(filename)) { byte[] data; try { data = FileUtils.readFileToByteArray(new File(filename)); } catch (IOException e) { throw new RuntimeException(e.getMessage(), e); } MockMultipartFile file = new MockMultipartFile("file", data); super.addFile(file); } } }
MockMultipartHttpServletRequest request = this.generateMockMultiPartHttpServletRequest(true); MockMultipartFile mockMultipartFile = null; try { request.setContentType("multipart/form-data; boundary=-----1234"); request.setCharacterEncoding("text/plain"); String endline = "\r\n"; String bondary = "-----1234"; String textFile = this.encodeTextFile("-----1234", "\r\n", "file","test.csv", "text/UTF-8", FileUtils.readFileToString((new File(csvFilePath)), "UTF-8")); StringBuilder content = new StringBuilder(textFile.toString()); content.append(endline); content.append(endline); content.append(endline); content.append("--"); content.append(bondary); content.append("--"); content.append(endline); request.setContent(content.toString().getBytes()); request.setMethod("POST"); mockMultipartFile = new MockMultipartFile("file", FileUtils.readFileToByteArray(new File(csvFilePath))); } catch (Exception e1) { e1.printStackTrace(); } request.addFile(mockMultipartFile);
mockRequest.setContent(createFileContent(data,boundary,"application/zip","test.zip")); mockRequest.addFile(file); mockRequest.setMethod("POST"); mockRequest.setParameter("variant", "php"); mockRequest.setParameter("os", "mac");
@Test public void shouldUploadModule() throws Exception { byte[] fileData = IOUtils.toByteArray(getClass().getClassLoader().getResourceAsStream("mockModule.omod")); MockMultipartFile toUpload = new MockMultipartFile("file", "mockModule.omod", "archive/zip", fileData); MockMultipartHttpServletRequest request = new MockMultipartHttpServletRequest(); request.setRequestURI(getBaseRestURI() + getURI()); request.setMethod(RequestMethod.POST.name()); request.addHeader("Content-Type", "multipart/form-data"); request.addFile(toUpload); mockModuleFactory.loadModuleMock = mockModuleToLoad; MockHttpServletResponse response = handle(request); assertThat(mockModuleFactory.loadedModules, hasItem(mockModuleToLoad)); assertThat(mockModuleFactory.startedModules, hasItem(mockModuleToLoad)); }
/** * Reset the request and the response, maintaining the same session. * Useful, for example, to call a post after calling the get of the form. */ protected void resetRequestAndResponse() { HttpSession httpSession = null; // preparing the multipart request if (mpReq != null) { httpSession = mpReq.getSession(); } mpReq = new MockMultipartHttpServletRequest(); mpReq.setSession(httpSession); mpReq.setMethod("GET"); // preparing the normal request if (req != null) { httpSession = req.getSession(); } req = new MockHttpServletRequest(); req.setSession(httpSession); req.setMethod("GET"); res = new MockHttpServletResponse(); } }
@Test public void shouldAcceptAndStoreClobDataViaPost() throws Exception { long before = getAllCount(); byte[] fileData = IOUtils.toByteArray(getClass().getClassLoader().getResourceAsStream( RestTestConstants1_9.TEST_RESOURCE_FILE)); MockMultipartFile toUpload = new MockMultipartFile("file", "formresource.txt", "text/plain", fileData); MockMultipartHttpServletRequest request = new MockMultipartHttpServletRequest(); request.setRequestURI(getBaseRestURI() + getURI()); request.setMethod(RequestMethod.POST.name()); request.addHeader("Content-Type", "multipart/form-data"); request.addFile(toUpload); MockHttpServletResponse response = handle(request); Assert.assertEquals(HttpServletResponse.SC_CREATED, response.getStatus()); Assert.assertEquals(before + 1, getAllCount()); }
@Test public void shouldPostFormResourceValue() throws Exception { byte[] fileData = IOUtils.toByteArray(getClass().getClassLoader().getResourceAsStream( RestTestConstants1_9.TEST_RESOURCE_FILE)); String valueReferenceBefore = formService.getFormResourceByUuid(getUuid()).getValueReference(); MockMultipartFile toUpload = new MockMultipartFile("value", "formresource.txt", "text/plain", fileData); MockMultipartHttpServletRequest request = new MockMultipartHttpServletRequest(); //Posting to uri of the form /ws/rest/v1/form/{uuid}/resource/{uuid}/value String uri = getBaseRestURI() + getURI() + "/" + getUuid() + "/value"; request.setRequestURI(uri); request.setMethod(RequestMethod.POST.name()); request.addHeader("Content-Type", "multipart/form-data"); request.addFile(toUpload); MockHttpServletResponse response = handle(request); String valueReferenceAfter = formService.getFormResourceByUuid(getUuid()).getValueReference(); Assert.assertNotEquals(valueReferenceBefore, valueReferenceAfter); Assert.assertNotNull(datatypeService.getClobDatatypeStorageByUuid(valueReferenceAfter)); Assert.assertEquals(HttpServletResponse.SC_CREATED, response.getStatus()); }