Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        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);
        }
Exemplo n.º 3
0
        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));
        }
Exemplo n.º 4
0
        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);
        }