Cleaning namespaces and adding episodes tests

This commit is contained in:
Zoe Roux 2021-06-21 23:44:23 +02:00
parent d7d40aef24
commit d2f774e32d
6 changed files with 72 additions and 32 deletions

View File

@ -16,7 +16,6 @@
</PackageReference> </PackageReference>
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.10.0" /> <PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.10.0" />
<PackageReference Include="xunit" Version="2.4.1" /> <PackageReference Include="xunit" Version="2.4.1" />
<PackageReference Include="Xunit.Extensions.Ordering" Version="1.4.5" />
<PackageReference Include="xunit.runner.visualstudio" Version="2.4.3"> <PackageReference Include="xunit.runner.visualstudio" Version="2.4.3">
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets> <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
<PrivateAssets>all</PrivateAssets> <PrivateAssets>all</PrivateAssets>

View File

@ -0,0 +1,32 @@
using Kyoo.Models;
using Xunit;
namespace Kyoo.Tests.Library
{
namespace SqLite
{
public class EpisodeTests : AEpisodeTests
{
public EpisodeTests()
: base(new RepositoryActivator()) { }
}
}
namespace PostgreSQL
{
[Collection(nameof(Postgresql))]
public class EpisodeTests : AEpisodeTests
{
public EpisodeTests(PostgresFixture postgres)
: base(new RepositoryActivator(postgres)) { }
}
}
public abstract class AEpisodeTests : RepositoryTests<Episode>
{
protected AEpisodeTests(RepositoryActivator repositories)
: base(repositories)
{ }
}
}

View File

@ -1,11 +1,10 @@
using System; using System;
using System.Diagnostics.CodeAnalysis; using System.Diagnostics.CodeAnalysis;
using System.Linq;
using System.Threading.Tasks; using System.Threading.Tasks;
using Kyoo.Models; using Kyoo.Models;
using Xunit; using Xunit;
namespace Kyoo.Tests.SpecificTests namespace Kyoo.Tests.Library
{ {
public class GlobalTests : IDisposable, IAsyncDisposable public class GlobalTests : IDisposable, IAsyncDisposable
{ {

View File

@ -2,30 +2,34 @@ using System.Threading.Tasks;
using Kyoo.Controllers; using Kyoo.Controllers;
using Kyoo.Models; using Kyoo.Models;
using Xunit; using Xunit;
using Xunit.Extensions.Ordering;
namespace Kyoo.Tests.SpecificTests namespace Kyoo.Tests.Library
{ {
public class SqLiteSeasonTests : SeasonTests namespace SqLite
{ {
public SqLiteSeasonTests() public class SeasonTests : ASeasonTests
: base(new RepositoryActivator()) {
{ } public SeasonTests()
: base(new RepositoryActivator()) { }
}
} }
public class PostgresSeasonTests : SeasonTests, IAssemblyFixture<PostgresFixture> namespace PostgreSQL
{ {
public PostgresSeasonTests(PostgresFixture postgres) [Collection(nameof(Postgresql))]
: base(new RepositoryActivator(postgres)) public class SeasonTests : ASeasonTests
{ } {
public SeasonTests(PostgresFixture postgres)
: base(new RepositoryActivator(postgres)) { }
}
} }
public abstract class SeasonTests : RepositoryTests<Season> public abstract class ASeasonTests : RepositoryTests<Season>
{ {
private readonly ISeasonRepository _repository; private readonly ISeasonRepository _repository;
protected SeasonTests(RepositoryActivator repositories) protected ASeasonTests(RepositoryActivator repositories)
: base(repositories) : base(repositories)
{ {
_repository = Repositories.LibraryManager.SeasonRepository; _repository = Repositories.LibraryManager.SeasonRepository;

View File

@ -6,29 +6,33 @@ using Kyoo.Controllers;
using Kyoo.Models; using Kyoo.Models;
using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore;
using Xunit; using Xunit;
using Xunit.Extensions.Ordering;
namespace Kyoo.Tests.SpecificTests namespace Kyoo.Tests.Library
{ {
public class SqLiteShowTests : ShowTests namespace SqLite
{ {
public SqLiteShowTests() public class ShowTests : AShowTests
: base(new RepositoryActivator()) {
{ } public ShowTests()
: base(new RepositoryActivator()) { }
}
} }
public class PostgresShowTests : ShowTests, IAssemblyFixture<PostgresFixture> namespace PostgreSQL
{ {
public PostgresShowTests(PostgresFixture postgres) [Collection(nameof(Postgresql))]
: base(new RepositoryActivator(postgres)) public class ShowTests : AShowTests
{ } {
public ShowTests(PostgresFixture postgres)
: base(new RepositoryActivator(postgres)) { }
}
} }
public abstract class ShowTests : RepositoryTests<Show> public abstract class AShowTests : RepositoryTests<Show>
{ {
private readonly IShowRepository _repository; private readonly IShowRepository _repository;
protected ShowTests(RepositoryActivator repositories) protected AShowTests(RepositoryActivator repositories)
: base(repositories) : base(repositories)
{ {
_repository = Repositories.LibraryManager.ShowRepository; _repository = Repositories.LibraryManager.ShowRepository;

View File

@ -8,8 +8,6 @@ using Microsoft.Extensions.Logging;
using Npgsql; using Npgsql;
using Xunit; using Xunit;
[assembly: TestFramework("Xunit.Extensions.Ordering.TestFramework", "Xunit.Extensions.Ordering")]
namespace Kyoo.Tests namespace Kyoo.Tests
{ {
public sealed class SqLiteTestContext : TestContext public sealed class SqLiteTestContext : TestContext
@ -56,6 +54,10 @@ namespace Kyoo.Tests
return new SqLiteContext(_context); return new SqLiteContext(_context);
} }
} }
[CollectionDefinition(nameof(Postgresql))]
public class PostgresCollection : ICollectionFixture<PostgresFixture>
{}
public sealed class PostgresFixture : IDisposable public sealed class PostgresFixture : IDisposable
{ {