feat(DbRepositoryTests): ReadAsync_ShouldReturnUpdated und ReadAsync_ShouldNotReturnDeleted Tests

This commit is contained in:
Developer 02 2025-04-22 10:09:47 +02:00
parent c955220310
commit 85787e7054
4 changed files with 51 additions and 7 deletions

View File

@ -16,5 +16,5 @@ public interface IRepository<TEntity>
public Task UpdateAsync<TDto>(TDto dto, Expression<Func<TEntity, bool>> expression, CancellationToken ct = default); public Task UpdateAsync<TDto>(TDto dto, Expression<Func<TEntity, bool>> expression, CancellationToken ct = default);
public Task DeleteAsync<TDto>(Expression<Func<TEntity, bool>> expression, CancellationToken ct = default); public Task DeleteAsync(Expression<Func<TEntity, bool>> expression, CancellationToken ct = default);
} }

View File

@ -64,7 +64,7 @@ public class DbRepository<TDbContext, TEntity> : IRepository<TEntity> where TDbC
await Context.SaveChangesAsync(ct); await Context.SaveChangesAsync(ct);
} }
public virtual async Task DeleteAsync<TDto>(Expression<Func<TEntity, bool>> expression, CancellationToken ct = default) public virtual async Task DeleteAsync(Expression<Func<TEntity, bool>> expression, CancellationToken ct = default)
{ {
var entities = await Entities.Where(expression).ToListAsync(ct); var entities = await Entities.Where(expression).ToListAsync(ct);

View File

@ -63,7 +63,51 @@ public class DbRepositoryTests
var readUser = await _userRepo.ReadFirstOrDefaultAsync(u => u.Id == createdUser.Id); var readUser = await _userRepo.ReadFirstOrDefaultAsync(u => u.Id == createdUser.Id);
// Assert // Assert
Assert.Multiple(() =>
{
Assert.That(readUser, Is.Not.Null); Assert.That(readUser, Is.Not.Null);
Assert.That(readUser, Is.EqualTo(createdUser)); 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);
});
} }
} }

View File

@ -2,11 +2,11 @@
public class UserBase 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); public override int GetHashCode() => HashCode.Combine(FirstName, Email, Age);