use of org.datatransferproject.types.common.models.videos.VideoModel in project data-transfer-project by google.
the class GoogleVideosImporterTest method failOneVideo.
@Test
public void failOneVideo() throws Exception {
PhotosLibraryClient photosLibraryClient = mock(PhotosLibraryClient.class);
// Mock uploads
when(photosLibraryClient.uploadMediaItem(any())).thenReturn(UploadMediaItemResponse.newBuilder().setUploadToken("token1").build(), UploadMediaItemResponse.newBuilder().setUploadToken("token2").build());
// Mock creation response
final NewMediaItemResult newMediaItemResult = NewMediaItemResult.newBuilder().setStatus(Status.newBuilder().setCode(Code.OK_VALUE).build()).setMediaItem(MediaItem.newBuilder().setId("RESULT_ID_1").build()).setUploadToken("token1").build();
final NewMediaItemResult newMediaItemResult2 = NewMediaItemResult.newBuilder().setStatus(Status.newBuilder().setCode(Code.INVALID_ARGUMENT_VALUE).build()).setUploadToken("token2").build();
BatchCreateMediaItemsResponse response = BatchCreateMediaItemsResponse.newBuilder().addNewMediaItemResults(newMediaItemResult).addNewMediaItemResults(newMediaItemResult2).build();
when(photosLibraryClient.batchCreateMediaItems(ArgumentMatchers.anyList())).thenReturn(response);
InMemoryIdempotentImportExecutor executor = new InMemoryIdempotentImportExecutor(mock(Monitor.class));
long length = googleVideosImporter.importVideoBatch(Lists.newArrayList(new VideoModel(VIDEO_TITLE, VIDEO_URI, VIDEO_DESCRIPTION, MP4_MEDIA_TYPE, VIDEO_ID, null, false), new VideoModel(VIDEO_TITLE, VIDEO_URI, VIDEO_DESCRIPTION, MP4_MEDIA_TYPE, "myId2", null, false)), photosLibraryClient, executor);
assertEquals("Expected the number of bytes to be the one files of 32L.", 32L, length);
assertEquals("Expected executor to have one error.", 1, executor.getErrors().size());
ErrorDetail errorDetail = executor.getErrors().iterator().next();
assertEquals("myId2", errorDetail.id());
assertThat(errorDetail.exception(), CoreMatchers.containsString("Video item could not be created."));
}
use of org.datatransferproject.types.common.models.videos.VideoModel in project data-transfer-project by google.
the class KoofrMediaExport method processVideo.
protected void processVideo(FilesFile file, String path, String albumId) {
String videoId = path;
String name = getFileName(file);
String description = getFileDescription(file);
String contentType = file.getContentType();
String fullPath = rootPath + path;
albumsWithVideos.add(albumId);
VideoObjectContainer container = new VideoObjectContainer();
container.videoModel = new VideoModel(name, "", description, contentType, videoId, albumId, false);
container.fullPath = fullPath;
videos.add(container);
}
use of org.datatransferproject.types.common.models.videos.VideoModel in project data-transfer-project by google.
the class KoofrMediaExport method getVideos.
public List<VideoModel> getVideos() throws IOException, InvalidTokenException {
ArrayList<VideoModel> exportVideos = new ArrayList<>();
for (VideoObjectContainer container : videos) {
VideoModel video = container.videoModel;
String fetchableUrl = getFetchableUrl(container.fullPath);
if (fetchableUrl == null) {
continue;
}
exportVideos.add(new VideoModel(video.getName(), fetchableUrl, video.getDescription(), video.getEncodingFormat(), video.getDataId(), video.getAlbumId(), video.isInTempStore()));
}
return exportVideos;
}
use of org.datatransferproject.types.common.models.videos.VideoModel in project data-transfer-project by google.
the class KoofrVideosExporter method export.
@Override
public ExportResult<VideosContainerResource> export(UUID jobId, TokensAndUrlAuthData authData, Optional<ExportInformation> exportInformation) throws CopyExceptionWithFailureReason {
Preconditions.checkNotNull(authData);
KoofrClient koofrClient = koofrClientFactory.create(authData);
KoofrMediaExport export = new KoofrMediaExport(koofrClient, monitor);
try {
export.export();
List<VideoAlbum> exportAlbums = export.getVideoAlbums();
List<VideoModel> exportVideos = export.getVideos();
VideosContainerResource containerResource = new VideosContainerResource(exportAlbums, exportVideos);
return new ExportResult<>(ExportResult.ResultType.END, containerResource, null);
} catch (IOException e) {
return new ExportResult<>(e);
}
}
use of org.datatransferproject.types.common.models.videos.VideoModel in project data-transfer-project by google.
the class FacebookVideosExporterTest method testExportVideo.
@Test
public void testExportVideo() throws CopyExceptionWithFailureReason {
ExportResult<VideosContainerResource> result = facebookVideosExporter.export(uuid, new TokensAndUrlAuthData("accessToken", null, null), Optional.of(new ExportInformation(null, null)));
assertEquals(ExportResult.ResultType.END, result.getType());
VideosContainerResource exportedData = result.getExportedData();
assertEquals(1, exportedData.getVideos().size());
assertEquals(new VideoModel(VIDEO_ID + ".mp4", VIDEO_SOURCE, VIDEO_NAME, "video/mp4", VIDEO_ID, null, false), exportedData.getVideos().toArray()[0]);
}
Aggregations