refactor(tests): replace static sample emails with Bogus-generated random emails

This commit is contained in:
tekh 2025-08-29 13:12:33 +02:00
parent ac501dffb1
commit 954eff7101

View File

@ -1,4 +1,6 @@
using EnvelopeGenerator.Application; using Bogus;
using Bogus.DataSets;
using EnvelopeGenerator.Application;
using EnvelopeGenerator.Application.Receivers.Commands; using EnvelopeGenerator.Application.Receivers.Commands;
using EnvelopeGenerator.Infrastructure; using EnvelopeGenerator.Infrastructure;
using MediatR; using MediatR;
@ -11,6 +13,8 @@ namespace EnvelopeGenerator.Tests.Application;
public class Fake public class Fake
{ {
public static readonly Faker Provider = new("de");
public static Host CreateHost() => Microsoft.Extensions.Hosting.Host.CreateDefaultBuilder() public static Host CreateHost() => Microsoft.Extensions.Hosting.Host.CreateDefaultBuilder()
.ConfigureAppConfiguration((context, config) => .ConfigureAppConfiguration((context, config) =>
{ {
@ -72,20 +76,7 @@ public class Fake
public async Task AddSampleReceivers() public async Task AddSampleReceivers()
{ {
var mediator = Mediator; var mediator = Mediator;
var emails = new[] foreach (var email in Provider.Internet.EMailList())
{
"max.mueller@email.de",
"anna.schmidt@email.de",
"lukas.schneider@email.de",
"sophia.fischer@email.de",
"jonas.weber@email.de",
"lea.hoffmann@email.de",
"felix.wagner@email.de",
"mia.becker@email.de",
"paul.schulz@email.de",
"lena.koch@email.de"
};
foreach (var email in emails)
{ {
var cmd = new CreateReceiverCommand { EmailAddress = email }; var cmd = new CreateReceiverCommand { EmailAddress = email };
var (Id, _) = await mediator.Send(cmd); var (Id, _) = await mediator.Send(cmd);
@ -99,4 +90,9 @@ public class Fake
public static class Extensions public static class Extensions
{ {
public static Fake.Host ToFake(this IHost host) => new(host); public static Fake.Host ToFake(this IHost host) => new(host);
public static IEnumerable<string> EMailList(this Internet internet, int minCount = 10, int maxCount = 20)
=> Enumerable.Range(0, Fake.Provider.Random.Number(minCount, maxCount))
.Select(_ => internet.Email())
.ToList();
} }