mirror of
https://github.com/zoriya/Kyoo.git
synced 2025-05-30 19:54:16 -04:00
Fix tests
This commit is contained in:
parent
9bb896e84b
commit
3d30d65184
@ -150,7 +150,7 @@ namespace Kyoo.Core.Controllers
|
|||||||
public override async Task<Episode> Create(Episode obj)
|
public override async Task<Episode> Create(Episode obj)
|
||||||
{
|
{
|
||||||
await base.Create(obj);
|
await base.Create(obj);
|
||||||
obj.ShowSlug = _database.Shows.First(x => x.ID == obj.ShowID).Slug;
|
obj.ShowSlug = obj.Show?.Slug ?? _database.Shows.First(x => x.ID == obj.ShowID).Slug;
|
||||||
_database.Entry(obj).State = EntityState.Added;
|
_database.Entry(obj).State = EntityState.Added;
|
||||||
await _database.SaveChangesAsync(() =>
|
await _database.SaveChangesAsync(() =>
|
||||||
obj.SeasonNumber != null && obj.EpisodeNumber != null
|
obj.SeasonNumber != null && obj.EpisodeNumber != null
|
||||||
|
@ -31,6 +31,27 @@ namespace Kyoo.Postgresql.Migrations
|
|||||||
/// <inheritdoc/>
|
/// <inheritdoc/>
|
||||||
protected override void Up(MigrationBuilder migrationBuilder)
|
protected override void Up(MigrationBuilder migrationBuilder)
|
||||||
{
|
{
|
||||||
|
// language=PostgreSQL
|
||||||
|
migrationBuilder.Sql("DROP TRIGGER show_slug_trigger ON shows;");
|
||||||
|
// language=PostgreSQL
|
||||||
|
migrationBuilder.Sql(@"DROP FUNCTION show_slug_update;");
|
||||||
|
// language=PostgreSQL
|
||||||
|
migrationBuilder.Sql(@"DROP TRIGGER season_slug_trigger ON seasons;");
|
||||||
|
// language=PostgreSQL
|
||||||
|
migrationBuilder.Sql(@"DROP FUNCTION season_slug_update;");
|
||||||
|
// language=PostgreSQL
|
||||||
|
migrationBuilder.Sql("DROP TRIGGER episode_slug_trigger ON episodes;");
|
||||||
|
// language=PostgreSQL
|
||||||
|
migrationBuilder.Sql(@"DROP FUNCTION episode_slug_update;");
|
||||||
|
// language=PostgreSQL
|
||||||
|
migrationBuilder.Sql("DROP TRIGGER track_slug_trigger ON tracks;");
|
||||||
|
// language=PostgreSQL
|
||||||
|
migrationBuilder.Sql(@"DROP FUNCTION track_slug_update;");
|
||||||
|
// language=PostgreSQL
|
||||||
|
migrationBuilder.Sql("DROP TRIGGER episode_track_slug_trigger ON episodes;");
|
||||||
|
// language=PostgreSQL
|
||||||
|
migrationBuilder.Sql(@"DROP FUNCTION episode_update_tracks_slug;");
|
||||||
|
|
||||||
migrationBuilder.AlterColumn<string>(
|
migrationBuilder.AlterColumn<string>(
|
||||||
name: "slug",
|
name: "slug",
|
||||||
table: "tracks",
|
table: "tracks",
|
||||||
@ -60,27 +81,6 @@ namespace Kyoo.Postgresql.Migrations
|
|||||||
oldClrType: typeof(string),
|
oldClrType: typeof(string),
|
||||||
oldType: "text",
|
oldType: "text",
|
||||||
oldNullable: true);
|
oldNullable: true);
|
||||||
|
|
||||||
// language=PostgreSQL
|
|
||||||
migrationBuilder.Sql("DROP TRIGGER show_slug_trigger ON shows;");
|
|
||||||
// language=PostgreSQL
|
|
||||||
migrationBuilder.Sql(@"DROP FUNCTION show_slug_update;");
|
|
||||||
// language=PostgreSQL
|
|
||||||
migrationBuilder.Sql(@"DROP TRIGGER season_slug_trigger ON seasons;");
|
|
||||||
// language=PostgreSQL
|
|
||||||
migrationBuilder.Sql(@"DROP FUNCTION season_slug_update;");
|
|
||||||
// language=PostgreSQL
|
|
||||||
migrationBuilder.Sql("DROP TRIGGER episode_slug_trigger ON episodes;");
|
|
||||||
// language=PostgreSQL
|
|
||||||
migrationBuilder.Sql(@"DROP FUNCTION episode_slug_update;");
|
|
||||||
// language=PostgreSQL
|
|
||||||
migrationBuilder.Sql("DROP TRIGGER track_slug_trigger ON tracks;");
|
|
||||||
// language=PostgreSQL
|
|
||||||
migrationBuilder.Sql(@"DROP FUNCTION track_slug_update;");
|
|
||||||
// language=PostgreSQL
|
|
||||||
migrationBuilder.Sql("DROP TRIGGER episode_track_slug_trigger ON episodes;");
|
|
||||||
// language=PostgreSQL
|
|
||||||
migrationBuilder.Sql(@"DROP FUNCTION episode_update_tracks_slug;");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <inheritdoc/>
|
/// <inheritdoc/>
|
||||||
|
@ -108,7 +108,7 @@ namespace Kyoo.Tests.Database
|
|||||||
}
|
}
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
public async Task CreateTest()
|
public virtual async Task CreateTest()
|
||||||
{
|
{
|
||||||
await Assert.ThrowsAsync<DuplicatedItemException>(() => _repository.Create(TestSample.Get<T>()));
|
await Assert.ThrowsAsync<DuplicatedItemException>(() => _repository.Create(TestSample.Get<T>()));
|
||||||
await _repository.Delete(TestSample.Get<T>());
|
await _repository.Delete(TestSample.Get<T>());
|
||||||
@ -132,7 +132,7 @@ namespace Kyoo.Tests.Database
|
|||||||
}
|
}
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
public async Task CreateIfNotExistTest()
|
public virtual async Task CreateIfNotExistTest()
|
||||||
{
|
{
|
||||||
T expected = TestSample.Get<T>();
|
T expected = TestSample.Get<T>();
|
||||||
KAssert.DeepEqual(expected, await _repository.CreateIfNotExists(TestSample.Get<T>()));
|
KAssert.DeepEqual(expected, await _repository.CreateIfNotExists(TestSample.Get<T>()));
|
||||||
|
@ -21,6 +21,7 @@ using System.Linq;
|
|||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using Kyoo.Abstractions.Controllers;
|
using Kyoo.Abstractions.Controllers;
|
||||||
using Kyoo.Abstractions.Models;
|
using Kyoo.Abstractions.Models;
|
||||||
|
using Kyoo.Abstractions.Models.Exceptions;
|
||||||
using Kyoo.Postgresql;
|
using Kyoo.Postgresql;
|
||||||
using Microsoft.EntityFrameworkCore;
|
using Microsoft.EntityFrameworkCore;
|
||||||
using Xunit;
|
using Xunit;
|
||||||
@ -45,6 +46,7 @@ namespace Kyoo.Tests.Database
|
|||||||
protected AEpisodeTests(RepositoryActivator repositories)
|
protected AEpisodeTests(RepositoryActivator repositories)
|
||||||
: base(repositories)
|
: base(repositories)
|
||||||
{
|
{
|
||||||
|
|
||||||
_repository = repositories.LibraryManager.EpisodeRepository;
|
_repository = repositories.LibraryManager.EpisodeRepository;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -332,5 +334,30 @@ namespace Kyoo.Tests.Database
|
|||||||
value.Show = TestSample.Get<Show>();
|
value.Show = TestSample.Get<Show>();
|
||||||
KAssert.DeepEqual(value, ret.First());
|
KAssert.DeepEqual(value, ret.First());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[Fact]
|
||||||
|
public override async Task CreateTest()
|
||||||
|
{
|
||||||
|
await Assert.ThrowsAsync<DuplicatedItemException>(() => _repository.Create(TestSample.Get<Episode>()));
|
||||||
|
await _repository.Delete(TestSample.Get<Episode>());
|
||||||
|
|
||||||
|
Episode expected = TestSample.Get<Episode>();
|
||||||
|
expected.ID = 0;
|
||||||
|
expected.ShowID = (await Repositories.LibraryManager.ShowRepository.Create(TestSample.Get<Show>())).ID;
|
||||||
|
expected.SeasonID = (await Repositories.LibraryManager.SeasonRepository.Create(TestSample.Get<Season>())).ID;
|
||||||
|
await _repository.Create(expected);
|
||||||
|
KAssert.DeepEqual(expected, await _repository.Get(expected.Slug));
|
||||||
|
}
|
||||||
|
|
||||||
|
[Fact]
|
||||||
|
public override async Task CreateIfNotExistTest()
|
||||||
|
{
|
||||||
|
Episode expected = TestSample.Get<Episode>();
|
||||||
|
KAssert.DeepEqual(expected, await _repository.CreateIfNotExists(TestSample.Get<Episode>()));
|
||||||
|
await _repository.Delete(TestSample.Get<Episode>());
|
||||||
|
expected.ShowID = (await Repositories.LibraryManager.ShowRepository.Create(TestSample.Get<Show>())).ID;
|
||||||
|
expected.SeasonID = (await Repositories.LibraryManager.SeasonRepository.Create(TestSample.Get<Season>())).ID;
|
||||||
|
KAssert.DeepEqual(expected, await _repository.CreateIfNotExists(expected));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -41,8 +41,6 @@ namespace Kyoo.Tests
|
|||||||
|
|
||||||
public PostgresFixture()
|
public PostgresFixture()
|
||||||
{
|
{
|
||||||
// TODO Assert.Skip when postgres is not available. (this needs xunit v3)
|
|
||||||
|
|
||||||
string id = Guid.NewGuid().ToString().Replace('-', '_');
|
string id = Guid.NewGuid().ToString().Replace('-', '_');
|
||||||
Template = $"kyoo_template_{id}";
|
Template = $"kyoo_template_{id}";
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user