@Test(expected = IllegalStateException.class) public void testIllegalExport() { facebookPhotosExporter.export( uuid, new TokensAndUrlAuthData("accessToken", null, null), Optional.of(new ExportInformation(new StringPaginationToken(PHOTO_TOKEN_PREFIX), null))); } }
nextPageData = new StringPaginationToken(PHOTO_TOKEN_PREFIX); } else { nextPageData = new StringPaginationToken(ALBUM_TOKEN_PREFIX + token);
@Override public ExportResult<SocialActivityContainerResource> export( UUID jobId, TokensAndUrlAuthData authData, Optional<ExportInformation> exportInformation) throws IOException { Plus plus = getOrCreatePeopleService(authData); Plus.Activities.List listActivities = plus.activities().list("me", "public"); if (exportInformation.isPresent()) { StringPaginationToken pageToken = (StringPaginationToken) exportInformation.get().getPaginationData(); listActivities.setPageToken(pageToken.getToken()); } ActivityFeed activityFeed = listActivities.execute(); List<Activity> activities = activityFeed.getItems(); ContinuationData continuationData = null; SocialActivityContainerResource results = null; if (activities != null && !activities.isEmpty()) { List<com.ibm.common.activitystreams.Activity> parsedActivities = new ArrayList<>(); continuationData = new ContinuationData(new StringPaginationToken(activityFeed.getNextPageToken())); for (Activity activity : activities) { parsedActivities.add(postToActivityStream(activity)); } results = new SocialActivityContainerResource(jobId.toString(), parsedActivities, null); } return new ExportResult<>( ResultType.CONTINUE, results, continuationData); }
private ExportResult<TaskContainerResource> getTasksList( Tasks tasksService, Optional<PaginationData> paginationData) throws IOException { Tasks.Tasklists.List query = tasksService.tasklists().list().setMaxResults(PAGE_SIZE); if (paginationData.isPresent()) { query.setPageToken(((StringPaginationToken) paginationData.get()).getToken()); } TaskLists result = query.execute(); ImmutableList.Builder<TaskListModel> newTaskListsBuilder = ImmutableList.builder(); ImmutableList.Builder<IdOnlyContainerResource> newResourcesBuilder = ImmutableList.builder(); for (TaskList taskList : result.getItems()) { newTaskListsBuilder.add(new TaskListModel(taskList.getId(), taskList.getTitle())); newResourcesBuilder.add(new IdOnlyContainerResource(taskList.getId())); } PaginationData newPage = null; ResultType resultType = ResultType.END; if (result.getNextPageToken() != null) { newPage = new StringPaginationToken(result.getNextPageToken()); resultType = ResultType.CONTINUE; } List<IdOnlyContainerResource> newResources = newResourcesBuilder.build(); if (!newResources.isEmpty()) { resultType = ResultType.CONTINUE; } TaskContainerResource taskContainerResource = new TaskContainerResource(newTaskListsBuilder.build(), null); ContinuationData continuationData = new ContinuationData(newPage); newResourcesBuilder.build().forEach(continuationData::addContainerResource); return new ExportResult<>(resultType, taskContainerResource, continuationData); }
@VisibleForTesting ExportResult<PhotosContainerResource> exportPhotos(TokensAndUrlAuthData authData, Optional<IdOnlyContainerResource> albumData, Optional<PaginationData> paginationData, UUID jobId) throws IOException { Optional<String> albumId = Optional.empty(); if (albumData.isPresent()) { albumId = Optional.of(albumData.get().getId()); } Optional<String> paginationToken = getPhotosPaginationToken(paginationData); MediaItemSearchResponse mediaItemSearchResponse = getOrCreatePhotosInterface(authData) .listMediaItems(albumId, paginationToken); PaginationData nextPageData = null; if (!Strings.isNullOrEmpty(mediaItemSearchResponse.getNextPageToken())) { nextPageData = new StringPaginationToken( PHOTO_TOKEN_PREFIX + mediaItemSearchResponse.getNextPageToken()); } ContinuationData continuationData = new ContinuationData(nextPageData); PhotosContainerResource containerResource = null; GoogleMediaItem[] mediaItems = mediaItemSearchResponse.getMediaItems(); if (mediaItems != null && mediaItems.length > 0) { List<PhotoModel> photos = convertPhotosList(albumId, mediaItems, jobId); containerResource = new PhotosContainerResource(null, photos); } ResultType resultType = ResultType.CONTINUE; if (nextPageData == null) { resultType = ResultType.END; } return new ExportResult<>(resultType, containerResource, continuationData); }
lastId = status.getId(); continuationData = new ContinuationData(new StringPaginationToken(lastId));
nextPageData = new StringPaginationToken(EVENT_TOKEN_PREFIX + listResult.getNextPageToken());
if (listResult.getNextPageToken() != null) { nextPageData = new StringPaginationToken(CALENDAR_TOKEN_PREFIX + listResult.getNextPageToken());
ResultType resultType = ResultType.END; if (result.getNextPageToken() != null) { newPage = new StringPaginationToken(result.getNextPageToken()); resultType = ResultType.CONTINUE;
@Test public void exportAlbumSubsequentSet() throws IOException { setUpSingleAlbum(); when(albumListResponse.getNextPageToken()).thenReturn(null); StringPaginationToken inputPaginationToken = new StringPaginationToken(ALBUM_TOKEN_PREFIX + ALBUM_TOKEN); // Run test ExportResult<PhotosContainerResource> result = googlePhotosExporter .exportAlbums(null, Optional.of(inputPaginationToken)); // Check results // Verify correct methods were called verify(photosInterface).listAlbums(Optional.of(ALBUM_TOKEN)); verify(albumListResponse).getAlbums(); // Check pagination token - should be absent ContinuationData continuationData = result.getContinuationData(); StringPaginationToken paginationData = (StringPaginationToken) continuationData .getPaginationData(); assertThat(paginationData.getToken()).isEqualTo(GooglePhotosExporter.PHOTO_TOKEN_PREFIX); }
ExportResult.ResultType.END, new PhotosContainerResource(null, exportPhotos)); } else { PaginationData nextPageData = new StringPaginationToken(PHOTO_TOKEN_PREFIX + token); ContinuationData continuationData = new ContinuationData(nextPageData); continuationData.addContainerResource(containerResource);
@Test public void exportPhotoSubsequentSet() throws IOException { setUpSingleAlbum(); when(albumListResponse.getNextPageToken()).thenReturn(null); GoogleMediaItem mediaItem = setUpSinglePhoto(IMG_URI, PHOTO_ID); when(mediaItemSearchResponse.getMediaItems()).thenReturn(new GoogleMediaItem[]{mediaItem}); when(mediaItemSearchResponse.getNextPageToken()).thenReturn(null); StringPaginationToken inputPaginationToken = new StringPaginationToken(PHOTO_TOKEN_PREFIX + PHOTO_TOKEN); IdOnlyContainerResource idOnlyContainerResource = new IdOnlyContainerResource(ALBUM_ID); // Run test ExportResult<PhotosContainerResource> result = googlePhotosExporter .exportPhotos(null, Optional.of(idOnlyContainerResource), Optional.of(inputPaginationToken), uuid); // Check results // Verify correct methods were called verify(photosInterface).listMediaItems(Optional.of(ALBUM_ID), Optional.of(PHOTO_TOKEN)); verify(mediaItemSearchResponse).getMediaItems(); // Check pagination token ContinuationData continuationData = result.getContinuationData(); PaginationData paginationToken = continuationData.getPaginationData(); assertNull(paginationToken); }
&& albumsResponse.getPageInfo().getNextPage() != null) { paginationToken = new StringPaginationToken( ALBUM_TOKEN_PREFIX + albumsResponse.getPageInfo().getNextPage());
@Test public void exportCalendarSubsequentSet() throws IOException { setUpSingleCalendarResponse(); // Looking at subsequent page, with no page after it PaginationData paginationData = new StringPaginationToken(CALENDAR_TOKEN_PREFIX + NEXT_TOKEN); ExportInformation exportInformation = new ExportInformation(paginationData, null); calendarListResponse.setNextPageToken(null); // Run test ExportResult<CalendarContainerResource> result = googleCalendarExporter.export(UUID.randomUUID(), null, Optional.of(exportInformation)); // Check results // Verify correct calls were made InOrder inOrder = Mockito.inOrder(calendarListRequest); inOrder.verify(calendarListRequest).setPageToken(NEXT_TOKEN); inOrder.verify(calendarListRequest).execute(); // Check pagination token ContinuationData continuationData = (ContinuationData) result.getContinuationData(); StringPaginationToken paginationToken = (StringPaginationToken) continuationData.getPaginationData(); assertThat(paginationToken).isNull(); }
private ExportResult<PhotosContainerResource> exportAlbums( TokensAndUrlAuthData authData, Optional<StringPaginationToken> paginationData) { Optional<String> paginationToken = stripTokenPrefix(paginationData, ALBUM_TOKEN_PREFIX); ArrayList<PhotoAlbum> exportAlbums = new ArrayList<>(); // Get albums Connection<Album> connection = getOrCreatePhotosInterface(authData).getAlbums(paginationToken); PaginationData nextPageData = null; String token = connection.getAfterCursor(); if (!Strings.isNullOrEmpty(token)) { nextPageData = new StringPaginationToken(ALBUM_TOKEN_PREFIX + token); } ContinuationData continuationData = new ContinuationData(nextPageData); List<Album> albums = connection.getData(); for (Album album : albums) { exportAlbums.add(new PhotoAlbum(album.getId(), album.getName(), album.getDescription())); continuationData.addContainerResource(new IdOnlyContainerResource(album.getId())); } return new ExportResult<>( ExportResult.ResultType.CONTINUE, new PhotosContainerResource(exportAlbums, null), continuationData); }
@Test public void exportSubsequentPage() throws IOException { setUpSinglePersonResponse(); // Looking at a subsequent page, with no pages after it PaginationData paginationData = new StringPaginationToken(NEXT_PAGE_TOKEN); ExportInformation exportInformation = new ExportInformation(paginationData, null); listConnectionsResponse.setNextPageToken(null); when(listConnectionsRequest.setPageToken(NEXT_PAGE_TOKEN)).thenReturn(listConnectionsRequest); // Run test ExportResult<ContactsModelWrapper> result = contactsService.export(UUID.randomUUID(), null, Optional.of(exportInformation)); // Verify correct calls were made - i.e., token was added before execution InOrder inOrder = Mockito.inOrder(listConnectionsRequest); inOrder.verify(listConnectionsRequest).setPageToken(NEXT_PAGE_TOKEN); inOrder.verify(listConnectionsRequest).execute(); // Check continuation data ContinuationData continuationData = (ContinuationData) result.getContinuationData(); assertThat(continuationData.getContainerResources()).isEmpty(); assertThat(continuationData.getPaginationData()).isNull(); }
@Test public void exportEventSubsequentSet() throws IOException { setUpSingleEventResponse(); // Looking at subsequent page, with no pages after it ContainerResource containerResource = new IdOnlyContainerResource(CALENDAR_ID); PaginationData paginationData = new StringPaginationToken(EVENT_TOKEN_PREFIX + NEXT_TOKEN); ExportInformation exportInformation = new ExportInformation(paginationData, containerResource); eventListResponse.setNextPageToken(null); // Run test ExportResult<CalendarContainerResource> result = googleCalendarExporter.export(UUID.randomUUID(), null, Optional.of(exportInformation)); // Check results // Verify correct methods were called in order InOrder inOrder = Mockito.inOrder(eventListRequest); inOrder.verify(eventListRequest).setPageToken(NEXT_TOKEN); inOrder.verify(eventListRequest).execute(); // Check pagination token ContinuationData continuationData = (ContinuationData) result.getContinuationData(); StringPaginationToken paginationToken = (StringPaginationToken) continuationData.getPaginationData(); assertThat(paginationToken).isNull(); }
@Test public void exportMessagesSubsequentSet() throws IOException { setUpSingleMessageResponse(); // Looking at subsequent page, with no page after it PaginationData paginationData = new StringPaginationToken(NEXT_TOKEN); ExportInformation exportInformation = new ExportInformation(paginationData, null); messageListResponse.setNextPageToken(null); // Run test ExportResult<MailContainerResource> result = googleMailExporter.export(JOB_ID, null, Optional.of(exportInformation)); // Check results // Verify correct calls were made (i.e., token was set before execution) InOrder inOrder = Mockito.inOrder(messageListRequest); inOrder.verify(messageListRequest).setPageToken(NEXT_TOKEN); inOrder.verify(messageListRequest).execute(); // Check pagination token (should be null) ContinuationData continuationData = (ContinuationData) result.getContinuationData(); StringPaginationToken paginationToken = (StringPaginationToken) continuationData.getPaginationData(); assertThat(paginationToken).isNull(); }
@Test public void testSpecifiedAlbums() { ExportResult<PhotosContainerResource> result = facebookPhotosExporter.export( uuid, new TokensAndUrlAuthData("accessToken", null, null), Optional.of( new ExportInformation( new StringPaginationToken(PHOTO_TOKEN_PREFIX), new PhotosContainerResource( Lists.newArrayList(new PhotoAlbum(ALBUM_ID, ALBUM_NAME, ALBUM_DESCRIPTION)), new ArrayList<>())))); assertEquals(ExportResult.ResultType.CONTINUE, result.getType()); PhotosContainerResource exportedData = result.getExportedData(); assertEquals(1, exportedData.getAlbums().size()); assertEquals( new PhotoAlbum(ALBUM_ID, ALBUM_NAME, ALBUM_DESCRIPTION), exportedData.getAlbums().toArray()[0]); assertNull((result.getContinuationData().getPaginationData())); assertThat(result.getContinuationData().getContainerResources()) .contains(new IdOnlyContainerResource(ALBUM_ID)); }
ResultType resultType = ResultType.END; if (response.getNextPageToken() != null) { newPage = new StringPaginationToken(response.getNextPageToken()); resultType = ResultType.CONTINUE;