internal static void SeedTicketScenario(string testName) { MockContextFactory.TestContextFor(testName, ctx => { var owners = new List <string>(); for (var i = 0; i < 20; i++) { var f = new Bogus.Faker("en"); owners.Add(f.Person.FullName); } var faker = new Bogus.Faker <Ticket>() .RuleFor(t => t.TicketType, (f, u) => f.PickRandom("new", "open", "refused", "closed")) .RuleFor(t => t.Title, (f, u) => f.Lorem.Sentence()) .RuleFor(t => t.Details, (f, u) => f.Lorem.Paragraph()) .RuleFor(t => t.IsHtml, (f, u) => false) .RuleFor(t => t.TagList, (f, u) => string.Join(",", f.Commerce.Categories(3))) .RuleFor(t => t.CreatedDate, (f, u) => f.Date.Recent(100)) .RuleFor(t => t.Owner, (f, u) => f.PickRandom(owners)) .RuleFor(t => t.AssignedTo, (f, u) => f.PickRandom(owners)) .RuleFor(t => t.TicketStatus, (f, u) => f.PickRandom(1, 2, 3)) .RuleFor(t => t.LastUpdateBy, (f, u) => f.Person.FullName) .RuleFor(t => t.LastUpdateDate, (f, u) => f.Date.Soon(5)) .RuleFor(t => t.Priority, (f, u) => f.PickRandom("low", "medium", "high", "critical")) .RuleFor(t => t.AffectedCustomer, (f, u) => f.PickRandom(true, false)) .RuleFor(t => t.Version, (f, u) => f.PickRandom("1.0.0", "1.1.0", "2.0.0")) .RuleFor(t => t.ProjectId, (f, u) => f.Random.Number(100)) .RuleFor(t => t.DueDate, (f, u) => f.Date.Soon(5)) .RuleFor(t => t.EstimatedDuration, (f, u) => f.Random.Number(20)) .RuleFor(t => t.ActualDuration, (f, u) => f.Random.Number(20)) .RuleFor(t => t.TargetDate, (f, u) => f.Date.Soon(5)) .RuleFor(t => t.ResolutionDate, (f, u) => f.Date.Soon(5)) .RuleFor(t => t.Type, (f, u) => f.PickRandom(1, 2, 3)) .RuleFor(t => t.ParentId, () => 0) .RuleFor(t => t.PreferredLanguage, (f, u) => f.PickRandom("fr", "en", "es")) ; var fakeModels = new List <Ticket>(); for (var i = 0; i < 500; i++) { var t = faker.Generate(); t.TicketId = i + 1; fakeModels.Add(t); } ctx.AddRange(fakeModels); ctx.SaveChanges(); }); }
public static IEnumerable <T> PickRandomOrDefault <T>(this Bogus.Faker faker, IEnumerable <T> items, int quantity) { if (!items.Any()) { return(new T[0]); } return(faker.PickRandom(items, quantity)); }
public List <CarePackageDetail> CreateCarePackageDetails(CarePackage package, int count, PackageDetailType type) { var faker = new Bogus.Faker(); var costPeriod = type switch { PackageDetailType.CoreCost => PaymentPeriod.Weekly, PackageDetailType.AdditionalNeed => faker.PickRandom(PaymentPeriod.Weekly, PaymentPeriod.OneOff), _ => PaymentPeriod.Weekly }; var details = TestDataHelper.CreateCarePackageDetails(count, type, costPeriod); package.Details.AddRange(details); _context.SaveChanges(); return(details); }
/// Remover cuando sea real protected override void Seed() { var f = new Bogus.Faker(); var clients = ModelFakers.ClientFaker.Generate(10).ToList(); clients.ForEach(c => c.Address = f.PickRandom(this.addressRepository.List())); var firstClients = clients .Take(5) .ToList(); var lastClients = clients.Skip(5).Take(5).ToList(); firstClients.ForEach(x => lastClients.ForEach(y => this.AddCall(x, y, f.Random.Int(0, 15), DateTime.Now))); lastClients.ForEach(x => firstClients.ForEach(y => this.AddCall(x, y, f.Random.Int(0, 15), DateTime.Now))); this.Create(clients); }
private void CreateMockContract(InsuranceDb context) { var faker = new Bogus.Faker(); var contractCompany = context.Companies.OrderBy(c => c.Id).Skip(faker.Random.UShort(0, (ushort)(context.Companies.Count() - 1))).First(); var mockPerson = new Bogus.Person(); var newPerson = new EFModel.Person() { Address = mockPerson.Address.Street, BirthDate = mockPerson.DateOfBirth, DrivingLicenceNum = faker.Lorem.Letter().ToUpper() + faker.Lorem.Letter().ToUpper() + "-" + faker.Random.UInt(10000, 99999).ToString(), FatherName = faker.Name.FirstName(), FirstName = mockPerson.FirstName, LastName = mockPerson.LastName, TaxId = faker.Random.UInt(1000000, 9999999).ToString(), ZipCode = mockPerson.Address.ZipCode, }; context.Persons.Add(newPerson); // Create 1-3 telephone numbers for (var phoneIdx = 0; phoneIdx < faker.Random.UShort(1, 3); phoneIdx++) { var mockPhone = new EFModel.Phone(); mockPhone.Person = newPerson; mockPhone.Number = faker.Phone.PhoneNumber(); mockPhone.PhoneType = faker.PickRandom <EFModel.PhoneType>(); context.Phones.Add(mockPhone); } //Create 1-5 contracts for the user by setting a random start date for the first contract //In the insurance market the cotracts a usually 6 months length DateTime nextStartDate = DateTime.Today.AddMonths((-1) * faker.Random.UShort(1, 24)); // pick a random company string contractNumber = faker.Random.Number(1000000, 9999999).ToString(); do { // create a contract EFModel.Contract contract = new EFModel.Contract(); contract.Person = newPerson; contract.Company = contractCompany; contract.ContractNumber = contractNumber; contract.IssueDate = nextStartDate.AddDays(-2); contract.ExpireDate = nextStartDate.AddMonths(6); contract.GrossAmount = faker.Random.Number(100, 1000); contract.TaxAmount = (decimal)((double)contract.GrossAmount * (10d / 100d)); contract.NetAmount = contract.GrossAmount - contract.TaxAmount; contract.PlateNumber = faker.Lorem.Letter().ToUpper() + faker.Lorem.Letter().ToUpper() + faker.Lorem.Letter().ToUpper() + "-" + faker.Random.UInt(10000, 99999).ToString(); contract.ReceiptNumber = faker.Random.Number(10000000, 99999999).ToString(); contract.StartDate = nextStartDate; context.Contracts.Add(contract); nextStartDate = nextStartDate.AddMonths(6); } while (nextStartDate < DateTime.Today); context.SaveChanges(); }
public async Task <IActionResult> GenerateTestData() { var faker = new Bogus.Faker("en"); BuilderSetup.DisablePropertyNamingFor <Product, int>(x => x.Id); BuilderSetup.DisablePropertyNamingFor <Profile, int>(x => x.Id); BuilderSetup.DisablePropertyNamingFor <Transaction, int>(x => x.Id); BuilderSetup.DisablePropertyNamingFor <ProductType, int>(x => x.Id); int productTypeCount = 3; var productTypes = Builder <ProductType> .CreateListOfSize(productTypeCount) .All() .With(p => p.Name = faker.Commerce.Categories(1)[0]) .With(p => p.SortOrder = faker.Random.Number(0, productTypeCount)) .Build().ToList(); _context.ProductTypes.AddRange(productTypes); await _context.SaveChangesAsync(); var products = Builder <Product> .CreateListOfSize(20) .All() .With(p => p.ProductTypeId = faker.PickRandom(productTypes.Select(x => x.Id))) .With(p => p.Name = faker.Commerce.ProductName()) .With(p => p.Description = faker.Commerce.ProductAdjective()) .With(p => p.ImageUrl = $"https://i.picsum.photos/id/" + p.Id + "/400/400.jpg") .Build().ToList(); _context.Products.AddRange(products); await _context.SaveChangesAsync(); var profiles = Builder <Profile> .CreateListOfSize(300) .All() .With(p => p.FirstName = faker.Name.FirstName()) .With(p => p.LastName = faker.Name.LastName()) .With(p => p.Address = faker.Address.StreetAddress()) .With(p => p.City = faker.Address.City()) .With(p => p.State = faker.Address.State()) .With(p => p.ZipCode = faker.Address.ZipCode()) .With(p => p.Bio = faker.Name.JobDescriptor()) .With(p => p.Email = faker.Internet.Email()) .With(p => p.IsDropOffPoint = false) .With(p => p.IsSelfQuarantined = false) .With(p => p.Phone = faker.Phone.PhoneNumber()) .With(p => p.Latitude = faker.Address.Latitude(33.0075, 36.4997)) // min&max of Arkansas .With(p => p.Longitude = faker.Address.Longitude(-94.6198, -89.6594)) // min&max of Arkansas .With(p => p.Location = new Point(faker.Address.Longitude(-94.6198, -89.6594), faker.Address.Latitude(33.0075, 36.4997)) { SRID = 4326 }) // min&max of Arkansas .Random(10) .With(p => p.CompanyName == faker.Company.CompanyName()) .Random(30) .With(p => p.CompanyName == faker.Company.CompanyName()) .With(p => p.IsDropOffPoint == true) .Random(5) .With(p => p.IsSelfQuarantined == true) .Build(); _context.Profiles.AddRange(profiles); await _context.SaveChangesAsync(); var transactions = Builder <Transaction> .CreateListOfSize(1000) .All() .With(t => t.Product = faker.PickRandom(products)) .With(t => t.Amount = faker.Random.Number(3, 10000)) .With(t => t.Status = faker.PickRandom <TransactionStatus>()) .With(t => t.TransactionType = TransactionType.Stock) .With(t => t.From = null) .With(t => t.To = faker.PickRandom(profiles)) .With(t => t.TransactionDate = faker.Date.Between(new DateTime(2020, 04, 01), DateTime.Now)) .With(t => t.NeedId = null) .Build(); var transactions2 = Builder <Transaction> .CreateListOfSize(200) .All() .With(t => t.Product = faker.PickRandom(products)) .With(t => t.Amount = faker.Random.Number(3, 10000)) .With(t => t.Status = faker.PickRandom <TransactionStatus>()) .With(t => t.TransactionType = TransactionType.Delivery) .With(t => t.From = faker.PickRandom(profiles)) .With(t => t.To = faker.PickRandom(profiles)) .With(t => t.TransactionDate = faker.Date.Between(new DateTime(2020, 04, 01), DateTime.Now)) .With(t => t.NeedId = null) .Build(); _context.Transactions.AddRange(transactions); _context.Transactions.AddRange(transactions2); await _context.SaveChangesAsync(); return(Ok("Populated")); }