From 6bd7b47fd9a6ab34662d2816c6d686a36340d71f Mon Sep 17 00:00:00 2001 From: Zoe Roux Date: Tue, 29 Jun 2021 23:51:12 +0200 Subject: [PATCH] Adding failing tests for tracks --- .../{EpisodeTest.cs => EpisodeTests.cs} | 0 .../Library/SpecificTests/TrackTests.cs | 38 +++++++++++++++++++ Kyoo.Tests/Library/TestSample.cs | 24 ++++++++++++ .../Repositories/EpisodeRepository.cs | 2 +- 4 files changed, 63 insertions(+), 1 deletion(-) rename Kyoo.Tests/Library/SpecificTests/{EpisodeTest.cs => EpisodeTests.cs} (100%) create mode 100644 Kyoo.Tests/Library/SpecificTests/TrackTests.cs diff --git a/Kyoo.Tests/Library/SpecificTests/EpisodeTest.cs b/Kyoo.Tests/Library/SpecificTests/EpisodeTests.cs similarity index 100% rename from Kyoo.Tests/Library/SpecificTests/EpisodeTest.cs rename to Kyoo.Tests/Library/SpecificTests/EpisodeTests.cs diff --git a/Kyoo.Tests/Library/SpecificTests/TrackTests.cs b/Kyoo.Tests/Library/SpecificTests/TrackTests.cs new file mode 100644 index 00000000..6506e9d4 --- /dev/null +++ b/Kyoo.Tests/Library/SpecificTests/TrackTests.cs @@ -0,0 +1,38 @@ +using Kyoo.Controllers; +using Kyoo.Models; +using Xunit; +using Xunit.Abstractions; + +namespace Kyoo.Tests.Library +{ + namespace SqLite + { + public class TrackTests : ATrackTests + { + public TrackTests(ITestOutputHelper output) + : base(new RepositoryActivator(output)) { } + } + } + + + namespace PostgreSQL + { + [Collection(nameof(Postgresql))] + public class TrackTests : ATrackTests + { + public TrackTests(PostgresFixture postgres, ITestOutputHelper output) + : base(new RepositoryActivator(output, postgres)) { } + } + } + + public abstract class ATrackTests : RepositoryTests + { + private readonly ITrackRepository _repository; + + protected ATrackTests(RepositoryActivator repositories) + : base(repositories) + { + _repository = repositories.LibraryManager.TrackRepository; + } + } +} \ No newline at end of file diff --git a/Kyoo.Tests/Library/TestSample.cs b/Kyoo.Tests/Library/TestSample.cs index f5651b80..04490604 100644 --- a/Kyoo.Tests/Library/TestSample.cs +++ b/Kyoo.Tests/Library/TestSample.cs @@ -88,6 +88,24 @@ namespace Kyoo.Tests ReleaseDate = new DateTime(2020, 06, 05) } }, + { + typeof(Track), + () => new Track + { + ID = 1, + EpisodeID = 1, + Codec = "subrip", + Language = "eng", + Path = "/path", + Title = "Subtitle track", + Type = StreamType.Subtitle, + EpisodeSlug = Get().Slug, + IsDefault = true, + IsExternal = false, + IsForced = false, + TrackIndex = 1 + } + }, { typeof(People), () => new People @@ -133,6 +151,12 @@ namespace Kyoo.Tests episode.SeasonID = 0; episode.Season = season; context.Episodes.Add(episode); + + Track track = Get(); + track.ID = 0; + track.EpisodeID = 0; + track.Episode = episode; + context.Tracks.Add(track); context.SaveChanges(); } diff --git a/Kyoo/Controllers/Repositories/EpisodeRepository.cs b/Kyoo/Controllers/Repositories/EpisodeRepository.cs index 2ffa3f1d..39356960 100644 --- a/Kyoo/Controllers/Repositories/EpisodeRepository.cs +++ b/Kyoo/Controllers/Repositories/EpisodeRepository.cs @@ -127,7 +127,7 @@ namespace Kyoo.Controllers if (changed.Tracks != null || resetOld) { - await _tracks.DeleteAll(x => x.EpisodeID == resource.ID); + await Database.Entry(resource).Collection(x => x.Tracks).LoadAsync(); resource.Tracks = changed.Tracks; await ValidateTracks(resource); }