diff --git a/EnvelopeGenerator.Tests.Application/Fake.cs b/EnvelopeGenerator.Tests.Application/Fake.cs index 4bada8ad..fc8223e7 100644 --- a/EnvelopeGenerator.Tests.Application/Fake.cs +++ b/EnvelopeGenerator.Tests.Application/Fake.cs @@ -1,4 +1,6 @@ using Bogus; +using DigitalData.Core.Abstraction.Application.Repository; +using DigitalData.UserManager.Domain.Entities; using EnvelopeGenerator.Application; using EnvelopeGenerator.Application.Envelopes.Commands; using EnvelopeGenerator.Application.Receivers.Commands; @@ -67,14 +69,30 @@ public class Fake } #endregion + #region Shortcuts public IMediator Mediator => Services.GetRequiredService(); + public IRepository GetRepository() => Services.GetRequiredService>(); + + public async Task AddSamples() + { + await AddSampleReceivers(); + await AddSampleUser(); + return this; + } + #endregion + #region Sample Receivers public List<(int Id, string EmailAddress)> _sampleReceivers = new(); - public IEnumerable<(int Id, string EmailAddress)> SampleReceivers => _sampleReceivers; + public IEnumerable<(int Id, string EmailAddress)> SampleReceivers + => _sampleReceivers.Any() + ? _sampleReceivers + : throw new InvalidOperationException( + "No sample receivers have been initialized. Call AddSampleReceivers() before accessing this property." + ); - public async Task AddSampleReceivers() + public async Task AddSampleReceivers() { var mediator = Mediator; foreach (var cmd in Provider.CreateReceiverCommands()) @@ -82,6 +100,22 @@ public class Fake var (Id, _) = await mediator.Send(cmd); _sampleReceivers.Add((Id, cmd.EmailAddress)); } + return this; + } + #endregion + + #region Sample User + private User? _user; + + public User User => _user ?? throw new InvalidOperationException( + "The 'User' instance has not been initialized. Call AddSampleUser() before accessing this property."); + + public async Task AddSampleUser() + { + var repo = GetRepository(); + var cmd = Provider.CreateUserCommand(); + _user = await repo.CreateAsync(cmd); + return this; } #endregion }