From db8c41368df95b1811199aff9d37c202651ff722 Mon Sep 17 00:00:00 2001 From: TekH Date: Thu, 11 Sep 2025 18:53:39 +0200 Subject: [PATCH] arrange tests --- .../DependencyInjection.cs | 3 ++ .../DigitalData.Core.Tests.csproj | 1 - .../Infrastructure/DbRepositoryTests.cs | 36 ++++++++++--------- DigitalData.Core.Tests/Mock/User.cs | 6 ++-- DigitalData.Core.Tests/Mock/UserCreateDto.cs | 6 ++-- DigitalData.Core.Tests/Mock/UserReadDto.cs | 6 ++-- DigitalData.Core.Tests/Mock/UserUpdateDto.cs | 6 ++-- 7 files changed, 38 insertions(+), 26 deletions(-) diff --git a/DigitalData.Core.Infrastructure/DependencyInjection.cs b/DigitalData.Core.Infrastructure/DependencyInjection.cs index ed9f42b..45f50bf 100644 --- a/DigitalData.Core.Infrastructure/DependencyInjection.cs +++ b/DigitalData.Core.Infrastructure/DependencyInjection.cs @@ -16,6 +16,9 @@ public static class DependencyInjection options.Invoke(cfg); cfg.RegisterAllServices(services); + // register db repository + services.AddSingleton(); + // register db repository factory services.AddSingleton(); diff --git a/DigitalData.Core.Tests/DigitalData.Core.Tests.csproj b/DigitalData.Core.Tests/DigitalData.Core.Tests.csproj index 169d219..2e88c0d 100644 --- a/DigitalData.Core.Tests/DigitalData.Core.Tests.csproj +++ b/DigitalData.Core.Tests/DigitalData.Core.Tests.csproj @@ -26,7 +26,6 @@ - diff --git a/DigitalData.Core.Tests/Infrastructure/DbRepositoryTests.cs b/DigitalData.Core.Tests/Infrastructure/DbRepositoryTests.cs index 9d98267..0bf2760 100644 --- a/DigitalData.Core.Tests/Infrastructure/DbRepositoryTests.cs +++ b/DigitalData.Core.Tests/Infrastructure/DbRepositoryTests.cs @@ -5,15 +5,14 @@ using Microsoft.EntityFrameworkCore; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Hosting; using System.Reflection; -using DigitalData.Core.Infrastructure.AutoMapper; using DigitalData.Core.Abstraction.Application.Repository; -using Bogus.Platform; +using DigitalData.Core.Infrastructure; public class DbRepositoryTests { private IHost _host; - private IRepository _userRepo; + private IRepository Repo; [SetUp] public void Setup() @@ -22,13 +21,16 @@ public class DbRepositoryTests builder.Services.AddDbContext(opt => opt.UseInMemoryDatabase("MockDB")); - builder.Services.AddDbRepository(typeof(User).GetAssembly()); + builder.Services.AddDbRepository(opt => + { + opt.RegisterFromAssembly(typeof(User).Assembly); + }); builder.Services.AddAutoMapper(Assembly.GetExecutingAssembly()); _host = builder.Build(); - _userRepo = _host.Services.GetRequiredService>(); + Repo = _host.Services.GetRequiredService(); } [TearDown] @@ -47,9 +49,9 @@ public class DbRepositoryTests // Act & Assert if (multiple) - Assert.DoesNotThrowAsync(async () => await _userRepo.CreateAsync(faker.Generate(Random.Shared.Next(1, 10)))); + Assert.DoesNotThrowAsync(async () => await Repo.CreateAsync(faker.Generate(Random.Shared.Next(1, 10)))); else - Assert.DoesNotThrowAsync(async () => await _userRepo.CreateAsync(faker.Generate())); + Assert.DoesNotThrowAsync(async () => await Repo.CreateAsync(faker.Generate())); } [TestCase(true, TestName = "WhenDtoUsed")] @@ -58,10 +60,10 @@ public class DbRepositoryTests { // Act var createdUser = useDto - ? await _userRepo.CreateAsync(Fake.UserCreateDto) - : await _userRepo.CreateAsync(Fake.User); + ? await Repo.CreateAsync(Fake.UserCreateDto) + : await Repo.CreateAsync(Fake.User); - var readUser = await _userRepo.ReadFirstOrDefaultAsync(u => u.Id == createdUser.Id); + var readUser = await Repo.Get().Where(u => u.Id == createdUser.Id).FirstOrDefaultAsync(); // Assert Assert.Multiple(() => @@ -75,12 +77,12 @@ public class DbRepositoryTests public async Task ReadAsync_ShouldReturnUpdated() { // Arrange - var createdUser = await _userRepo.CreateAsync(Fake.UserCreateDto); + var createdUser = await Repo.CreateAsync(Fake.UserCreateDto); var userUpdateDto = new UserUpdateDto() { Age = 10, Email = "Bar", FirstName = "Foo" }; // Act - await _userRepo.UpdateAsync(userUpdateDto, u => u.Id == createdUser!.Id); - var upToDateUser = await _userRepo.ReadFirstOrDefaultAsync(u => u.Id == createdUser!.Id); + await Repo.UpdateAsync(userUpdateDto, u => u.Id == createdUser!.Id); + var upToDateUser = await Repo.Get().Where(u => u.Id == createdUser!.Id).FirstOrDefaultAsync(); // Assert Assert.Multiple(() => @@ -96,12 +98,12 @@ public class DbRepositoryTests public async Task ReadAsync_ShouldNotReturnDeleted() { // Arrange - var createdUser = await _userRepo.CreateAsync(Fake.UserCreateDto); - var readUser = await _userRepo.ReadFirstOrDefaultAsync(u => u.Id == createdUser.Id); + var createdUser = await Repo.CreateAsync(Fake.UserCreateDto); + var readUser = await Repo.Get().Where(u => u.Id == createdUser.Id).FirstOrDefaultAsync(); // Act - await _userRepo.DeleteAsync(u => u.Id == createdUser.Id); - var deletedUser = await _userRepo.ReadFirstOrDefaultAsync(u => u.Id == createdUser.Id); + await Repo.DeleteAsync(u => u.Id == createdUser.Id); + var deletedUser = await Repo.Get().Where(u => u.Id == createdUser.Id).FirstOrDefaultAsync(); // Assert Assert.Multiple(() => diff --git a/DigitalData.Core.Tests/Mock/User.cs b/DigitalData.Core.Tests/Mock/User.cs index ce8d780..86e906b 100644 --- a/DigitalData.Core.Tests/Mock/User.cs +++ b/DigitalData.Core.Tests/Mock/User.cs @@ -1,6 +1,8 @@ -namespace DigitalData.Core.Tests.Mock; +using DigitalData.Core.Abstraction.Application.Repository; -public class User : UserBase +namespace DigitalData.Core.Tests.Mock; + +public class User : UserBase, IEntity { public required int Id { get; init; } diff --git a/DigitalData.Core.Tests/Mock/UserCreateDto.cs b/DigitalData.Core.Tests/Mock/UserCreateDto.cs index 7b43b9b..831638c 100644 --- a/DigitalData.Core.Tests/Mock/UserCreateDto.cs +++ b/DigitalData.Core.Tests/Mock/UserCreateDto.cs @@ -1,5 +1,7 @@ -namespace DigitalData.Core.Tests.Mock; +using DigitalData.Core.Abstraction.Application.Repository; -public class UserCreateDto : UserBase +namespace DigitalData.Core.Tests.Mock; + +public class UserCreateDto : UserBase, IDto { } diff --git a/DigitalData.Core.Tests/Mock/UserReadDto.cs b/DigitalData.Core.Tests/Mock/UserReadDto.cs index f705e44..424e440 100644 --- a/DigitalData.Core.Tests/Mock/UserReadDto.cs +++ b/DigitalData.Core.Tests/Mock/UserReadDto.cs @@ -1,5 +1,7 @@ -namespace DigitalData.Core.Tests.Mock; +using DigitalData.Core.Abstraction.Application.Repository; -public class UserReadDto : UserBase +namespace DigitalData.Core.Tests.Mock; + +public class UserReadDto : UserBase, IDto { } diff --git a/DigitalData.Core.Tests/Mock/UserUpdateDto.cs b/DigitalData.Core.Tests/Mock/UserUpdateDto.cs index 1576f4e..c0c3c7b 100644 --- a/DigitalData.Core.Tests/Mock/UserUpdateDto.cs +++ b/DigitalData.Core.Tests/Mock/UserUpdateDto.cs @@ -1,5 +1,7 @@ -namespace DigitalData.Core.Tests.Mock; +using DigitalData.Core.Abstraction.Application.Repository; -public class UserUpdateDto : UserBase +namespace DigitalData.Core.Tests.Mock; + +public class UserUpdateDto : UserBase, IDto { }