private Video CreateAndRetrieveVideo(long libraryId, long seriesId) { var dto = CreateVideoUtil.GetNewVideoDetails(libraryId, -1, seriesId); var videoId = videoRepository.CreateVideo(dto); return(videoRepository.GetVideo(videoId).Result); }
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); }
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); }
private Video CreateVideo() { var dto = CreateVideoUtil.GetNewVideoDetails(testLibrary.LibraryId, -1, -1); var videoId = videoRepository.CreateVideo(dto); return(videoRepository.GetVideo(videoId).Result); }
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); }
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; }
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)); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
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); }
private long GetNewVideoId() { var dto = CreateVideoUtil.GetNewVideoDetails(library.LibraryId, -1, -1); return(videoRepository.CreateVideo(dto)); }