private Video CreateAndRetrieveVideo(long libraryId, long seriesId)
        {
            var dto     = CreateVideoUtil.GetNewVideoDetails(libraryId, -1, seriesId);
            var videoId = videoRepository.CreateVideo(dto);

            return(videoRepository.GetVideo(videoId).Result);
        }
Пример #2
0
        public void SyncWatchedVideos_ShouldNotUpdateLastWatchDate_IfEarlierThanPreviousDate()
        {
            var video1Dto = CreateVideoUtil.GetNewVideoDetails(testLibrary.LibraryId, -1, -1);

            video1Dto.SourceURL = "https://ingvilt.test.ingvilt.com";
            var video1Id = videoRepository.CreateVideo(video1Dto);

            var videoLatestWatchDate = new DateTime(2016, 1, 1);

            var video1 = videoRepository.GetVideo(video1Id).Result;

            video1.LastWatchDate = videoLatestWatchDate;
            videoRepository.UpdateVideo(video1).ConfigureAwait(false);

            var videosToSync = new List <ExternallyWatchedVideoDto> {
                new ExternallyWatchedVideoDto(video1Dto.SourceURL, new DateTime(2012, 1, 1))
            };

            repository.SyncWatchedVideos(videosToSync);

            var watched = repository.GetWatchedVideosHistory(GetFirstPage(), testLibrary.LibraryId).Result.Results;

            Assert.AreEqual(1, watched.Count);
            Assert.AreEqual(video1Id, watched[0].VideoId);
            Assert.AreEqual(videosToSync[0].Time, watched[0].WatchDate);

            video1 = videoRepository.GetVideo(video1Id).Result;

            Assert.AreEqual(1, video1.TimesWatched);
            Assert.AreEqual(videoLatestWatchDate.ToUniversalTime(), video1.LastWatchDate);
        }
Пример #3
0
        public void GetSeriesRating_WithVideos()
        {
            var series  = CreateAndRetrieveSeries();
            var series2 = CreateAndRetrieveSeries();

            var createVideoDto = CreateVideoUtil.GetNewVideoDetails(testLibrary.LibraryId, -1, series.SeriesId);

            createVideoDto.UserRating     = 3;
            createVideoDto.ExternalRating = 5;

            videoRepository.CreateVideo(createVideoDto);
            createVideoDto.UserRating     = 5;
            createVideoDto.ExternalRating = 6;
            videoRepository.CreateVideo(createVideoDto);

            var createVideoDto2 = CreateVideoUtil.GetNewVideoDetails(testLibrary.LibraryId, -1, series2.SeriesId);

            createVideoDto2.UserRating = 3;
            videoRepository.CreateVideo(createVideoDto2);

            var seriesRating = repository.GetSeriesRating(series.SeriesId).Result;

            Assert.AreEqual(4, seriesRating.UserRating);
            Assert.AreEqual(5.5, seriesRating.ExternalRating);
        }
Пример #4
0
        private Video CreateVideo()
        {
            var dto     = CreateVideoUtil.GetNewVideoDetails(testLibrary.LibraryId, -1, -1);
            var videoId = videoRepository.CreateVideo(dto);

            return(videoRepository.GetVideo(videoId).Result);
        }
Пример #5
0
        public void GetPercentageOfVideosWatchedInSequence_WithVideosInSpecifiedSequence()
        {
            var videoRepository = new VideoRepository();
            var sequence1       = CreateAndRetrievePlaylist();
            var sequence2       = CreateAndRetrievePlaylist();

            var videoDto = CreateVideoUtil.GetNewVideoDetails(testLibrary.LibraryId, -1, -1);

            videoDto.TimesWatched = 1;
            var videoId = videoRepository.CreateVideo(videoDto);

            repository.AddVideoToSequence(videoId, sequence1.SequenceId);

            videoDto = CreateVideoUtil.GetNewVideoDetails(testLibrary.LibraryId, -1, -1);
            videoId  = videoRepository.CreateVideo(videoDto);
            repository.AddVideoToSequence(videoId, sequence1.SequenceId);

            videoDto = CreateVideoUtil.GetNewVideoDetails(testLibrary.LibraryId, -1, -1);
            videoDto.TimesWatched = 1;
            videoId = videoRepository.CreateVideo(videoDto);
            repository.AddVideoToSequence(videoId, sequence2.SequenceId);

            var percentWatched = repository.GetPercentageOfVideosWatchedInSequence(sequence1.SequenceId);

            Assert.AreEqual(50, percentWatched);
        }
Пример #6
0
        public void PermanentlyRemoveSeries_ShouldRemoveVideos()
        {
            var series         = CreateAndRetrieveSeries();
            var createVideoDto = CreateVideoUtil.GetNewVideoDetails(testLibrary.LibraryId, -1, series.SeriesId);
            var videoId        = videoRepository.CreateVideo(createVideoDto);

            repository.PermanentlyRemoveSeries(series.SeriesId).ConfigureAwait(false);
            var video = videoRepository.GetVideo(videoId).Result;
        }
Пример #7
0
        private CreateVideoDto GetNewVideoDetails(Library library, Publisher publisher, Series series)
        {
            if (library == null)
            {
                library = testLibrary;
            }

            long publisherId = publisher == null ? -1 : publisher.PublisherId;
            long seriesId    = series == null ? -1 : series.SeriesId;

            return(CreateVideoUtil.GetNewVideoDetails(library.LibraryId, publisherId, seriesId));
        }
Пример #8
0
        public void GetNumberOfFinishedSeriesInLibrary_WithDeletedVideoInUnfinishedSeries()
        {
            var series         = CreateAndRetrieveSeries();
            var createVideoDto = CreateVideoUtil.GetNewVideoDetails(testLibrary.LibraryId, -1, series.SeriesId);
            var videoId        = videoRepository.CreateVideo(createVideoDto);

            videoRepository.DeleteVideo(videoId).ConfigureAwait(false);

            var librariesCount = repository.GetNumberOfFinishedSeriesInLibrary(testLibrary.LibraryId).Result;

            Assert.AreEqual(0, librariesCount);
        }
Пример #9
0
        public void GetNumberOfFinishedSeriesInLibrary_WithUnfinishedSeries()
        {
            for (int i = 0; i < 1; ++i)
            {
                var series         = CreateAndRetrieveSeries();
                var createVideoDto = CreateVideoUtil.GetNewVideoDetails(testLibrary.LibraryId, -1, series.SeriesId);
                videoRepository.CreateVideo(createVideoDto);
            }

            var librariesCount = repository.GetNumberOfFinishedSeriesInLibrary(testLibrary.LibraryId).Result;

            Assert.AreEqual(0, librariesCount);
        }
Пример #10
0
        public void GetRecentlyWatchedSeriesInLibrary_WithWatchedVideo()
        {
            var series         = CreateAndRetrieveSeries();
            var createVideoDto = CreateVideoUtil.GetNewVideoDetails(testLibrary.LibraryId, -1, series.SeriesId);
            var videoId        = videoRepository.CreateVideo(createVideoDto);

            historyRepository.AddWatchedVideo(videoId).ConfigureAwait(false);

            var recentlyWatched = repository.GetRecentlyWatchedSeriesInLibrary(testLibrary.LibraryId, 2).Result;

            CollectionAssert.AreEqual(new List <Series> {
                series
            }, recentlyWatched);
        }
Пример #11
0
        public void GetAllPlaylistsContainingVideo_WithPlaylistNotContainingVideo()
        {
            var videoRepository = new VideoRepository();
            var videoDto        = CreateVideoUtil.GetNewVideoDetails(testLibrary.LibraryId, -1, -1);
            var videoId         = videoRepository.CreateVideo(videoDto);

            for (int i = 0; i < 1; ++i)
            {
                var sequence = CreateAndRetrievePlaylist();
            }

            var sequences = repository.GetAllPlaylistsContainingVideo(videoId);

            CollectionAssert.AreEquivalent(new List <PlaylistDto>(), sequences);
        }
Пример #12
0
        public void GetNumberOfFinishedSeriesInLibrary_WithDeletedSeries()
        {
            var activeSeries   = CreateAndRetrieveSeries();
            var createVideoDto = CreateVideoUtil.GetNewVideoDetails(testLibrary.LibraryId, -1, activeSeries.SeriesId);

            createVideoDto.TimesWatched = 1;
            videoRepository.CreateVideo(createVideoDto);

            var deletedSeries = CreateAndRetrieveSeries();

            repository.DeleteSeries(deletedSeries.SeriesId).ConfigureAwait(false);

            var librariesCount = repository.GetNumberOfFinishedSeriesInLibrary(testLibrary.LibraryId).Result;

            Assert.AreEqual(1, librariesCount);
        }
Пример #13
0
        public void GetNumberOfFinishedSeriesInLibrary_WithFinishedSeries()
        {
            for (int i = 0; i < 1; ++i)
            {
                var series         = CreateAndRetrieveSeries();
                var createVideoDto = CreateVideoUtil.GetNewVideoDetails(testLibrary.LibraryId, -1, series.SeriesId);
                var videoId        = videoRepository.CreateVideo(createVideoDto);
                var video          = videoRepository.GetVideo(videoId).Result;
                video.TimesWatched = 1;
                videoRepository.UpdateVideo(video).ConfigureAwait(false);
            }

            var librariesCount = repository.GetNumberOfFinishedSeriesInLibrary(testLibrary.LibraryId).Result;

            Assert.AreEqual(1, librariesCount);
        }
Пример #14
0
        public void GetAllPlaylistsContainingVideo_WithPlaylistsContainingVideo()
        {
            var expectedPlaylists = new List <PlaylistDto>();
            var videoRepository   = new VideoRepository();
            var videoDto          = CreateVideoUtil.GetNewVideoDetails(testLibrary.LibraryId, -1, -1);
            var videoId           = videoRepository.CreateVideo(videoDto);

            for (int i = 0; i < 2; ++i)
            {
                var sequence = CreateAndRetrievePlaylist();
                expectedPlaylists.Add(sequence);
                repository.AddVideoToSequence(videoId, sequence.SequenceId);
            }

            var sequences = repository.GetAllPlaylistsContainingVideo(videoId);

            CollectionAssert.AreEquivalent(expectedPlaylists, sequences);
        }
Пример #15
0
        public void GetSeriesToWatchInLibrary_WithNotStartedSeriesToWatch()
        {
            var videoRepository = new VideoRepository();

            var seriesToCreate = new CreateSeriesDto("Test library", "https://ingvilt.test.url", -1, "test desc", -1, testLibrary.LibraryId, -1, true);
            var seriesId       = repository.CreateSeries(seriesToCreate);

            var videoToCreate = CreateVideoUtil.GetNewVideoDetails(testLibrary.LibraryId, -1, seriesId);

            videoRepository.CreateVideo(videoToCreate);
            videoRepository.CreateVideo(videoToCreate);

            var expectedSeries = new List <Series> {
                repository.GetSeries(seriesId).Result
            };
            var actualSeries = repository.GetSeriesToWatchInLibrary(GetFirstPage(), testLibrary.LibraryId, "").Result.Results;

            CollectionAssert.AreEquivalent(expectedSeries, actualSeries);
        }
Пример #16
0
        public void GetSeriesRating_WithVideos_ShouldntIncludeVideosWithZeroAsRating()
        {
            var series = CreateAndRetrieveSeries();

            var createVideoDto = CreateVideoUtil.GetNewVideoDetails(testLibrary.LibraryId, -1, series.SeriesId);

            createVideoDto.UserRating     = 3;
            createVideoDto.ExternalRating = 5;

            videoRepository.CreateVideo(createVideoDto);
            createVideoDto.UserRating     = 0;
            createVideoDto.ExternalRating = 0;
            videoRepository.CreateVideo(createVideoDto);

            var seriesRating = repository.GetSeriesRating(series.SeriesId).Result;

            Assert.AreEqual(3, seriesRating.UserRating);
            Assert.AreEqual(5, seriesRating.ExternalRating);
        }
Пример #17
0
        public void GetSeriesToWatchInLibrary_ShouldntIncludeSeriesNotWorthWatching()
        {
            var videoRepository = new VideoRepository();

            var seriesToCreate = new CreateSeriesDto("Test library", "https://ingvilt.test.url", -1, "test desc", -1, testLibrary.LibraryId, -1, false);
            var seriesId       = repository.CreateSeries(seriesToCreate);

            var videoToCreate = CreateVideoUtil.GetNewVideoDetails(testLibrary.LibraryId, -1, seriesId);

            videoRepository.CreateVideo(videoToCreate);
            videoToCreate.TimesWatched = 5;
            videoRepository.CreateVideo(videoToCreate);

            var expectedSeries = new List <Series> {
            };
            var actualSeries   = repository.GetSeriesToWatchInLibrary(GetFirstPage(), testLibrary.LibraryId, "").Result.Results;

            CollectionAssert.AreEquivalent(expectedSeries, actualSeries);
        }
Пример #18
0
        public void UpdatingSeriesPublisher_ShouldUpdatePublisherId_OfVideosInSeries()
        {
            var series      = CreateAndRetrieveSeries();
            var series2     = CreateAndRetrieveSeries();
            var publisherId = publisherRepository.CreatePublisher(new CreatePublisherDto("test", "", -1, "", testLibrary.LibraryId));

            var createVideoDto = CreateVideoUtil.GetNewVideoDetails(testLibrary.LibraryId, -1, series.SeriesId);
            var videoId        = videoRepository.CreateVideo(createVideoDto);

            var createVideoDto2 = CreateVideoUtil.GetNewVideoDetails(testLibrary.LibraryId, -1, series2.SeriesId);
            var video2Id        = videoRepository.CreateVideo(createVideoDto2);

            series.PublisherId = publisherId;
            repository.UpdateSeries(series);

            var video1 = videoRepository.GetVideo(videoId).Result;
            var video2 = videoRepository.GetVideo(video2Id).Result;

            Assert.AreEqual(publisherId, video1.PublisherId);
            Assert.AreEqual(DatabaseConstants.DEFAULT_ID, video2.PublisherId);
        }
Пример #19
0
        public void SyncWatchedVideos_ShouldUpdateVideos_ThatAreFound()
        {
            var video2InitialTimesWatched = 5;

            var video1Dto = CreateVideoUtil.GetNewVideoDetails(testLibrary.LibraryId, -1, -1);

            video1Dto.SourceURL = "https://ingvilt.test.ingvilt.com";
            var video1Id = videoRepository.CreateVideo(video1Dto);

            var video2Dto = CreateVideoUtil.GetNewVideoDetails(testLibrary.LibraryId, -1, -1);

            video2Dto.SourceURL    = "https://ingvilt.test.2.ingvilt.com";
            video2Dto.TimesWatched = video2InitialTimesWatched;
            var video2Id = videoRepository.CreateVideo(video2Dto);

            var videosToSync = new List <ExternallyWatchedVideoDto> {
                new ExternallyWatchedVideoDto("https://ingvilt.not.found.test.ingvilt.com", DateTime.Now),
                new ExternallyWatchedVideoDto(video1Dto.SourceURL, DateTime.Now),
                new ExternallyWatchedVideoDto(video2Dto.SourceURL, DateTime.Now - TimeSpan.FromDays(20))
            };

            repository.SyncWatchedVideos(videosToSync);

            var watched = repository.GetWatchedVideosHistory(GetFirstPage(), testLibrary.LibraryId).Result.Results;

            Assert.AreEqual(2, watched.Count);
            Assert.AreEqual(video2Id, watched[0].VideoId);
            Assert.AreEqual(videosToSync[2].Time, watched[0].WatchDate);
            Assert.AreEqual(video1Id, watched[1].VideoId);
            Assert.AreEqual(videosToSync[1].Time, watched[1].WatchDate);

            var video1 = videoRepository.GetVideo(video1Id).Result;
            var video2 = videoRepository.GetVideo(video2Id).Result;

            Assert.AreEqual(1, video1.TimesWatched);
            Assert.AreEqual(video2InitialTimesWatched + 1, video2.TimesWatched);
            Assert.AreEqual(videosToSync[1].Time.ToUniversalTime(), video1.LastWatchDate);
            Assert.AreEqual(videosToSync[2].Time.ToUniversalTime(), video2.LastWatchDate);
        }
Пример #20
0
        public void GetRecentlyWatchedSeriesInLibrary_WithMoreVideosInOneSeries_ThanMaxReturnCount()
        {
            var series  = CreateAndRetrieveSeries();
            var series2 = CreateAndRetrieveSeries();

            for (int i = 0; i < 4; ++i)
            {
                var createVideoDto = CreateVideoUtil.GetNewVideoDetails(testLibrary.LibraryId, -1, series.SeriesId);
                var videoId        = videoRepository.CreateVideo(createVideoDto);
                historyRepository.AddWatchedVideo(videoId).ConfigureAwait(false);
            }

            var createVideoDto2 = CreateVideoUtil.GetNewVideoDetails(testLibrary.LibraryId, -1, series2.SeriesId);
            var video2Id        = videoRepository.CreateVideo(createVideoDto2);

            historyRepository.AddWatchedVideo(video2Id).ConfigureAwait(false);

            var recentlyWatched = repository.GetRecentlyWatchedSeriesInLibrary(testLibrary.LibraryId, 2).Result;

            CollectionAssert.AreEqual(new List <Series> {
                series2, series
            }, recentlyWatched);
        }
Пример #21
0
        private long GetNewVideoId()
        {
            var dto = CreateVideoUtil.GetNewVideoDetails(library.LibraryId, -1, -1);

            return(videoRepository.CreateVideo(dto));
        }