public void GetCollectedEpisodes(List <ITraktCollectionShow> onlineCollectedShows, ITraktSyncLastActivities onlineLastSyncActivities, int expectedCollectedEpisodesCount) { // Arrange ITraktClient traktClient = Substitute.For <ITraktClient>(); traktClient.GetCollectedShows().Returns(onlineCollectedShows); traktClient.GetLastActivities().Returns(onlineLastSyncActivities); IFileOperations fileOperations = Substitute.For <IFileOperations>(); SetFileOperationsForFile(fileOperations, DataPath, FileName.LastActivity.Value); SetFileOperationsForFile(fileOperations, DataPath, FileName.CollectedEpisodes.Value); SetFileOperationsForFile(fileOperations, DataPath, FileName.WatchedEpisodes.Value); IMediaPortalServices mediaPortalServices = Substitute.For <IMediaPortalServices>(); mediaPortalServices.GetTraktUserHomePath().Returns(DataPath); // Act ITraktCache traktCache = new TraktCache(mediaPortalServices, traktClient, fileOperations); TraktEpisodes traktEpisodes = traktCache.RefreshSeriesCache(); // Assert int actualCollectedEpisodesCount = traktEpisodes.Collected.Count(); Assert.Equal(expectedCollectedEpisodesCount, actualCollectedEpisodesCount); }
private IList <EpisodeCollected> GetCollectedEpisodesFromOnlineAndSaveItToCache() { IEnumerable <ITraktCollectionShow> collectedShows = _traktClient.GetCollectedShows(); string collectedEpisodesPath = Path.Combine(_mediaPortalServices.GetTraktUserHomePath(), FileName.CollectedEpisodes.Value); IList <ITraktCollectionShow> traktCollectionShows = collectedShows.ToList(); string collectedEpisodesJson = TraktSerializationService.SerializeCollectionAsync(traktCollectionShows).Result; _fileOperations.FileWriteAllText(collectedEpisodesPath, collectedEpisodesJson, Encoding.UTF8); return(ConvertCollectionShowsToCollectedEpisodes(traktCollectionShows)); }