protected override void Given() { _markerString = GetType().FullName; _generatorSetup = new GeneratorSetup(); _generatorSetup.DefaultFlushStrategy = new LimitedCapacityFlushStrategy(10); _generatorSetup.DefaultPersistentStorages.Add( new EntityFrameworkCorePersistentStorage(() => new SampleDbContext())); _generatorSetup.RegisterEntity <Category>() .SetTargetCount(25) .SetGenerator(ctx => new Category() { Name = $"Category #{ctx.CurrentCount}", MarkerText = _markerString }); _generatorSetup.RegisterEntity <Post>() .SetInsertToPersistentStorageBeforeUse(true) .SetTargetCount(100) .SetGenerator(ctx => new Post() { MarkerText = _markerString }); _generatorSetup.RegisterEntity <Comment>() .SetTargetCount(50) .SetGenerator <Category, Post>((ctx, category, post) => new Comment() { PostId = post.Id, CommentText = $"Comment in category: {category.Name}", MarkerText = _markerString }); }
static void Main(string[] args) { //Setup var setup = new GeneratorSetup(); setup.RegisterEntity <Buyer>() .SetGenerator(GenerateBuyer) .SetPersistentStorage(new CsvPersistentStorage("Set-Buyers.csv")) .SetTargetCount(100); setup.RegisterEntity <Supplier>() .SetGenerator(GenerateSupplier) .SetPersistentStorage(new CsvPersistentStorage("Set-Suppliers.csv")) .SetTargetCount(100); setup.RegisterEntity <PurchaseOrder>() .SetGenerator <Supplier, Buyer>(GeneratePurchaseOrder) .AddMultiModifier <Supplier, Buyer>(ModifyPurchaseOrders) .SetPersistentStorage(new CsvPersistentStorage("Set-PurchaseOrders.csv")) .SetSpreadStrategy(new CartesianProductSpreadStrategy()) .SetTargetCount(100000); //Generate setup.ProgressChanged += PrintProgress; setup.Generate(); Console.WriteLine("Completed"); Console.ReadKey(); }
//methods public override void RegisterEntities(GeneratorSetup setup, SpecsDbContext dbContext) { IMongoDatabase _database = dbContext.SignalBounces.Database; setup.RegisterEntity <SubscriberWithMissingData>() .SetGenerator(GenerateSubscriber); setup.RegisterEntity <SpecsDeliveryTypeSettings>() .SetMultiGenerator <SubscriberWithMissingData>(GenerateDeliveryTypes) .SetPersistentStorage(new MongoDbPersistentStorage(_database, dbContext.SubscriberDeliveryTypeSettings.CollectionNamespace.CollectionName)); setup.RegisterEntity <SubscriberTopicSettings <ObjectId> >() .SetMultiGenerator <SubscriberCategorySettings <ObjectId>, SubscriberWithMissingData>(GenerateTopics) .SetPersistentStorage(new MongoDbPersistentStorage(_database, dbContext.SubscriberTopicSettings.CollectionNamespace.CollectionName)); }
//register generators public virtual void RegisterEntities(GeneratorSetup setup, SpecsDbContext dbContext) { IMongoDatabase _database = dbContext.SignalBounces.Database; setup.RegisterEntity <SignalDispatch <ObjectId> >() .SetGenerator(GenerateDispatches) .SetPersistentStorage(new MongoDbPersistentStorage(_database, dbContext.SignalDispatches.CollectionNamespace.CollectionName)); }