public void ReturnsPlanWiithPropertyPlans() { //Arrange var creator = new Genesis.Creator(); //Act var plan = creator.CreatePlanFor(typeof(ComplexClass)); //Assert Assert.AreEqual(5, plan.PropertyPlans.Count()); }
public void ReturnsAPlanUsingAGenericGenerator() { //Arrange var creator = new Genesis.Creator(); //Act var plan = creator.CreatePlanFor(typeof(SimpleClass)); //Assert Assert.AreEqual(typeof(IntelligentDesign), plan.GeneratorType); }
public void ReturnsAPlan() { //Arrange var creator = new Genesis.Creator(); //Act var plan = creator.CreatePlanFor(typeof(SimpleClass)); //Assert Assert.IsNotNull(plan); }
public void ReturnsAPlanForTheType() { //Arrange var creator = new Genesis.Creator(); //Act var plan = creator.CreatePlanFor(typeof(SimpleClass)); //Assert Assert.AreEqual(typeof(SimpleClass), plan.ForType); }
public void ReturnsNull() { //Arrange var creator = new Genesis.Creator(); //Act var design = creator.GetRegisteredDesignFor(typeof(SimpleClass)); //Assert Assert.IsNull(design); }
public void ReturnsPlanWiithGenericPropertyPlans() { //Arrange var creator = new Genesis.Creator(); //Act var plan = creator.CreatePlanFor(typeof(ComplexClass)); //Assert foreach (var propPlan in plan.PropertyPlans) Assert.AreEqual(propPlan.Plan.GeneratorType, typeof(IntelligentDesign)); }
public void ReturnsRegisteredDesign() { //Arrange var creator = new Genesis.Creator(); creator.RegisterDesign(new EmptyDesignForSimpleClass()); //Act var design = creator.GetRegisteredDesignFor(typeof(SimpleClass)); //Assert Assert.IsInstanceOfType(design, typeof(EmptyDesignForSimpleClass)); }
public void ReturnsAPlanUsingTheSpecifiedGenerator() { //Arrange var creator = new Genesis.Creator(); creator.RegisterDesign(new EmptyDesignForSimpleClass()); //Act var plan = creator.CreatePlanFor(typeof(SimpleClass)); //Assert Assert.AreEqual(typeof(EmptyDesignForSimpleClass), plan.GeneratorType); }
public void ReturnsNewObjectOfRegisteredType() { //Arrange var creator = new Genesis.Creator(); creator.RegisterDesign(new EmptyDesignForSimpleClass()); //Act var simpleClass = creator.Create(typeof(SimpleClass)); //Assert Assert.IsInstanceOfType(simpleClass, typeof(SimpleClass)); }
public void RegistersEachDesign() { //Arrange var creator = new Genesis.Creator(); var designs = new List<IntelligentDesign>() { new EmptyDesignForSimpleClass(), new DesignForRecursiveClass() }; //Act creator.RegisterDesigns(designs); //Assert var design = creator.GetRegisteredDesignFor(typeof(SimpleClass)); Assert.IsInstanceOfType(design, typeof(EmptyDesignForSimpleClass)); design = creator.GetRegisteredDesignFor(typeof(RecursiveClass)); Assert.IsInstanceOfType(design, typeof(DesignForRecursiveClass)); }
public void ReturnsPlanWiithSpecificMutationPropertyPlans() { //Arrange var creator = new Genesis.Creator(); creator.RegisterDesign(new DesignForComplexClass()); creator.RegisterDesign(new StringDesign()); //Act var plan = creator.CreatePlanFor(typeof(ComplexClass)); //Assert foreach (var propPlan in plan.PropertyPlans) { var mutationType = typeof(IntelligentMutation<>).MakeGenericType(new[] { propPlan.Property.PropertyType }); Assert.AreEqual(propPlan.Plan.GeneratorType, mutationType); } }
public void ReturnsPopulatedObject() { //Arrange var creator = new Genesis.Creator(); creator.RegisterDesign(new DesignForComplexClass()); creator.RegisterDesign(new StringDesign()); //Act var complexClass = creator.Create(typeof(ComplexClass)) as ComplexClass; //Assert Assert.AreEqual(DateTime.Parse("08/13/1977"), complexClass.Date); Assert.AreEqual(Guid.Parse("FBB49DE7-B6C3-4340-8595-45E19817147C"), complexClass.Id); Assert.AreEqual("My Complex Class", complexClass.Name); Assert.AreEqual(10, complexClass.Number); Assert.AreEqual("One", complexClass.Ids.ElementAt(0)); Assert.AreEqual("Two", complexClass.Ids.ElementAt(1)); Assert.AreEqual("Three", complexClass.Ids.ElementAt(2)); }
public void ReturnsListOfPopulatedObject() { //Arrange var creator = new Genesis.Creator(); creator.RegisterDesign(new DesignForComplexClass()); //Act var complexClassList = creator.Create(typeof(IEnumerable<ComplexClass>)) as IEnumerable<ComplexClass>; foreach (var item in complexClassList) { Assert.AreEqual(DateTime.Parse("08/13/1977"), item.Date); Assert.AreEqual(Guid.Parse("FBB49DE7-B6C3-4340-8595-45E19817147C"), item.Id); Assert.AreEqual("My Complex Class", item.Name); Assert.AreEqual(10, item.Number); Assert.AreEqual("One", item.Ids.ElementAt(0)); Assert.AreEqual("Two", item.Ids.ElementAt(1)); Assert.AreEqual("Three", item.Ids.ElementAt(2)); } }