diff --git a/JSMR.Tests/Integration/Seed.cs b/JSMR.Tests/Integration/Seed.cs deleted file mode 100644 index 1ac2a2f..0000000 --- a/JSMR.Tests/Integration/Seed.cs +++ /dev/null @@ -1,45 +0,0 @@ -using JSMR.Domain.Entities; -using JSMR.Infrastructure.Data; -using Microsoft.EntityFrameworkCore; - -namespace JSMR.Tests.Integration; - -public static class Seed -{ - public static async Task SeedBasicTagsAsync(AppDbContext context) - { - if (await context.Tags.AnyAsync()) - return; - - context.Tags.AddRange( - new() { TagId = 1, Name = "OL", Favorite = false, Blacklisted = false }, - new() { TagId = 2, Name = "ほのぼの", Favorite = true, Blacklisted = false }, - new() { TagId = 3, Name = "ツンデレ", Favorite = false, Blacklisted = true } - ); - - context.EnglishTags.AddRange( - new() { EnglishTagId = 1, TagId = 1, Name = "Office Lady" }, - new() { EnglishTagId = 2, TagId = 2, Name = "Heartwarming" }, - new() { EnglishTagId = 3, TagId = 3, Name = "Tsundere" } - ); - - await context.SaveChangesAsync(); - } - - public static async Task SeedCirclesWithWorksAsync(AppDbContext context) - { - var c1 = new Circle { Name = "Circle A", MakerId = "mk001", Favorite = false, Blacklisted = false, Spam = false }; - var c2 = new Circle { Name = "Circle B", MakerId = "mk002", Favorite = true, Blacklisted = false, Spam = false }; - context.Circles.AddRange(c1, c2); - - await context.SaveChangesAsync(); - - context.VoiceWorks.AddRange( - new VoiceWork { CircleId = c1.CircleId, ProductId = "R-1", ProductName = "Work 1", Downloads = 100, SalesDate = new DateTime(2024, 1, 1), HasImage = true }, - new VoiceWork { CircleId = c1.CircleId, ProductId = "R-10", ProductName = "Work 10", Downloads = 50, SalesDate = new DateTime(2024, 2, 1), HasImage = false }, - new VoiceWork { CircleId = c2.CircleId, ProductId = "R-2", ProductName = "Work 2", Downloads = 200, SalesDate = new DateTime(2024, 3, 1), HasImage = true } - ); - - await context.SaveChangesAsync(); - } -} \ No newline at end of file diff --git a/JSMR.Tests/Fixtures/CircleSearchProviderFixture.cs b/JSMR.Tests/Search/Circle/CircleSearchProviderFixture.cs similarity index 91% rename from JSMR.Tests/Fixtures/CircleSearchProviderFixture.cs rename to JSMR.Tests/Search/Circle/CircleSearchProviderFixture.cs index ddccec2..b463cdc 100644 --- a/JSMR.Tests/Fixtures/CircleSearchProviderFixture.cs +++ b/JSMR.Tests/Search/Circle/CircleSearchProviderFixture.cs @@ -1,6 +1,7 @@ using JSMR.Infrastructure.Data; +using JSMR.Tests.Fixtures; -namespace JSMR.Tests.Fixtures; +namespace JSMR.Tests.Search.Circle; public sealed class CircleSearchProviderFixture(MariaDbContainerFixture container) : SearchProviderFixture(container) { diff --git a/JSMR.Tests/Integration/CircleSearchProviderTests.cs b/JSMR.Tests/Search/Circle/CircleSearchProviderTests.cs similarity index 56% rename from JSMR.Tests/Integration/CircleSearchProviderTests.cs rename to JSMR.Tests/Search/Circle/CircleSearchProviderTests.cs index 6d4925d..58e306b 100644 --- a/JSMR.Tests/Integration/CircleSearchProviderTests.cs +++ b/JSMR.Tests/Search/Circle/CircleSearchProviderTests.cs @@ -1,22 +1,25 @@ -using JSMR.Application.Circles.Contracts; -using JSMR.Application.Circles.Queries.Search; +using JSMR.Application.Circles.Queries.Search; using JSMR.Application.Common.Search; using JSMR.Infrastructure.Data; using JSMR.Infrastructure.Data.Repositories.Circles; -using JSMR.Tests.Fixtures; using Shouldly; +using SortDirection = JSMR.Application.Common.Search.SortDirection; -namespace JSMR.Tests.Integration; +namespace JSMR.Tests.Search.Circle; public class CircleSearchProviderTests(CircleSearchProviderFixture fixture) : IClassFixture { - [Fact] - public async Task Filter_None() + private async Task> SearchAsync(SearchOptions options) { - //await using AppDbContext context = fixture.CreateDbContext(); AppDbContext context = fixture.DbContext!; CircleSearchProvider provider = new(context); + return await provider.SearchAsync(options, TestContext.Current.CancellationToken); + } + + [Fact] + public async Task Filter_None() + { var options = new SearchOptions() { Criteria = new() @@ -25,7 +28,7 @@ public class CircleSearchProviderTests(CircleSearchProviderFixture fixture) : IC } }; - var result = await provider.SearchAsync(options, CancellationToken.None); + var result = await SearchAsync(options); result.Items.Length.ShouldBe(4); result.TotalItems.ShouldBe(4); @@ -34,19 +37,15 @@ public class CircleSearchProviderTests(CircleSearchProviderFixture fixture) : IC [Fact] public async Task Filter_By_Status_Not_Blacklisted() { - //await using AppDbContext context = fixture.CreateDbContext(); - AppDbContext context = fixture.DbContext!; - CircleSearchProvider provider = new(context); - var options = new SearchOptions() { Criteria = new() { - Status = Application.Circles.Queries.Search.CircleStatus.NotBlacklisted + Status = CircleStatus.NotBlacklisted } }; - var result = await provider.SearchAsync(options, CancellationToken.None); + var result = await SearchAsync(options); result.Items.Length.ShouldBe(3); result.TotalItems.ShouldBe(3); @@ -56,19 +55,15 @@ public class CircleSearchProviderTests(CircleSearchProviderFixture fixture) : IC [Fact] public async Task Filter_By_Status_Favorited() { - //await using AppDbContext context = fixture.CreateDbContext(); - AppDbContext context = fixture.DbContext!; - CircleSearchProvider provider = new(context); - var options = new SearchOptions() { Criteria = new() { - Status = Application.Circles.Queries.Search.CircleStatus.Favorited + Status = CircleStatus.Favorited } }; - var result = await provider.SearchAsync(options, CancellationToken.None); + var result = await SearchAsync(options); result.Items.Length.ShouldBe(1); result.TotalItems.ShouldBe(1); @@ -78,19 +73,15 @@ public class CircleSearchProviderTests(CircleSearchProviderFixture fixture) : IC [Fact] public async Task Filter_By_Status_Blacklisted() { - //await using AppDbContext context = fixture.CreateDbContext(); - AppDbContext context = fixture.DbContext!; - CircleSearchProvider provider = new(context); - var options = new SearchOptions() { Criteria = new() { - Status = Application.Circles.Queries.Search.CircleStatus.Blacklisted + Status = CircleStatus.Blacklisted } }; - var result = await provider.SearchAsync(options, CancellationToken.None); + var result = await SearchAsync(options); result.Items.Length.ShouldBe(1); result.TotalItems.ShouldBe(1); @@ -100,19 +91,15 @@ public class CircleSearchProviderTests(CircleSearchProviderFixture fixture) : IC [Fact] public async Task Filter_By_Status_Spam() { - //await using AppDbContext context = fixture.CreateDbContext(); - AppDbContext context = fixture.DbContext!; - CircleSearchProvider provider = new(context); - var options = new SearchOptions() { Criteria = new() { - Status = Application.Circles.Queries.Search.CircleStatus.Spam + Status = CircleStatus.Spam } }; - var result = await provider.SearchAsync(options, CancellationToken.None); + var result = await SearchAsync(options); result.Items.Length.ShouldBe(1); result.TotalItems.ShouldBe(1); @@ -122,10 +109,6 @@ public class CircleSearchProviderTests(CircleSearchProviderFixture fixture) : IC [Fact] public async Task Filter_By_Name_Circle_Name() { - //await using AppDbContext context = fixture.CreateDbContext(); - AppDbContext context = fixture.DbContext!; - CircleSearchProvider provider = new(context); - var options = new SearchOptions() { Criteria = new() @@ -134,7 +117,7 @@ public class CircleSearchProviderTests(CircleSearchProviderFixture fixture) : IC } }; - var result = await provider.SearchAsync(options, CancellationToken.None); + var result = await SearchAsync(options); result.Items.Length.ShouldBe(2); result.TotalItems.ShouldBe(2); @@ -144,10 +127,6 @@ public class CircleSearchProviderTests(CircleSearchProviderFixture fixture) : IC [Fact] public async Task Filter_By_Name_Circle_Id() { - //await using AppDbContext context = fixture.CreateDbContext(); - AppDbContext context = fixture.DbContext!; - CircleSearchProvider provider = new(context); - var options = new SearchOptions() { Criteria = new() @@ -156,7 +135,7 @@ public class CircleSearchProviderTests(CircleSearchProviderFixture fixture) : IC } }; - var result = await provider.SearchAsync(options, CancellationToken.None); + var result = await SearchAsync(options); result.Items.Length.ShouldBe(1); result.TotalItems.ShouldBe(1); @@ -166,16 +145,12 @@ public class CircleSearchProviderTests(CircleSearchProviderFixture fixture) : IC [Fact] public async Task Sort_By_Name_Descending() { - //await using AppDbContext context = fixture.CreateDbContext(); - AppDbContext context = fixture.DbContext!; - CircleSearchProvider provider = new(context); - var options = new SearchOptions() { - SortOptions = [new(CircleSortField.Name, Application.Common.Search.SortDirection.Descending)] + SortOptions = [new(CircleSortField.Name, SortDirection.Descending)] }; - var result = await provider.SearchAsync(options, CancellationToken.None); + var result = await SearchAsync(options); result.Items.Length.ShouldBe(4); result.TotalItems.ShouldBe(4); @@ -188,16 +163,12 @@ public class CircleSearchProviderTests(CircleSearchProviderFixture fixture) : IC [Fact] public async Task Sort_By_Favorite_Ascending() { - //await using AppDbContext context = fixture.CreateDbContext(); - AppDbContext context = fixture.DbContext!; - CircleSearchProvider provider = new(context); - var options = new SearchOptions() { - SortOptions = [new(CircleSortField.Favorite, Application.Common.Search.SortDirection.Ascending)] + SortOptions = [new(CircleSortField.Favorite, SortDirection.Ascending)] }; - var result = await provider.SearchAsync(options, CancellationToken.None); + var result = await SearchAsync(options); result.Items.Length.ShouldBe(4); result.TotalItems.ShouldBe(4); @@ -208,16 +179,12 @@ public class CircleSearchProviderTests(CircleSearchProviderFixture fixture) : IC [Fact] public async Task Sort_By_Blacklisted_Ascending() { - //await using AppDbContext context = fixture.CreateDbContext(); - AppDbContext context = fixture.DbContext!; - CircleSearchProvider provider = new(context); - var options = new SearchOptions() { - SortOptions = [new(CircleSortField.Blacklisted, Application.Common.Search.SortDirection.Ascending)] + SortOptions = [new(CircleSortField.Blacklisted, SortDirection.Ascending)] }; - var result = await provider.SearchAsync(options, CancellationToken.None); + var result = await SearchAsync(options); result.Items.Length.ShouldBe(4); result.TotalItems.ShouldBe(4); @@ -228,16 +195,12 @@ public class CircleSearchProviderTests(CircleSearchProviderFixture fixture) : IC [Fact] public async Task Sort_By_Spam_Ascending() { - //await using AppDbContext context = fixture.CreateDbContext(); - AppDbContext context = fixture.DbContext!; - CircleSearchProvider provider = new(context); - var options = new SearchOptions() { - SortOptions = [new(CircleSortField.Spam, Application.Common.Search.SortDirection.Ascending)] + SortOptions = [new(CircleSortField.Spam, SortDirection.Ascending)] }; - var result = await provider.SearchAsync(options, CancellationToken.None); + var result = await SearchAsync(options); result.Items.Length.ShouldBe(4); result.TotalItems.ShouldBe(4); diff --git a/JSMR.Tests/Fixtures/CreatorSearchProviderFixture.cs b/JSMR.Tests/Search/Creator/CreatorSearchProviderFixture.cs similarity index 89% rename from JSMR.Tests/Fixtures/CreatorSearchProviderFixture.cs rename to JSMR.Tests/Search/Creator/CreatorSearchProviderFixture.cs index d4fead4..8f1d105 100644 --- a/JSMR.Tests/Fixtures/CreatorSearchProviderFixture.cs +++ b/JSMR.Tests/Search/Creator/CreatorSearchProviderFixture.cs @@ -1,6 +1,7 @@ using JSMR.Infrastructure.Data; +using JSMR.Tests.Fixtures; -namespace JSMR.Tests.Fixtures; +namespace JSMR.Tests.Search.Creator; public sealed class CreatorSearchProviderFixture(MariaDbContainerFixture container) : SearchProviderFixture(container) { diff --git a/JSMR.Tests/Integration/CreatorSearchProviderTests.cs b/JSMR.Tests/Search/Creator/CreatorSearchProviderTests.cs similarity index 53% rename from JSMR.Tests/Integration/CreatorSearchProviderTests.cs rename to JSMR.Tests/Search/Creator/CreatorSearchProviderTests.cs index 5996c95..761462a 100644 --- a/JSMR.Tests/Integration/CreatorSearchProviderTests.cs +++ b/JSMR.Tests/Search/Creator/CreatorSearchProviderTests.cs @@ -2,26 +2,30 @@ using JSMR.Application.Creators.Queries.Search.Contracts; using JSMR.Infrastructure.Data; using JSMR.Infrastructure.Data.Repositories.Creators; -using JSMR.Tests.Fixtures; using Shouldly; +using SortDirection = JSMR.Application.Common.Search.SortDirection; -namespace JSMR.Tests.Integration; +namespace JSMR.Tests.Search.Creator; public class CreatorSearchProviderTests(CreatorSearchProviderFixture fixture) : IClassFixture { - [Fact] - public async Task Filter_None_Sort_Name_Ascending() + private async Task> SearchAsync(SearchOptions options) { - //await using AppDbContext context = fixture.CreateDbContext(); AppDbContext context = fixture.DbContext!; CreatorSearchProvider provider = new(context); + return await provider.SearchAsync(options, TestContext.Current.CancellationToken); + } + + [Fact] + public async Task Filter_None_Sort_Name_Ascending() + { var options = new SearchOptions() { - SortOptions = [new(CreatorSortField.Name, Application.Common.Search.SortDirection.Ascending)] + SortOptions = [new(CreatorSortField.Name, SortDirection.Ascending)] }; - var result = await provider.SearchAsync(options, TestContext.Current.CancellationToken); + var result = await SearchAsync(options); result.Items.Length.ShouldBe(3); result.TotalItems.ShouldBe(3); @@ -32,16 +36,12 @@ public class CreatorSearchProviderTests(CreatorSearchProviderFixture fixture) : [Fact] public async Task Filter_None_Sort_Name_Descending() { - //await using AppDbContext context = fixture.CreateDbContext(); - AppDbContext context = fixture.DbContext!; - CreatorSearchProvider provider = new(context); - var options = new SearchOptions() { - SortOptions = [new(CreatorSortField.Name, Application.Common.Search.SortDirection.Descending)] + SortOptions = [new(CreatorSortField.Name, SortDirection.Descending)] }; - var result = await provider.SearchAsync(options, TestContext.Current.CancellationToken); + var result = await SearchAsync(options); result.Items.Length.ShouldBe(3); result.TotalItems.ShouldBe(3); @@ -52,16 +52,12 @@ public class CreatorSearchProviderTests(CreatorSearchProviderFixture fixture) : [Fact] public async Task Filter_None_Sort_Favorite_Descending() { - //await using AppDbContext context = fixture.CreateDbContext(); - AppDbContext context = fixture.DbContext!; - CreatorSearchProvider provider = new(context); - var options = new SearchOptions() { - SortOptions = [new(CreatorSortField.Favorite, Application.Common.Search.SortDirection.Ascending)] + SortOptions = [new(CreatorSortField.Favorite, SortDirection.Ascending)] }; - var result = await provider.SearchAsync(options, TestContext.Current.CancellationToken); + var result = await SearchAsync(options); result.Items[0].Name.ShouldBe("John Doe"); } @@ -69,16 +65,12 @@ public class CreatorSearchProviderTests(CreatorSearchProviderFixture fixture) : [Fact] public async Task Filter_None_Sort_Blacklisted_Descending() { - //await using AppDbContext context = fixture.CreateDbContext(); - AppDbContext context = fixture.DbContext!; - CreatorSearchProvider provider = new(context); - var options = new SearchOptions() { - SortOptions = [new(CreatorSortField.Blacklisted, Application.Common.Search.SortDirection.Ascending)] + SortOptions = [new(CreatorSortField.Blacklisted, SortDirection.Ascending)] }; - var result = await provider.SearchAsync(options, TestContext.Current.CancellationToken); + var result = await SearchAsync(options); result.Items[0].Name.ShouldBe("Jane Doe"); } @@ -86,10 +78,6 @@ public class CreatorSearchProviderTests(CreatorSearchProviderFixture fixture) : [Fact] public async Task Filter_By_Name_Creator_Name() { - //await using AppDbContext context = fixture.CreateDbContext(); - AppDbContext context = fixture.DbContext!; - CreatorSearchProvider provider = new(context); - var options = new SearchOptions() { Criteria = new() @@ -98,9 +86,8 @@ public class CreatorSearchProviderTests(CreatorSearchProviderFixture fixture) : } }; - var result = await provider.SearchAsync(options, TestContext.Current.CancellationToken); + var result = await SearchAsync(options); - // Assert result.Items.Length.ShouldBe(1); result.TotalItems.ShouldBe(1); result.Items.ShouldContain(creatorView => creatorView.Name == "Jane Doe"); diff --git a/JSMR.Tests/Fixtures/SearchProviderFixture.cs b/JSMR.Tests/Search/SearchProviderFixture.cs similarity index 92% rename from JSMR.Tests/Fixtures/SearchProviderFixture.cs rename to JSMR.Tests/Search/SearchProviderFixture.cs index b928da8..e432e25 100644 --- a/JSMR.Tests/Fixtures/SearchProviderFixture.cs +++ b/JSMR.Tests/Search/SearchProviderFixture.cs @@ -1,6 +1,7 @@ using JSMR.Infrastructure.Data; +using JSMR.Tests.Fixtures; -namespace JSMR.Tests.Fixtures; +namespace JSMR.Tests.Search; public abstract class SearchProviderFixture(MariaDbContainerFixture container) : IAsyncLifetime { diff --git a/JSMR.Tests/Fixtures/TagSearchProviderFixture.cs b/JSMR.Tests/Search/Tag/TagSearchProviderFixture.cs similarity index 92% rename from JSMR.Tests/Fixtures/TagSearchProviderFixture.cs rename to JSMR.Tests/Search/Tag/TagSearchProviderFixture.cs index 160cee6..9c5655b 100644 --- a/JSMR.Tests/Fixtures/TagSearchProviderFixture.cs +++ b/JSMR.Tests/Search/Tag/TagSearchProviderFixture.cs @@ -1,6 +1,7 @@ using JSMR.Infrastructure.Data; +using JSMR.Tests.Fixtures; -namespace JSMR.Tests.Fixtures; +namespace JSMR.Tests.Search.Tag; public sealed class TagSearchProviderFixture(MariaDbContainerFixture container) : SearchProviderFixture(container) { diff --git a/JSMR.Tests/Integration/TagSearchProviderTests.cs b/JSMR.Tests/Search/Tag/TagSearchProviderTests.cs similarity index 61% rename from JSMR.Tests/Integration/TagSearchProviderTests.cs rename to JSMR.Tests/Search/Tag/TagSearchProviderTests.cs index c7d6f93..5babf1c 100644 --- a/JSMR.Tests/Integration/TagSearchProviderTests.cs +++ b/JSMR.Tests/Search/Tag/TagSearchProviderTests.cs @@ -2,26 +2,30 @@ using JSMR.Application.Tags.Queries.Search.Contracts; using JSMR.Infrastructure.Data; using JSMR.Infrastructure.Data.Repositories.Tags; -using JSMR.Tests.Fixtures; using Shouldly; +using SortDirection = JSMR.Application.Common.Search.SortDirection; -namespace JSMR.Tests.Integration; +namespace JSMR.Tests.Search.Tag; public class TagSearchProviderTests(TagSearchProviderFixture fixture) : IClassFixture { - [Fact] - public async Task Filter_None_Sort_Name() + private async Task> SearchAsync(SearchOptions options) { - //await using AppDbContext context = fixture.CreateDbContext(); AppDbContext context = fixture.DbContext!; TagSearchProvider provider = new(context); + return await provider.SearchAsync(options, TestContext.Current.CancellationToken); + } + + [Fact] + public async Task Filter_None_Sort_Name() + { var options = new SearchOptions() { - SortOptions = [new(TagSortField.Name, Application.Common.Search.SortDirection.Ascending)] + SortOptions = [new(TagSortField.Name, SortDirection.Ascending)] }; - var result = await provider.SearchAsync(options, TestContext.Current.CancellationToken); + var result = await SearchAsync(options); result.Items.Length.ShouldBe(3); result.TotalItems.ShouldBe(3); @@ -32,16 +36,12 @@ public class TagSearchProviderTests(TagSearchProviderFixture fixture) : IClassFi [Fact] public async Task Filter_None_Sort_EnglishName() { - //await using AppDbContext context = fixture.CreateDbContext(); - AppDbContext context = fixture.DbContext!; - TagSearchProvider provider = new(context); - var options = new SearchOptions() { - SortOptions = [new(TagSortField.EnglishName, Application.Common.Search.SortDirection.Ascending)] + SortOptions = [new(TagSortField.EnglishName, SortDirection.Ascending)] }; - var result = await provider.SearchAsync(options, TestContext.Current.CancellationToken); + var result = await SearchAsync(options); result.Items.Length.ShouldBe(3); result.TotalItems.ShouldBe(3); @@ -52,10 +52,6 @@ public class TagSearchProviderTests(TagSearchProviderFixture fixture) : IClassFi [Fact] public async Task Filter_By_Name_Tag_Name() { - //await using AppDbContext context = fixture.CreateDbContext(); - AppDbContext context = fixture.DbContext!; - TagSearchProvider provider = new(context); - var options = new SearchOptions() { Criteria = new() @@ -64,7 +60,7 @@ public class TagSearchProviderTests(TagSearchProviderFixture fixture) : IClassFi } }; - var result = await provider.SearchAsync(options, TestContext.Current.CancellationToken); + var result = await SearchAsync(options); result.Items.Length.ShouldBe(1); result.TotalItems.ShouldBe(1); @@ -74,10 +70,6 @@ public class TagSearchProviderTests(TagSearchProviderFixture fixture) : IClassFi [Fact] public async Task Filter_By_Name_English_Tag_Name() { - //await using AppDbContext context = fixture.CreateDbContext(); - AppDbContext context = fixture.DbContext!; - TagSearchProvider provider = new(context); - var options = new SearchOptions() { Criteria = new() @@ -86,7 +78,7 @@ public class TagSearchProviderTests(TagSearchProviderFixture fixture) : IClassFi } }; - var result = await provider.SearchAsync(options, TestContext.Current.CancellationToken); + var result = await SearchAsync(options); result.Items.Length.ShouldBe(1); result.TotalItems.ShouldBe(1); diff --git a/JSMR.Tests/Fixtures/VoiceWorkSearchProviderFixture.cs b/JSMR.Tests/Search/VoiceWork/VoiceWorkSearchProviderFixture.cs similarity index 98% rename from JSMR.Tests/Fixtures/VoiceWorkSearchProviderFixture.cs rename to JSMR.Tests/Search/VoiceWork/VoiceWorkSearchProviderFixture.cs index 7bb53ed..fa9985a 100644 --- a/JSMR.Tests/Fixtures/VoiceWorkSearchProviderFixture.cs +++ b/JSMR.Tests/Search/VoiceWork/VoiceWorkSearchProviderFixture.cs @@ -1,7 +1,8 @@ using JSMR.Domain.Enums; using JSMR.Infrastructure.Data; +using JSMR.Tests.Fixtures; -namespace JSMR.Tests.Fixtures; +namespace JSMR.Tests.Search.VoiceWork; public sealed class VoiceWorkSearchProviderFixture(MariaDbContainerFixture container) : SearchProviderFixture(container) { diff --git a/JSMR.Tests/Integration/VoiceWorkSearchProviderTests.cs b/JSMR.Tests/Search/VoiceWork/VoiceWorkSearchProviderTests.cs similarity index 60% rename from JSMR.Tests/Integration/VoiceWorkSearchProviderTests.cs rename to JSMR.Tests/Search/VoiceWork/VoiceWorkSearchProviderTests.cs index faf0ab9..8e91c50 100644 --- a/JSMR.Tests/Integration/VoiceWorkSearchProviderTests.cs +++ b/JSMR.Tests/Search/VoiceWork/VoiceWorkSearchProviderTests.cs @@ -2,28 +2,25 @@ using JSMR.Application.VoiceWorks.Queries.Search; using JSMR.Infrastructure.Data; using JSMR.Infrastructure.Data.Repositories.VoiceWorks; -using JSMR.Tests.Fixtures; using Shouldly; +using SortDirection = JSMR.Application.Common.Search.SortDirection; -namespace JSMR.Tests.Integration; +namespace JSMR.Tests.Search.VoiceWork; public class VoiceWorkSearchProviderTests(VoiceWorkSearchProviderFixture fixture) : IClassFixture { - private static VoiceWorkSearchProvider InitializeVoiceWorkSearchProvider(AppDbContext context) + private async Task> SearchAsync(SearchOptions options) { + AppDbContext context = fixture.DbContext!; MySqlVoiceWorkFullTextSearch fullTextSearch = new(); VoiceWorkSearchProvider provider = new(context, fullTextSearch); - return provider; + return await provider.SearchAsync(options, TestContext.Current.CancellationToken); } [Fact] public async Task Filter_Default() { - //await using AppDbContext context = fixture.CreateDbContext(); - AppDbContext context = fixture.DbContext!; - VoiceWorkSearchProvider provider = InitializeVoiceWorkSearchProvider(context); - var options = new SearchOptions() { Criteria = new() @@ -33,7 +30,7 @@ public class VoiceWorkSearchProviderTests(VoiceWorkSearchProviderFixture fixture } }; - var result = await provider.SearchAsync(options, TestContext.Current.CancellationToken); + var result = await SearchAsync(options); result.Items.Length.ShouldBe(2); result.TotalItems.ShouldBe(2); @@ -44,10 +41,6 @@ public class VoiceWorkSearchProviderTests(VoiceWorkSearchProviderFixture fixture [Fact] public async Task Filter_Upcoming_Favorite() { - //await using AppDbContext context = fixture.CreateDbContext(); - AppDbContext context = fixture.DbContext!; - VoiceWorkSearchProvider provider = InitializeVoiceWorkSearchProvider(context); - var options = new SearchOptions() { Criteria = new() @@ -57,7 +50,7 @@ public class VoiceWorkSearchProviderTests(VoiceWorkSearchProviderFixture fixture } }; - var result = await provider.SearchAsync(options, TestContext.Current.CancellationToken); + var result = await SearchAsync(options); result.Items.Length.ShouldBe(1); result.TotalItems.ShouldBe(1); @@ -68,10 +61,6 @@ public class VoiceWorkSearchProviderTests(VoiceWorkSearchProviderFixture fixture [Fact] public async Task Filter_Availble_Blacklisted() { - //await using AppDbContext context = fixture.CreateDbContext(); - AppDbContext context = fixture.DbContext!; - VoiceWorkSearchProvider provider = InitializeVoiceWorkSearchProvider(context); - var options = new SearchOptions() { Criteria = new() @@ -81,7 +70,7 @@ public class VoiceWorkSearchProviderTests(VoiceWorkSearchProviderFixture fixture } }; - var result = await provider.SearchAsync(options, TestContext.Current.CancellationToken); + var result = await SearchAsync(options); result.Items.Length.ShouldBe(1); result.TotalItems.ShouldBe(1); @@ -92,10 +81,6 @@ public class VoiceWorkSearchProviderTests(VoiceWorkSearchProviderFixture fixture [Fact] public async Task Filter_Keywords_Basic() { - //await using AppDbContext context = fixture.CreateDbContext(); - AppDbContext context = fixture.DbContext!; - VoiceWorkSearchProvider provider = InitializeVoiceWorkSearchProvider(context); - var options = new SearchOptions() { Criteria = new() @@ -104,7 +89,7 @@ public class VoiceWorkSearchProviderTests(VoiceWorkSearchProviderFixture fixture } }; - var result = await provider.SearchAsync(options, TestContext.Current.CancellationToken); + var result = await SearchAsync(options); result.Items.Length.ShouldBe(3); result.TotalItems.ShouldBe(3); @@ -114,10 +99,6 @@ public class VoiceWorkSearchProviderTests(VoiceWorkSearchProviderFixture fixture [Fact] public async Task Filter_Keywords_Not_Good() { - //await using AppDbContext context = fixture.CreateDbContext(); - AppDbContext context = fixture.DbContext!; - VoiceWorkSearchProvider provider = InitializeVoiceWorkSearchProvider(context); - var options = new SearchOptions() { Criteria = new() @@ -126,7 +107,7 @@ public class VoiceWorkSearchProviderTests(VoiceWorkSearchProviderFixture fixture } }; - var result = await provider.SearchAsync(options, TestContext.Current.CancellationToken); + var result = await SearchAsync(options); result.Items.Length.ShouldBe(2); result.TotalItems.ShouldBe(2); @@ -137,10 +118,6 @@ public class VoiceWorkSearchProviderTests(VoiceWorkSearchProviderFixture fixture [Fact] public async Task Filter_Keywords_Dreams_And_Amazing_Or_Favorite() { - //await using AppDbContext context = fixture.CreateDbContext(); - AppDbContext context = fixture.DbContext!; - VoiceWorkSearchProvider provider = InitializeVoiceWorkSearchProvider(context); - var options = new SearchOptions() { Criteria = new() @@ -149,7 +126,7 @@ public class VoiceWorkSearchProviderTests(VoiceWorkSearchProviderFixture fixture } }; - var result = await provider.SearchAsync(options, TestContext.Current.CancellationToken); + var result = await SearchAsync(options); result.Items.Length.ShouldBe(2); result.TotalItems.ShouldBe(2); @@ -163,10 +140,6 @@ public class VoiceWorkSearchProviderTests(VoiceWorkSearchProviderFixture fixture [Fact] public async Task Filter_Keywords_Phrase_Search() { - //await using AppDbContext context = fixture.CreateDbContext(); - AppDbContext context = fixture.DbContext!; - VoiceWorkSearchProvider provider = InitializeVoiceWorkSearchProvider(context); - var options = new SearchOptions() { Criteria = new() @@ -175,7 +148,7 @@ public class VoiceWorkSearchProviderTests(VoiceWorkSearchProviderFixture fixture } }; - var result = await provider.SearchAsync(options, TestContext.Current.CancellationToken); + var result = await SearchAsync(options); result.Items.Length.ShouldBe(1); result.TotalItems.ShouldBe(1); @@ -185,10 +158,6 @@ public class VoiceWorkSearchProviderTests(VoiceWorkSearchProviderFixture fixture [Fact] public async Task Filter_Tags_Favorite_Exclude_Blacklisted() { - //await using AppDbContext context = fixture.CreateDbContext(); - AppDbContext context = fixture.DbContext!; - VoiceWorkSearchProvider provider = InitializeVoiceWorkSearchProvider(context); - var options = new SearchOptions() { Criteria = new() @@ -197,7 +166,7 @@ public class VoiceWorkSearchProviderTests(VoiceWorkSearchProviderFixture fixture } }; - var result = await provider.SearchAsync(options, TestContext.Current.CancellationToken); + var result = await SearchAsync(options); result.Items.Length.ShouldBe(1); result.TotalItems.ShouldBe(1); @@ -211,10 +180,6 @@ public class VoiceWorkSearchProviderTests(VoiceWorkSearchProviderFixture fixture [Fact] public async Task Filter_Tags_Favorite_Include_Blacklisted() { - //await using AppDbContext context = fixture.CreateDbContext(); - AppDbContext context = fixture.DbContext!; - VoiceWorkSearchProvider provider = InitializeVoiceWorkSearchProvider(context); - var options = new SearchOptions() { Criteria = new() @@ -223,7 +188,7 @@ public class VoiceWorkSearchProviderTests(VoiceWorkSearchProviderFixture fixture } }; - var result = await provider.SearchAsync(options, TestContext.Current.CancellationToken); + var result = await SearchAsync(options); result.Items.Length.ShouldBe(2); result.TotalItems.ShouldBe(2); @@ -237,10 +202,6 @@ public class VoiceWorkSearchProviderTests(VoiceWorkSearchProviderFixture fixture [Fact] public async Task Filter_Tags_Not_Blacklisted() { - //await using AppDbContext context = fixture.CreateDbContext(); - AppDbContext context = fixture.DbContext!; - VoiceWorkSearchProvider provider = InitializeVoiceWorkSearchProvider(context); - var options = new SearchOptions() { Criteria = new() @@ -249,7 +210,7 @@ public class VoiceWorkSearchProviderTests(VoiceWorkSearchProviderFixture fixture } }; - var result = await provider.SearchAsync(options, TestContext.Current.CancellationToken); + var result = await SearchAsync(options); result.Items.Length.ShouldBe(4); result.TotalItems.ShouldBe(4); @@ -263,10 +224,6 @@ public class VoiceWorkSearchProviderTests(VoiceWorkSearchProviderFixture fixture [Fact] public async Task Filter_Tags_Blacklisted() { - //await using AppDbContext context = fixture.CreateDbContext(); - AppDbContext context = fixture.DbContext!; - VoiceWorkSearchProvider provider = InitializeVoiceWorkSearchProvider(context); - var options = new SearchOptions() { Criteria = new() @@ -275,7 +232,7 @@ public class VoiceWorkSearchProviderTests(VoiceWorkSearchProviderFixture fixture } }; - var result = await provider.SearchAsync(options, TestContext.Current.CancellationToken); + var result = await SearchAsync(options); result.Items.Length.ShouldBe(1); result.TotalItems.ShouldBe(1); @@ -289,10 +246,6 @@ public class VoiceWorkSearchProviderTests(VoiceWorkSearchProviderFixture fixture [Fact] public async Task Filter_TagIds_Or() { - //await using AppDbContext context = fixture.CreateDbContext(); - AppDbContext context = fixture.DbContext!; - VoiceWorkSearchProvider provider = InitializeVoiceWorkSearchProvider(context); - var options = new SearchOptions() { Criteria = new() @@ -302,7 +255,7 @@ public class VoiceWorkSearchProviderTests(VoiceWorkSearchProviderFixture fixture } }; - var result = await provider.SearchAsync(options, TestContext.Current.CancellationToken); + var result = await SearchAsync(options); result.Items.Length.ShouldBe(2); result.TotalItems.ShouldBe(2); @@ -316,10 +269,6 @@ public class VoiceWorkSearchProviderTests(VoiceWorkSearchProviderFixture fixture [Fact] public async Task Filter_TagIds_And() { - //await using AppDbContext context = fixture.CreateDbContext(); - AppDbContext context = fixture.DbContext!; - VoiceWorkSearchProvider provider = InitializeVoiceWorkSearchProvider(context); - var options = new SearchOptions() { Criteria = new() @@ -329,7 +278,7 @@ public class VoiceWorkSearchProviderTests(VoiceWorkSearchProviderFixture fixture } }; - var result = await provider.SearchAsync(options, TestContext.Current.CancellationToken); + var result = await SearchAsync(options); result.Items.Length.ShouldBe(1); result.TotalItems.ShouldBe(1); @@ -343,10 +292,6 @@ public class VoiceWorkSearchProviderTests(VoiceWorkSearchProviderFixture fixture [Fact] public async Task Filter_Creators_Favorite_Exclude_Blacklisted() { - //await using AppDbContext context = fixture.CreateDbContext(); - AppDbContext context = fixture.DbContext!; - VoiceWorkSearchProvider provider = InitializeVoiceWorkSearchProvider(context); - var options = new SearchOptions() { Criteria = new() @@ -355,7 +300,7 @@ public class VoiceWorkSearchProviderTests(VoiceWorkSearchProviderFixture fixture } }; - var result = await provider.SearchAsync(options, TestContext.Current.CancellationToken); + var result = await SearchAsync(options); result.Items.Length.ShouldBe(2); result.TotalItems.ShouldBe(2); @@ -369,10 +314,6 @@ public class VoiceWorkSearchProviderTests(VoiceWorkSearchProviderFixture fixture [Fact] public async Task Filter_Creators_Favorite_Include_Blacklisted() { - //await using AppDbContext context = fixture.CreateDbContext(); - AppDbContext context = fixture.DbContext!; - VoiceWorkSearchProvider provider = InitializeVoiceWorkSearchProvider(context); - var options = new SearchOptions() { Criteria = new() @@ -381,7 +322,7 @@ public class VoiceWorkSearchProviderTests(VoiceWorkSearchProviderFixture fixture } }; - var result = await provider.SearchAsync(options, TestContext.Current.CancellationToken); + var result = await SearchAsync(options); result.Items.Length.ShouldBe(3); result.TotalItems.ShouldBe(3); @@ -395,10 +336,6 @@ public class VoiceWorkSearchProviderTests(VoiceWorkSearchProviderFixture fixture [Fact] public async Task Filter_Creators_Not_Blacklisted() { - //await using AppDbContext context = fixture.CreateDbContext(); - AppDbContext context = fixture.DbContext!; - VoiceWorkSearchProvider provider = InitializeVoiceWorkSearchProvider(context); - var options = new SearchOptions() { Criteria = new() @@ -407,7 +344,7 @@ public class VoiceWorkSearchProviderTests(VoiceWorkSearchProviderFixture fixture } }; - var result = await provider.SearchAsync(options, TestContext.Current.CancellationToken); + var result = await SearchAsync(options); result.Items.Length.ShouldBe(4); result.TotalItems.ShouldBe(4); @@ -421,10 +358,6 @@ public class VoiceWorkSearchProviderTests(VoiceWorkSearchProviderFixture fixture [Fact] public async Task Filter_Creators_Blacklisted() { - //await using AppDbContext context = fixture.CreateDbContext(); - AppDbContext context = fixture.DbContext!; - VoiceWorkSearchProvider provider = InitializeVoiceWorkSearchProvider(context); - var options = new SearchOptions() { Criteria = new() @@ -433,7 +366,7 @@ public class VoiceWorkSearchProviderTests(VoiceWorkSearchProviderFixture fixture } }; - var result = await provider.SearchAsync(options, TestContext.Current.CancellationToken); + var result = await SearchAsync(options); result.Items.Length.ShouldBe(1); result.TotalItems.ShouldBe(1); @@ -447,10 +380,6 @@ public class VoiceWorkSearchProviderTests(VoiceWorkSearchProviderFixture fixture [Fact] public async Task Filter_CreatorIds_Or() { - //await using AppDbContext context = fixture.CreateDbContext(); - AppDbContext context = fixture.DbContext!; - VoiceWorkSearchProvider provider = InitializeVoiceWorkSearchProvider(context); - var options = new SearchOptions() { Criteria = new() @@ -460,7 +389,7 @@ public class VoiceWorkSearchProviderTests(VoiceWorkSearchProviderFixture fixture } }; - var result = await provider.SearchAsync(options, TestContext.Current.CancellationToken); + var result = await SearchAsync(options); result.Items.Length.ShouldBe(3); result.TotalItems.ShouldBe(3); @@ -474,10 +403,6 @@ public class VoiceWorkSearchProviderTests(VoiceWorkSearchProviderFixture fixture [Fact] public async Task Filter_CreatorIds_And() { - //await using AppDbContext context = fixture.CreateDbContext(); - AppDbContext context = fixture.DbContext!; - VoiceWorkSearchProvider provider = InitializeVoiceWorkSearchProvider(context); - var options = new SearchOptions() { Criteria = new() @@ -487,7 +412,7 @@ public class VoiceWorkSearchProviderTests(VoiceWorkSearchProviderFixture fixture } }; - var result = await provider.SearchAsync(options, TestContext.Current.CancellationToken); + var result = await SearchAsync(options); result.Items.Length.ShouldBe(1); result.TotalItems.ShouldBe(1); @@ -501,19 +426,15 @@ public class VoiceWorkSearchProviderTests(VoiceWorkSearchProviderFixture fixture [Fact] public async Task Sort_By_Release_Date_Ascending() { - //await using AppDbContext context = fixture.CreateDbContext(); - AppDbContext context = fixture.DbContext!; - VoiceWorkSearchProvider provider = InitializeVoiceWorkSearchProvider(context); - var options = new SearchOptions() { SortOptions = [ - new(VoiceWorkSortField.ReleaseDate, Application.Common.Search.SortDirection.Ascending) + new(VoiceWorkSortField.ReleaseDate, SortDirection.Ascending) ] }; - var result = await provider.SearchAsync(options, TestContext.Current.CancellationToken); + var result = await SearchAsync(options); result.Items .Select(item => item.ProductId) @@ -523,19 +444,15 @@ public class VoiceWorkSearchProviderTests(VoiceWorkSearchProviderFixture fixture [Fact] public async Task Sort_By_Release_Date_Descending() { - //await using AppDbContext context = fixture.CreateDbContext(); - AppDbContext context = fixture.DbContext!; - VoiceWorkSearchProvider provider = InitializeVoiceWorkSearchProvider(context); - var options = new SearchOptions() { SortOptions = [ - new(VoiceWorkSortField.ReleaseDate, Application.Common.Search.SortDirection.Descending) + new(VoiceWorkSortField.ReleaseDate, SortDirection.Descending) ] }; - var result = await provider.SearchAsync(options, TestContext.Current.CancellationToken); + var result = await SearchAsync(options); result.Items .Select(item => item.ProductId) @@ -545,19 +462,15 @@ public class VoiceWorkSearchProviderTests(VoiceWorkSearchProviderFixture fixture [Fact] public async Task Sort_By_Downloads_Ascending() { - //await using AppDbContext context = fixture.CreateDbContext(); - AppDbContext context = fixture.DbContext!; - VoiceWorkSearchProvider provider = InitializeVoiceWorkSearchProvider(context); - var options = new SearchOptions() { SortOptions = [ - new(VoiceWorkSortField.Downloads, Application.Common.Search.SortDirection.Ascending) + new(VoiceWorkSortField.Downloads, SortDirection.Ascending) ] }; - var result = await provider.SearchAsync(options, TestContext.Current.CancellationToken); + var result = await SearchAsync(options); result.Items .Select(item => item.ProductId) @@ -567,19 +480,15 @@ public class VoiceWorkSearchProviderTests(VoiceWorkSearchProviderFixture fixture [Fact] public async Task Sort_By_Downloads_Descending() { - //await using AppDbContext context = fixture.CreateDbContext(); - AppDbContext context = fixture.DbContext!; - VoiceWorkSearchProvider provider = InitializeVoiceWorkSearchProvider(context); - var options = new SearchOptions() { SortOptions = [ - new(VoiceWorkSortField.Downloads, Application.Common.Search.SortDirection.Descending) + new(VoiceWorkSortField.Downloads, SortDirection.Descending) ] }; - var result = await provider.SearchAsync(options, TestContext.Current.CancellationToken); + var result = await SearchAsync(options); result.Items .Select(item => item.ProductId) @@ -589,19 +498,15 @@ public class VoiceWorkSearchProviderTests(VoiceWorkSearchProviderFixture fixture [Fact] public async Task Sort_By_WishlistCount_Ascending() { - //await using AppDbContext context = fixture.CreateDbContext(); - AppDbContext context = fixture.DbContext!; - VoiceWorkSearchProvider provider = InitializeVoiceWorkSearchProvider(context); - var options = new SearchOptions() { SortOptions = [ - new(VoiceWorkSortField.WishlistCount, Application.Common.Search.SortDirection.Ascending) + new(VoiceWorkSortField.WishlistCount, SortDirection.Ascending) ] }; - var result = await provider.SearchAsync(options, TestContext.Current.CancellationToken); + var result = await SearchAsync(options); result.Items .Select(item => item.ProductId) @@ -611,19 +516,15 @@ public class VoiceWorkSearchProviderTests(VoiceWorkSearchProviderFixture fixture [Fact] public async Task Sort_By_WishlistCount_Descending() { - //await using AppDbContext context = fixture.CreateDbContext(); - AppDbContext context = fixture.DbContext!; - VoiceWorkSearchProvider provider = InitializeVoiceWorkSearchProvider(context); - var options = new SearchOptions() { SortOptions = [ - new(VoiceWorkSortField.WishlistCount, Application.Common.Search.SortDirection.Descending) + new(VoiceWorkSortField.WishlistCount, SortDirection.Descending) ] }; - var result = await provider.SearchAsync(options, TestContext.Current.CancellationToken); + var result = await SearchAsync(options); result.Items .Select(item => item.ProductId) @@ -633,19 +534,15 @@ public class VoiceWorkSearchProviderTests(VoiceWorkSearchProviderFixture fixture [Fact] public async Task Sort_By_StarRating_Ascending() { - //await using AppDbContext context = fixture.CreateDbContext(); - AppDbContext context = fixture.DbContext!; - VoiceWorkSearchProvider provider = InitializeVoiceWorkSearchProvider(context); - var options = new SearchOptions() { SortOptions = [ - new(VoiceWorkSortField.StarRating, Application.Common.Search.SortDirection.Ascending) + new(VoiceWorkSortField.StarRating, SortDirection.Ascending) ] }; - var result = await provider.SearchAsync(options, TestContext.Current.CancellationToken); + var result = await SearchAsync(options); result.Items .Select(item => item.ProductId) @@ -655,19 +552,15 @@ public class VoiceWorkSearchProviderTests(VoiceWorkSearchProviderFixture fixture [Fact] public async Task Sort_By_StarRating_Descending() { - //await using AppDbContext context = fixture.CreateDbContext(); - AppDbContext context = fixture.DbContext!; - VoiceWorkSearchProvider provider = InitializeVoiceWorkSearchProvider(context); - var options = new SearchOptions() { SortOptions = [ - new(VoiceWorkSortField.StarRating, Application.Common.Search.SortDirection.Descending) + new(VoiceWorkSortField.StarRating, SortDirection.Descending) ] }; - var result = await provider.SearchAsync(options, TestContext.Current.CancellationToken); + var result = await SearchAsync(options); result.Items .Select(item => item.ProductId) @@ -677,10 +570,6 @@ public class VoiceWorkSearchProviderTests(VoiceWorkSearchProviderFixture fixture [Fact] public async Task Filter_Release_Date_Range() { - //await using AppDbContext context = fixture.CreateDbContext(); - AppDbContext context = fixture.DbContext!; - VoiceWorkSearchProvider provider = InitializeVoiceWorkSearchProvider(context); - var options = new SearchOptions() { Criteria = new() @@ -690,7 +579,7 @@ public class VoiceWorkSearchProviderTests(VoiceWorkSearchProviderFixture fixture } }; - var result = await provider.SearchAsync(options, TestContext.Current.CancellationToken); + var result = await SearchAsync(options); result.Items .OrderBy(item => item.ProductId) @@ -701,10 +590,6 @@ public class VoiceWorkSearchProviderTests(VoiceWorkSearchProviderFixture fixture [Fact] public async Task Filter_Downloads_Range() { - //await using AppDbContext context = fixture.CreateDbContext(); - AppDbContext context = fixture.DbContext!; - VoiceWorkSearchProvider provider = InitializeVoiceWorkSearchProvider(context); - var options = new SearchOptions() { Criteria = new() @@ -714,7 +599,7 @@ public class VoiceWorkSearchProviderTests(VoiceWorkSearchProviderFixture fixture } }; - var result = await provider.SearchAsync(options, TestContext.Current.CancellationToken); + var result = await SearchAsync(options); result.Items .OrderBy(item => item.ProductId) @@ -725,10 +610,6 @@ public class VoiceWorkSearchProviderTests(VoiceWorkSearchProviderFixture fixture [Fact] public async Task Filter_Favorite() { - //await using AppDbContext context = fixture.CreateDbContext(); - AppDbContext context = fixture.DbContext!; - VoiceWorkSearchProvider provider = InitializeVoiceWorkSearchProvider(context); - var options = new SearchOptions() { Criteria = new() @@ -737,7 +618,7 @@ public class VoiceWorkSearchProviderTests(VoiceWorkSearchProviderFixture fixture } }; - var result = await provider.SearchAsync(options, TestContext.Current.CancellationToken); + var result = await SearchAsync(options); result.Items .OrderBy(item => item.ProductId)