public void AddWatchedEpisodeToTraktIfMediaLibraryAvailable(IList <MediaItem> databaseEpisodes, IList <EpisodeWatched> traktEpisodes, int?expectedEpisodesCount) { // Arrange IMediaPortalServices mediaPortalServices = GetMockMediaPortalServices(databaseEpisodes); ITraktClient traktClient = Substitute.For <ITraktClient>(); traktClient.AddCollectionItems(Arg.Any <ITraktSyncCollectionPost>()).Returns(new TraktSyncCollectionPostResponse()); traktClient.AddWatchedHistoryItems(Arg.Any <ITraktSyncHistoryPost>()).Returns( new TraktSyncHistoryPostResponse { Added = new TraktSyncPostResponseGroup { Episodes = expectedEpisodesCount } }); TraktAuthorization authorization = Substitute.For <TraktAuthorization>(); authorization.AccessToken = "ValidToken"; traktClient.TraktAuthorization.Returns(authorization); ITraktCache traktCache = Substitute.For <ITraktCache>(); traktCache.RefreshSeriesCache().Returns(new TraktEpisodes { Watched = traktEpisodes, UnWatched = new List <Episode>(), Collected = new List <EpisodeCollected>() }); IFileOperations fileOperations = Substitute.For <IFileOperations>(); ILibrarySynchronization librarySynchronization = new LibrarySynchronization(mediaPortalServices, traktClient, traktCache, fileOperations); // Act TraktSyncEpisodesResult result = librarySynchronization.SyncSeries(); // Assert Assert.Equal(expectedEpisodesCount, result.AddedToTraktWatchedHistory); }
public void MarkMovieAsUnwatchedIfMediaLibraryAvailable(List <MediaItem> databaseMovies, List <Movie> traktMovies, int expectedMoviesCount) { // Arrange IMediaPortalServices mediaPortalServices = GetMockMediaPortalServices(databaseMovies); ITraktClient traktClient = Substitute.For <ITraktClient>(); traktClient.AddCollectionItems(Arg.Any <ITraktSyncCollectionPost>()).Returns(new TraktSyncCollectionPostResponse()); traktClient.AddWatchedHistoryItems(Arg.Any <ITraktSyncHistoryPost>()).Returns(new TraktSyncHistoryPostResponse()); TraktAuthorization authorization = Substitute.For <TraktAuthorization>(); authorization.AccessToken = "ValidToken"; traktClient.TraktAuthorization.Returns(authorization); ITraktCache traktCache = Substitute.For <ITraktCache>(); traktCache.RefreshMoviesCache().Returns(new TraktMovies { UnWatched = traktMovies, Watched = new List <MovieWatched>(), Collected = new List <MovieCollected>() }); IFileOperations fileOperations = Substitute.For <IFileOperations>(); ILibrarySynchronization librarySynchronization = new LibrarySynchronization(mediaPortalServices, traktClient, traktCache, fileOperations); // Act TraktSyncMoviesResult result = librarySynchronization.SyncMovies(); // Assert Assert.Equal(expectedMoviesCount, result.MarkedAsUnWatchedInLibrary); }
internal static TraktSyncHandlerManager ResolveManager() { IMediaPortalServices mediaPortalServices = new MediaPortalServices(); IFileOperations fileOperations = new FileOperations(); ITraktClient traktClient = new TraktClientProxy(ApplicationId, SecretId, mediaPortalServices.GetLogger()); ITraktCache traktCache = new TraktCache(mediaPortalServices, traktClient, fileOperations); ILibrarySynchronization librarySynchronization = new LibrarySynchronization(mediaPortalServices, traktClient, traktCache, fileOperations); return(new TraktSyncHandlerManager(mediaPortalServices, librarySynchronization, fileOperations)); }
public void SyncCollectedMoviesToTrakt() { // Arrange IMediaPortalServices mediaPortalServices = Substitute.For <IMediaPortalServices>(); mediaPortalServices.MarkAsWatched(Arg.Any <MediaItem>()).Returns(true); mediaPortalServices.MarkAsUnWatched(Arg.Any <MediaItem>()).Returns(true); mediaPortalServices.GetTraktUserHomePath() .Returns(HomeUserPath); IList <MediaItem> collectedMovies = new List <MediaItem>(); IList <MediaLibraryMovie> savedMovies = new List <MediaLibraryMovie>(); string collectedMoviesPath = Path.Combine(mediaPortalServices.GetTraktUserHomePath(), FileName.MediaLibraryMovies.Value); if (File.Exists(collectedMoviesPath)) { string collectedMoviesJson = File.ReadAllText(collectedMoviesPath); savedMovies = JsonConvert.DeserializeObject <List <MediaLibraryMovie> >(collectedMoviesJson); } foreach (MediaLibraryMovie movie in savedMovies) { collectedMovies.Add(new MockedDatabaseMovie(new MediaLibraryMovie { Title = movie.Title, Imdb = movie.Imdb, Year = movie.Year, AddedToDb = movie.AddedToDb, LastPlayed = movie.LastPlayed, PlayCount = movie.PlayCount }).Movie); } IContentDirectory contentDirectory = Substitute.For <IContentDirectory>(); contentDirectory.SearchAsync(Arg.Any <MediaItemQuery>(), true, null, false).Returns(collectedMovies); mediaPortalServices.GetServerConnectionManager().ContentDirectory.Returns(contentDirectory); ILogger logger = Substitute.For <ILogger>(); ITraktClient traktClient = new TraktClientProxy(ApplicationId, SecretId, logger); ValidateAuthorization(traktClient, new FileOperations()); IFileOperations fileOperations = new FileOperations(); ITraktCache traktCache = new TraktCache(mediaPortalServices, traktClient, fileOperations); ILibrarySynchronization librarySynchronization = new LibrarySynchronization(mediaPortalServices, traktClient, traktCache, fileOperations); // Act TraktSyncMoviesResult result = librarySynchronization.SyncMovies(); // Assert Assert.NotNull(result); }