using ApplicationLayer.InfrastructureServicesInterfaces; using Bogus; using Domains.VisaApplicationDomain; namespace VisaApi.Fakers.VisaApplications; /// /// Generates past visas /// public sealed class PastVisaFaker : Faker { private IDateTimeProvider dateTimeProvider; public PastVisaFaker(IDateTimeProvider dateTimeProvider) { this.dateTimeProvider = dateTimeProvider; RuleFor(pv => pv.Name, f => f.Random.Words()); } public PastVisa GenerateValid() { var result = Generate(); result.IssueDate = dateTimeProvider.Now().AddDays(-Random.Shared.Next(11, 900)); result.ExpirationDate = result.IssueDate.AddDays(Random.Shared.Next(1, 11)); return result; } }