when(mediaItemSearchResponse.getNextPageToken()).thenReturn(null); TempPhotosData tempPhotosData = new TempPhotosData(uuid); tempPhotosData.addContainedPhotoId(containedPhotoId); InputStream stream = GooglePhotosExporter.convertJsonToInputStream(tempPhotosData);
@VisibleForTesting void importSingleAlbum(UUID jobId, TokensAndUrlAuthData authData, PhotoAlbum inputAlbum) throws IOException { // Set up album GoogleAlbum googleAlbum = new GoogleAlbum(); googleAlbum.setTitle(COPY_PREFIX + inputAlbum.getName()); GoogleAlbum responseAlbum = getOrCreatePhotosInterface(authData).createAlbum(googleAlbum); TempPhotosData tempPhotosData = jobStore.findData(jobId, TEMP_PHOTOS_KEY, TempPhotosData.class); if (tempPhotosData == null) { tempPhotosData = new TempPhotosData(jobId); jobStore.create(jobId, TEMP_PHOTOS_KEY, tempPhotosData); } tempPhotosData.addAlbumId(inputAlbum.getId(), responseAlbum.getId()); jobStore.update(jobId, TEMP_PHOTOS_KEY, tempPhotosData); }
@VisibleForTesting void importSingleAlbum(UUID jobId, PhotoAlbum inputAlbum, SmugMugInterface smugMugInterface) throws IOException { SmugMugAlbumResponse response = smugMugInterface.createAlbum(inputAlbum.getName()); // Put new album ID in job store so photos can be assigned to correct album // TODO(olsona): thread safety! TempPhotosData tempPhotosData = jobStore.findData(jobId, createCacheKey(), TempPhotosData.class); if (tempPhotosData == null) { tempPhotosData = new TempPhotosData(jobId); jobStore.create(jobId, createCacheKey(), tempPhotosData); } tempPhotosData.addAlbumId(inputAlbum.getId(), response.getUri()); jobStore.update(jobId, createCacheKey(), tempPhotosData); }
TempPhotosData tempPhotosData = new TempPhotosData(jobId);
@Test public void exportPhoto() throws IOException { // Set up PhotoModel photoModel = new PhotoModel(PHOTO_TITLE, IMG_URI, PHOTO_DESCRIPTION, JPEG_MEDIA_TYPE, null, OLD_ALBUM_ID, false); TempPhotosData tempPhotosData = new TempPhotosData(uuid); tempPhotosData.addAlbumId(OLD_ALBUM_ID, NEW_ALBUM_ID); jobStore.create(uuid, "tempPhotosData", tempPhotosData); // Run test googlePhotosImporter.importSinglePhoto(uuid, null, photoModel); // Check results verify(imageStreamProvider).get(IMG_URI); verify(googlePhotosInterface).uploadPhotoContent(inputStream); ArgumentCaptor<NewMediaItemUpload> uploadArgumentCaptor = ArgumentCaptor .forClass(NewMediaItemUpload.class); verify(googlePhotosInterface).createPhoto(uploadArgumentCaptor.capture()); assertEquals(uploadArgumentCaptor.getValue().getAlbumId(), NEW_ALBUM_ID); List<NewMediaItem> newMediaItems = uploadArgumentCaptor.getValue().getNewMediaItems(); assertEquals(newMediaItems.size(), 1); NewMediaItem mediaItem = newMediaItems.get(0); assertEquals(mediaItem.getSimpleMediaItem().getUploadToken(), UPLOAD_TOKEN); assertEquals(mediaItem.getDescription(), "Copy of " + PHOTO_DESCRIPTION); } }
jobStore.findData(jobId, createCacheKey(), TempPhotosData.class); if (tempPhotosData == null) { tempPhotosData = new TempPhotosData(jobId); jobStore.create(jobId, createCacheKey(), tempPhotosData);