### Question:
GoogleVideosExporter implements Exporter<TokensAndUrlAuthData, VideosContainerResource> { @VisibleForTesting ExportResult<VideosContainerResource> exportVideos( TokensAndUrlAuthData authData, Optional<StringPaginationToken> paginationData) throws IOException { Optional<String> paginationToken = paginationData.map(StringPaginationToken::getToken); MediaItemSearchResponse mediaItemSearchResponse = getOrCreateVideosInterface(authData).listVideoItems(paginationToken); PaginationData nextPageData = null; if (!Strings.isNullOrEmpty(mediaItemSearchResponse.getNextPageToken())) { nextPageData = new StringPaginationToken(mediaItemSearchResponse.getNextPageToken()); } ContinuationData continuationData = new ContinuationData(nextPageData); VideosContainerResource containerResource = null; GoogleMediaItem[] mediaItems = mediaItemSearchResponse.getMediaItems(); if (mediaItems != null && mediaItems.length > 0) { List<VideoObject> videos = convertVideosList(mediaItems); containerResource = new VideosContainerResource(null, videos); } ResultType resultType = ResultType.CONTINUE; if (nextPageData == null) { resultType = ResultType.END; } return new ExportResult<>(resultType, containerResource, continuationData); } GoogleVideosExporter(GoogleCredentialFactory credentialFactory, JsonFactory jsonFactory); @VisibleForTesting  GoogleVideosExporter(
          GoogleCredentialFactory credentialFactory, GoogleVideosInterface videosInterface); @Override ExportResult<VideosContainerResource> export(
          UUID jobId, TokensAndUrlAuthData authData, Optional<ExportInformation> exportInformation);  }### Answer:
@Test public void exportSingleVideo() throws IOException { when(albumListResponse.getNextPageToken()).thenReturn(null); GoogleMediaItem mediaItem = setUpSingleVideo(VIDEO_URI, VIDEO_ID); when(mediaItemSearchResponse.getMediaItems()).thenReturn(new GoogleMediaItem[]{mediaItem}); when(mediaItemSearchResponse.getNextPageToken()).thenReturn(VIDEO_TOKEN); ExportResult<VideosContainerResource> result = googleVideosExporter.exportVideos(null, Optional.empty()); verify(videosInterface).listVideoItems(Optional.empty()); verify(mediaItemSearchResponse).getMediaItems(); ContinuationData continuationData = result.getContinuationData(); StringPaginationToken paginationToken = (StringPaginationToken) continuationData.getPaginationData(); assertThat(paginationToken.getToken()).isEqualTo(VIDEO_TOKEN); Collection<VideoObject> actualVideos = result.getExportedData().getVideos(); URI video_uri_object = null; try { video_uri_object = new URI(VIDEO_URI + "=dv"); } catch (URISyntaxException e) { e.printStackTrace(); } assertThat(actualVideos.stream().map(VideoObject::getContentUrl).collect(Collectors.toList())) .containsExactly(video_uri_object); assertThat(actualVideos.stream().map(VideoObject::getAlbumId).collect(Collectors.toList())) .containsExactly((Object) null); }