Refactor user creation tests in DbRepositoryTests

Die Testmethode `CreateAsync_ShouldPersistUser` wurde entfernt und `CreateAsync_ShouldNotThrow` mit Testfällen für die Erstellung einzelner und mehrerer Benutzer hinzugefügt. Die neue Methode prüft, dass `CreateAsync` keine Ausnahmen auslöst, während Benutzerdaten mit einem Faker erzeugt werden.
This commit is contained in:
Developer 02 2025-04-17 15:48:06 +02:00
parent 266d03e0a1
commit 06df97597e

View File

@ -6,7 +6,6 @@ using Microsoft.EntityFrameworkCore;
using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting; using Microsoft.Extensions.Hosting;
using System.Reflection; using System.Reflection;
using DigitalData.Core.Tests.Mock;
using DigitalData.Core.Abstractions.Infrastructure; using DigitalData.Core.Abstractions.Infrastructure;
public class DbRepositoryTests public class DbRepositoryTests
@ -34,15 +33,18 @@ public class DbRepositoryTests
disposableHost.Dispose(); disposableHost.Dispose();
} }
[Test] [TestCase(true, TestName = "WhenGivenMultipleUsers")]
public void CreateAsync_ShouldPersistUser() [TestCase(false, TestName = "WhenGivenSingleUser")]
public void CreateAsync_ShouldNotThrow(bool multiple)
{ {
// Arrange // Arrange
var faker = Fake.CreateUserFaker(); var faker = Fake.CreateUserFaker();
var user = faker.Generate();
var repo = _host.Services.GetRequiredService<IRepository<User>>(); var repo = _host.Services.GetRequiredService<IRepository<User>>();
// Act & Assert // Act & Assert
Assert.DoesNotThrowAsync(async () => await repo.CreateAsync(user)); if (multiple)
Assert.DoesNotThrowAsync(async () => await repo.CreateAsync(faker.Generate(Random.Shared.Next(1, 10))));
else
Assert.DoesNotThrowAsync(async () => await repo.CreateAsync(faker.Generate()));
} }
} }