public void Default_ClassSeeder_Creates_No_Null_Data() { var classSeeder = new ClassSeeder(typeof(Customer)); var data = (Customer)classSeeder.SeedClass(); Assert.IsTrue(data.FirstName != null); }
public void ClassSeeder_Loads_Correct_Default_IPropertySeeders_For_Customer() { var classSeeder = new ClassSeeder(typeof(Customer)); var data = classSeeder.SeedClass(); Assert.IsTrue(classSeeder.PropertySeeders.ContainsKey("Id")); Assert.IsTrue(classSeeder.PropertySeeders.ContainsKey("FirstName")); Assert.IsTrue(classSeeder.PropertySeeders["Id"].GetInstance().PropertyInstance.GetType() == typeof(int)); Assert.IsTrue(classSeeder.PropertySeeders["FirstName"].GetInstance().PropertyInstance.GetType() == typeof(string)); }
/// <summary> /// Customize an IClassSeeder with a ClassSeederBuilder API /// </summary> /// <typeparam name="TClass">Type of the class</typeparam> /// <param name="selector"></param> /// <returns></returns> public ClassSeederBuilder <TClass> CustomizeClassSeeder <TClass>(Expression <Func <TContext, MockCollection <TClass> > > selector) where TClass : class { dynamic dynamicExp = selector; var className = dynamicExp.Body.Member.Name; var classSeeder = new ClassSeeder(typeof(TClass)); _classSeederMonitor.AddOrUpdateClassSeeder(className, classSeeder); var classSeederBuilder = new ClassSeederBuilder <TClass>(classSeeder); return(classSeederBuilder); }
/// <summary> /// Create IClassSeeders for each MockCollection property on the MockContext subclass, if they have not been supplied by the client /// </summary> /// <typeparam name="TContext">MockContext subclass</typeparam> /// <param name="contextSeeder">The ContextSeeder</param> public void LoadUnsetClassSeeders <TContext>(ContextSeeder <TContext> contextSeeder) where TContext : MockContext { foreach (var prop in MockHelpers.GetMockCollectionPropertiesFromMockContext <TContext>()) { var classType = prop.PropertyType.GenericTypeArguments[0]; if (contextSeeder.ClassSeeders.ContainsKey(prop.Name)) { continue; } var classSeeder = new ClassSeeder(classType); contextSeeder.ClassSeeders.Add(prop.Name, classSeeder); } }