From 85787e70548d86bc849fb5b2f695695d8ca410e0 Mon Sep 17 00:00:00 2001 From: Developer 02 Date: Tue, 22 Apr 2025 10:09:47 +0200 Subject: [PATCH] feat(DbRepositoryTests): ReadAsync_ShouldReturnUpdated und ReadAsync_ShouldNotReturnDeleted Tests --- .../Infrastructure/IRepository.cs | 2 +- .../DbRepository.cs | 2 +- .../Infrastructure/DbRepositoryTests.cs | 48 ++++++++++++++++++- DigitalData.Core.Tests/Mock/UserBase.cs | 6 +-- 4 files changed, 51 insertions(+), 7 deletions(-) diff --git a/DigitalData.Core.Abstractions/Infrastructure/IRepository.cs b/DigitalData.Core.Abstractions/Infrastructure/IRepository.cs index 750df26..cf94297 100644 --- a/DigitalData.Core.Abstractions/Infrastructure/IRepository.cs +++ b/DigitalData.Core.Abstractions/Infrastructure/IRepository.cs @@ -16,5 +16,5 @@ public interface IRepository public Task UpdateAsync(TDto dto, Expression> expression, CancellationToken ct = default); - public Task DeleteAsync(Expression> expression, CancellationToken ct = default); + public Task DeleteAsync(Expression> expression, CancellationToken ct = default); } diff --git a/DigitalData.Core.Infrastructure/DbRepository.cs b/DigitalData.Core.Infrastructure/DbRepository.cs index a92db59..52acf8c 100644 --- a/DigitalData.Core.Infrastructure/DbRepository.cs +++ b/DigitalData.Core.Infrastructure/DbRepository.cs @@ -64,7 +64,7 @@ public class DbRepository : IRepository where TDbC await Context.SaveChangesAsync(ct); } - public virtual async Task DeleteAsync(Expression> expression, CancellationToken ct = default) + public virtual async Task DeleteAsync(Expression> expression, CancellationToken ct = default) { var entities = await Entities.Where(expression).ToListAsync(ct); diff --git a/DigitalData.Core.Tests/Infrastructure/DbRepositoryTests.cs b/DigitalData.Core.Tests/Infrastructure/DbRepositoryTests.cs index 4f73e94..ea407c9 100644 --- a/DigitalData.Core.Tests/Infrastructure/DbRepositoryTests.cs +++ b/DigitalData.Core.Tests/Infrastructure/DbRepositoryTests.cs @@ -63,7 +63,51 @@ public class DbRepositoryTests var readUser = await _userRepo.ReadFirstOrDefaultAsync(u => u.Id == createdUser.Id); // Assert - Assert.That(readUser, Is.Not.Null); - Assert.That(readUser, Is.EqualTo(createdUser)); + Assert.Multiple(() => + { + Assert.That(readUser, Is.Not.Null); + Assert.That(readUser, Is.EqualTo(createdUser)); + }); + } + + [Test] + public async Task ReadAsync_ShouldReturnUpdated() + { + // Arrange + var createdUser = await _userRepo.CreateAsync(Fake.UserCreateDto); + var readUser = await _userRepo.ReadFirstOrDefaultAsync(u => u.Id == createdUser.Id); + + // Act + readUser!.FirstName = "Foo"; + readUser!.Email = "Bar"; + readUser!.Age = 10; + + var upToDateUser = await _userRepo.ReadFirstOrDefaultAsync(u => u.Id == createdUser.Id); + + // Assert + Assert.Multiple(() => + { + Assert.That(upToDateUser, Is.Not.Null); + Assert.That(upToDateUser, Is.EqualTo(readUser)); + }); + } + + [Test] + public async Task ReadAsync_ShouldNotReturnDeleted() + { + // Arrange + var createdUser = await _userRepo.CreateAsync(Fake.UserCreateDto); + var readUser = await _userRepo.ReadFirstOrDefaultAsync(u => u.Id == createdUser.Id); + + // Act + await _userRepo.DeleteAsync(u => u.Id == createdUser.Id); + var deletedUser = await _userRepo.ReadFirstOrDefaultAsync(u => u.Id == createdUser.Id); + + // Assert + Assert.Multiple(() => + { + Assert.That(readUser, Is.Not.Null); + Assert.That(deletedUser, Is.Null); + }); } } diff --git a/DigitalData.Core.Tests/Mock/UserBase.cs b/DigitalData.Core.Tests/Mock/UserBase.cs index ea8cc79..1eb3b39 100644 --- a/DigitalData.Core.Tests/Mock/UserBase.cs +++ b/DigitalData.Core.Tests/Mock/UserBase.cs @@ -2,11 +2,11 @@ public class UserBase { - public required string FirstName { get; init; } + public required string FirstName { get; set; } - public required string Email { get; init; } + public required string Email { get; set; } - public required int Age { get; init; } + public required int Age { get; set; } public override int GetHashCode() => HashCode.Combine(FirstName, Email, Age);