@Test public void test_1_UpdateItem_2_WithFile_Fetched() throws ImejiException, IOException { initCollection(); initItem(); final String fileURL = target().getUri() + STATIC_CONTEXT_PATH.substring(1) + "/test2.jpg"; FormDataMultiPart multiPart = new FormDataMultiPart(); multiPart.field( "json", getStringFromPath(UPDATE_ITEM_FILE_JSON) .replace("___FILE_NAME___", UPDATED_FILE_NAME) .replace("___FETCH_URL___", fileURL) .replaceAll("\"id\"\\s*:\\s*\"__ITEM_ID__\",", "") .replace("___REFERENCE_URL___", "")); Response response = target(PATH_PREFIX) .path("/" + itemId) .register(authAsUser) .register(MultiPartFeature.class) .register(JacksonFeature.class) .request(MediaType.APPLICATION_JSON_TYPE) .put(Entity.entity(multiPart, multiPart.getMediaType())); assertEquals(OK.getStatusCode(), response.getStatus()); DefaultItemTO itemWithFileTO = response.readEntity(DefaultItemTO.class); assertThat( "Checksum of stored file deos not match the source file", itemWithFileTO.getChecksumMd5(), equalTo(calculateChecksum(ATTACHED_FILE))); // LOGGER.info(RestProcessUtils.buildJSONFromObject(itemWithFileTO)); }
public String uploadImage(Part file) throws IOException { String imageURL = null; final Client client = ClientBuilder.newBuilder().register(MultiPartFeature.class).build(); final StreamDataBodyPart stream = new StreamDataBodyPart("file", file.getInputStream()); FormDataMultiPart formDataMultiPart = new FormDataMultiPart(); final MultiPart multiPart = formDataMultiPart.field("fileName", file.getSubmittedFileName()).bodyPart(stream); if (multiPart instanceof FormDataMultiPart) { final FormDataMultiPart dataMultiPart = (FormDataMultiPart) multiPart; final WebTarget target = client.target(configuration.getFileUploadServiceEP()); LOGGER.info("Connecting to file service on " + configuration.getFileUploadServiceEP()); final Response response = target .request() .header(LoginBean.X_JWT_ASSERTION, getJWTToken()) .post(Entity.entity(dataMultiPart, dataMultiPart.getMediaType())); LOGGER.info("Returned from file service " + configuration.getFileUploadServiceEP()); if (Response.Status.OK.getStatusCode() == response.getStatus()) { imageURL = response.readEntity(String.class); } else { LOGGER.log( Level.SEVERE, "TXN service return code is " + response.getStatus() + " , " + "hence can't proceed with the response"); } formDataMultiPart.close(); dataMultiPart.close(); return imageURL; } return imageURL; }
@Test public void test_1_UpdateItem_1_WithFile_Attached() throws IOException { FileDataBodyPart filePart = new FileDataBodyPart("file", ATTACHED_FILE); FormDataMultiPart multiPart = new FormDataMultiPart(); multiPart.bodyPart(filePart); multiPart.field( "json", getStringFromPath(UPDATE_ITEM_FILE_JSON) .replace("___FILE_NAME___", ATTACHED_FILE.getName()) .replace("___FETCH_URL___", "") .replaceAll("\"id\"\\s*:\\s*\"__ITEM_ID__\",", "") .replace("___REFERENCE_URL___", "")); Response response = target(PATH_PREFIX) .path("/" + itemId) .register(authAsUser) .register(MultiPartFeature.class) .register(JacksonFeature.class) .request(MediaType.APPLICATION_JSON_TYPE) .put(Entity.entity(multiPart, multiPart.getMediaType())); assertEquals(OK.getStatusCode(), response.getStatus()); DefaultItemTO itemWithFileTO = response.readEntity(DefaultItemTO.class); assertThat("Wrong file name", itemWithFileTO.getFilename(), equalTo(ATTACHED_FILE.getName())); storedFileURL = target().getUri() + itemWithFileTO.getFileUrl().getPath().substring(1); assertEquals(ATTACHED_FILE.length(), itemWithFileTO.getFileSize()); // LOGGER.info(RestProcessUtils.buildJSONFromObject(itemWithFileTO)); }
@Test public void test_2_UpdateItem_1_TypeDetection_JPG() throws IOException { FileDataBodyPart filePart = new FileDataBodyPart("file", ATTACHED_FILE); FormDataMultiPart multiPart = new FormDataMultiPart(); multiPart.bodyPart(filePart); multiPart.field( "json", getStringFromPath(UPDATE_ITEM_FILE_JSON) .replace("___FILE_NAME___", ATTACHED_FILE.getName()) .replace("___FETCH_URL___", "") .replaceAll("\"id\"\\s*:\\s*\"__ITEM_ID__\",", "") .replace("___REFERENCE_URL___", "")); Response response = target(PATH_PREFIX) .path("/" + itemId) .register(authAsUser) .register(MultiPartFeature.class) .register(JacksonFeature.class) .request(MediaType.APPLICATION_JSON_TYPE) .put(Entity.entity(multiPart, multiPart.getMediaType())); assertEquals(OK.getStatusCode(), response.getStatus()); DefaultItemTO itemWithFileTO = response.readEntity(DefaultItemTO.class); assertThat("Wrong file name", itemWithFileTO.getFilename(), equalTo(ATTACHED_FILE.getName())); }
@Test public void test_1_UpdateItem_7_WithFile_Attached_Fetched_Referenced() throws IOException, ImejiException { initCollection(); initItem(); File newFile = new File(STATIC_CONTEXT_STORAGE + "/test1.jpg"); FileDataBodyPart filePart = new FileDataBodyPart("file", newFile); final String fileURL = target().getUri() + STATIC_CONTEXT_PATH.substring(1) + "/test1.jpg"; FormDataMultiPart multiPart = new FormDataMultiPart(); multiPart.bodyPart(filePart); multiPart.field( "json", getStringFromPath(UPDATE_ITEM_FILE_JSON) .replaceAll("\"id\"\\s*:\\s*\"__ITEM_ID__\",", "") .replace("___FILE_NAME___", newFile.getName()) .replace("___FETCH_URL___", fileURL) .replace("___REFERENCE_URL___", storedFileURL)); Response response = target(PATH_PREFIX) .path("/" + itemId) .register(authAsUser) .register(MultiPartFeature.class) .register(JacksonFeature.class) .request(MediaType.APPLICATION_JSON_TYPE) .put(Entity.entity(multiPart, multiPart.getMediaType())); assertEquals(OK.getStatusCode(), response.getStatus()); DefaultItemTO itemWithFileTO = response.readEntity(DefaultItemTO.class); assertThat( "Checksum of stored file does not match the source file", itemWithFileTO.getChecksumMd5(), equalTo(calculateChecksum(newFile))); assertThat(itemWithFileTO.getFileUrl().toString(), not(equalTo(fileURL))); assertThat(itemWithFileTO.getFileUrl().toString(), not(equalTo(storedFileURL))); assertThat( itemWithFileTO.getThumbnailUrl().toString(), not(containsString(ItemController.NO_THUMBNAIL_URL))); assertThat( itemWithFileTO.getWebResolutionUrlUrl().toString(), not(containsString(ItemController.NO_THUMBNAIL_URL))); }
@Test public void test_1_UpdateItem_9_FetchURL_NoFile() throws IOException { FormDataMultiPart multiPart = new FormDataMultiPart(); multiPart.field( "json", getStringFromPath(UPDATE_ITEM_FILE_JSON) .replaceAll("\"id\"\\s*:\\s*\"__ITEM_ID__\",", "") .replace("___FETCH_URL___", "www.google.de")); Response response = target(PATH_PREFIX) .path("/" + itemId) .register(authAsUser) .register(MultiPartFeature.class) .register(JacksonFeature.class) .request(MediaType.APPLICATION_JSON_TYPE) .put(Entity.entity(multiPart, multiPart.getMediaType())); assertEquals(HttpStatus.SC_UNPROCESSABLE_ENTITY, response.getStatus()); }
@Test public void test_1_UpdateItem_3_WithFile_Referenced() throws IOException { FormDataMultiPart multiPart = new FormDataMultiPart(); multiPart.field( "json", getStringFromPath(UPDATE_ITEM_FILE_JSON) .replace("___FILE_NAME___", UPDATED_FILE_NAME) .replace("___FETCH_URL___", "") .replaceAll("\"id\"\\s*:\\s*\"__ITEM_ID__\",", "") .replace("___REFERENCE_URL___", storedFileURL)); Response response = target(PATH_PREFIX) .path("/" + itemId) .register(authAsUser) .register(MultiPartFeature.class) .register(JacksonFeature.class) .request(MediaType.APPLICATION_JSON_TYPE) .put(Entity.entity(multiPart, multiPart.getMediaType())); assertEquals(OK.getStatusCode(), response.getStatus()); DefaultItemTO itemWithFileTO = response.readEntity(DefaultItemTO.class); assertThat( "Reference URL does not match", storedFileURL, equalTo(itemWithFileTO.getFileUrl().toString())); assertThat( "Should be link to NO_THUMBNAIL image:", itemWithFileTO.getWebResolutionUrlUrl().toString(), endsWith(ItemController.NO_THUMBNAIL_URL)); assertThat( "Should be link to NO_THUMBNAIL image:", itemWithFileTO.getThumbnailUrl().toString(), endsWith(ItemController.NO_THUMBNAIL_URL)); }