use of com.restfb.types.Album in project data-transfer-project by google.
the class FacebookPhotosExporter method exportAlbums.
private ExportResult<PhotosContainerResource> exportAlbums(TokensAndUrlAuthData authData, Optional<StringPaginationToken> paginationData) throws CopyExceptionWithFailureReason {
Optional<String> paginationToken = stripTokenPrefix(paginationData, ALBUM_TOKEN_PREFIX);
// 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();
if (albums.isEmpty()) {
return new ExportResult<>(ExportResult.ResultType.END, null, null);
}
ArrayList<PhotoAlbum> exportAlbums = new ArrayList<>();
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);
}
use of com.restfb.types.Album in project data-transfer-project by google.
the class FacebookPhotosExporterTest method setUp.
@Before
public void setUp() throws IOException {
FacebookPhotosInterface photosInterface = mock(FacebookPhotosInterface.class);
// Set up example album
Album album = new Album();
album.setId(ALBUM_ID);
album.setName(ALBUM_NAME);
album.setDescription(ALBUM_DESCRIPTION);
ArrayList<Album> albums = new ArrayList<>();
albums.add(album);
@SuppressWarnings("unchecked") Connection<Album> albumConnection = mock(Connection.class);
when(photosInterface.getAlbums(Mockito.any())).thenReturn(albumConnection);
when(albumConnection.getData()).thenReturn(albums);
// Set up example photo
Photo photo = new Photo();
photo.setId(PHOTO_ID);
photo.setCreatedTime(PHOTO_TIME);
Photo.Image image = new Photo.Image();
image.setSource(PHOTO_SOURCE);
photo.addImage(image);
photo.setName(PHOTO_NAME);
ArrayList<Photo> photos = new ArrayList<>();
photos.add(photo);
@SuppressWarnings("unchecked") Connection<Photo> photoConnection = mock(Connection.class);
when(photosInterface.getPhotos(ALBUM_ID, Optional.empty())).thenReturn(photoConnection);
when(photoConnection.getData()).thenReturn(photos);
final ImageStreamProvider imageStreamProvider = mock(ImageStreamProvider.class);
InputStream inputStream = getClass().getClassLoader().getResourceAsStream("test.jpeg");
HttpURLConnection connection = mock(HttpURLConnection.class);
when(imageStreamProvider.getConnection(ArgumentMatchers.anyString())).thenReturn(connection);
when(connection.getInputStream()).thenReturn(inputStream);
final TemporaryPerJobDataStore store = mock(TemporaryPerJobDataStore.class);
facebookPhotosExporter = new FacebookPhotosExporter(new AppCredentials("key", "secret"), photosInterface, null, store, imageStreamProvider);
}
Aggregations