diff --git a/Kyoo.Tests/Library/SpecificTests/EpisodeTest.cs b/Kyoo.Tests/Library/SpecificTests/EpisodeTest.cs index d3603567..868de9d7 100644 --- a/Kyoo.Tests/Library/SpecificTests/EpisodeTest.cs +++ b/Kyoo.Tests/Library/SpecificTests/EpisodeTest.cs @@ -81,16 +81,87 @@ namespace Kyoo.Tests.Library [Fact] public async Task EpisodeCreationSlugTest() { - Episode season = await _repository.Create(new Episode + Episode episode = await _repository.Create(new Episode { ShowID = TestSample.Get().ID, SeasonNumber = 2, EpisodeNumber = 4 }); - Assert.Equal($"{TestSample.Get().Slug}-s2e4", season.Slug); + Assert.Equal($"{TestSample.Get().Slug}-s2e4", episode.Slug); } // TODO absolute numbering tests + + + [Fact] + public void AbsoluteSlugTest() + { + Assert.Equal($"{TestSample.Get().Slug}-{TestSample.GetAbsoluteEpisode().AbsoluteNumber}", + TestSample.GetAbsoluteEpisode().Slug); + } + + [Fact] + public async Task EpisodeCreationAbsoluteSlugTest() + { + Episode episode = await _repository.Create(TestSample.GetAbsoluteEpisode()); + Assert.Equal($"{TestSample.Get().Slug}-{TestSample.GetAbsoluteEpisode().AbsoluteNumber}", episode.Slug); + } + + [Fact] + public async Task SlugEditAbsoluteTest() + { + Episode episode = await _repository.Create(TestSample.GetAbsoluteEpisode()); + Show show = new() + { + ID = episode.ShowID, + Slug = "new-slug" + }; + await Repositories.LibraryManager.ShowRepository.Edit(show, false); + episode = await _repository.Get(2); + Assert.Equal($"new-slug-3", episode.Slug); + } + + + [Fact] + public async Task AbsoluteNumberEditTest() + { + await _repository.Create(TestSample.GetAbsoluteEpisode()); + await _repository.Edit(new Episode + { + ID = 1, + AbsoluteNumber = 56 + }, false); + Episode episode = await _repository.Get(2); + Assert.Equal($"{TestSample.Get().Slug}-56", episode.Slug); + } + + [Fact] + public async Task AbsoluteToNormalEditTest() + { + await _repository.Create(TestSample.GetAbsoluteEpisode()); + await _repository.Edit(new Episode + { + ID = 1, + SeasonNumber = 1, + EpisodeNumber = 2 + }, false); + Episode episode = await _repository.Get(1); + Assert.Equal($"{TestSample.Get().Slug}-s1e2", episode.Slug); + } + + [Fact] + public async Task NormalToAbsoluteEditTest() + { + await _repository.Create(TestSample.GetAbsoluteEpisode()); + await _repository.Edit(new Episode + { + ID = 1, + SeasonNumber = -1, + AbsoluteNumber = 12 + }, false); + Episode episode = await _repository.Get(1); + Assert.Equal($"{TestSample.Get().Slug}-12", episode.Slug); + } } } \ No newline at end of file diff --git a/Kyoo.Tests/Library/TestSample.cs b/Kyoo.Tests/Library/TestSample.cs index 3e5c57da..cb8650fa 100644 --- a/Kyoo.Tests/Library/TestSample.cs +++ b/Kyoo.Tests/Library/TestSample.cs @@ -88,7 +88,7 @@ namespace Kyoo.Tests } } }; - + public static T Get() { return (T)Samples[typeof(T)](); @@ -121,5 +121,24 @@ namespace Kyoo.Tests context.SaveChanges(); } + + public static Episode GetAbsoluteEpisode() + { + return new() + { + ID = 2, + ShowSlug = "anohana", + ShowID = 1, + SeasonID = -1, + SeasonNumber = -1, + EpisodeNumber = -1, + AbsoluteNumber = 3, + Path = "/home/kyoo/anohana-3", + Thumb = "thumbnail", + Title = "Episode 3", + Overview = "Summary of the third absolute episode", + ReleaseDate = new DateTime(2020, 06, 05) + }; + } } } \ No newline at end of file