Exemplo n.º 1
0
        public void Is_Event_Created_Called()
        {
            var plant = new BasePlant();
            plant.DefinePropertiesOf(new House { Color = "blue", SquareFoot = 50 });
            plant.DefinePropertiesOf(new Person { FirstName = "Leo" });

            plant.BluePrintCreated += plant_BluePrintCreated;
            plant.Create<House>();
            plant.Create<Person>();
        }
Exemplo n.º 2
0
        public void Should_Build_Relation()
        {
            var plant = new BasePlant();
            plant.DefinePropertiesOf(new House() { Color = "blue", SquareFoot = 50 });
            plant.DefinePropertiesOf(new Person() { FirstName = "Leo" });

            var person = plant.Build<Person>();

            Assert.IsNotNull(person.HouseWhereILive);
        }
Exemplo n.º 3
0
        public void Can_Create_Two_Different_House()
        {
            var plant = new BasePlant();
            plant.DefinePropertiesOf(new House { Color = "blue", SquareFoot = 50 });
            plant.DefinePropertiesOf(new Person { FirstName = "Leo" });

            var house = plant.Create<House>();
            var redHouse = plant.Create(new House { Color = "red" });

            Assert.AreNotEqual(house, redHouse);
            Assert.AreNotEqual(house.Color, redHouse.Color);
        }
Exemplo n.º 4
0
        public void Should_Build_Relation()
        {
            var plant = new BasePlant();

            plant.DefinePropertiesOf(new House {
                Color = "blue", SquareFoot = 50
            });
            plant.DefinePropertiesOf(new Person {
                FirstName = "Leo"
            });

            var person = plant.Build <Person>();

            Assert.IsNotNull(person.HouseWhereILive);
        }
Exemplo n.º 5
0
        public void Is_Event_Created_Called()
        {
            var plant = new BasePlant();

            plant.DefinePropertiesOf(new House {
                Color = "blue", SquareFoot = 50
            });
            plant.DefinePropertiesOf(new Person {
                FirstName = "Leo"
            });

            plant.BluePrintCreated += plant_BluePrintCreated;
            plant.Create <House>();
            plant.Create <Person>();
            Assert.AreEqual(eventcounter, 2);
        }
Exemplo n.º 6
0
        public void Should_Only_Set_Properties_Once()
        {
            var testPlant = new BasePlant();

            testPlant.DefinePropertiesOf <WriteOnceMemoryModule>(new { Value = 5000 });
            Assert.AreEqual(10, testPlant.Create <WriteOnceMemoryModule>(new { Value = 10 }).Value);
        }
Exemplo n.º 7
0
        public void Should_Throw_PropertyNotFound_Exception_When_Given_Invalid_Property()
        {
            var plant = new BasePlant();

            plant.DefinePropertiesOf <Person>(new { Foo = "" });
            plant.Create <Person>();
        }
Exemplo n.º 8
0
        public void Should_Create_Instance_With_Requested_Properties()
        {
            var plant = new BasePlant();

            plant.DefinePropertiesOf <Person>(new { FirstName = "" });
            Assert.AreEqual("James", plant.Create <Person>(new { FirstName = "James" }).FirstName);
        }
Exemplo n.º 9
0
        public void Should_Create_Instance_With_Null_Value()
        {
            var testPlant = new BasePlant();

            testPlant.DefinePropertiesOf <Person>(new { FirstName = "Barbara", LastName = (string)null });
            Assert.IsNull(testPlant.Create <Person>().LastName);
        }
Exemplo n.º 10
0
        public void Should_Create_Instance_Of_Specified_Type()
        {
            var plant = new BasePlant();
              plant.DefinePropertiesOf<Person>(new { FirstName = "" });

              Assert.IsInstanceOf(typeof(Person), plant.Create<Person>());
        }
Exemplo n.º 11
0
        public void Should_Set_User_Properties_That_Are_Not_Defaulted()
        {
            var plant = new BasePlant();

            plant.DefinePropertiesOf <Person>(new { FirstName = "Barbara" });
            Assert.AreEqual("Brechtel", plant.Create <Person>(new { LastName = "Brechtel" }).LastName);
        }
Exemplo n.º 12
0
 public void SetupPlant(BasePlant plant)
 {
     plant.DefinePropertiesOf <Person>(new
     {
         MiddleName = "Elaine"
     });
 }
Exemplo n.º 13
0
        public void Should_Use_Default_Instance_Values()
        {
            var testPlant = new BasePlant();

            testPlant.DefinePropertiesOf <Person>(new { FirstName = "Barbara" });
            Assert.AreEqual("Barbara", testPlant.Create <Person>().FirstName);
        }
Exemplo n.º 14
0
        public void Should_Create_Instance_Of_Specified_Type()
        {
            var plant = new BasePlant();

            plant.DefinePropertiesOf <Person>(new { FirstName = "" });

            Assert.IsInstanceOf(typeof(Person), plant.Create <Person>());
        }
Exemplo n.º 15
0
 public void Should_Call_AfterBuildCallback_After_Properties_Populated()
 {
     var testPlant = new BasePlant();
     testPlant.DefinePropertiesOf<Person>(new {FirstName = "Angus", LastName = "MacGyver"},
     (p) => p.FullName = p.FirstName + p.LastName);
     var builtPerson = testPlant.Create<Person>();
     Assert.AreEqual(builtPerson.FullName, "AngusMacGyver");
 }
 public void SetupPlant(BasePlant p)
 {
     p.DefinePropertiesOf <DocumentGroupTable>(new
     {
         Name            = "My docs",
         DocumentGroupId = 123
     });
 }
Exemplo n.º 17
0
        public void Is_Event_Created_Called()
        {
            var plant = new BasePlant();

            plant.DefinePropertiesOf(new House()
            {
                Color = "blue", SquareFoot = 50
            });
            plant.DefinePropertiesOf(new Person()
            {
                FirstName = "Leo"
            });

            plant.BluePrintCreated += new BluePrintCreatedEventHandler(plant_BluePrintCreated);
            var house  = plant.Create <House>();
            var person = plant.Create <Person>();
        }
 public void SetupPlant(BasePlant p)
 {
     p.DefinePropertiesOf(new Customer
     {
         Name  = "Microsoft",
         Email = "*****@*****.**"
     });
 }
Exemplo n.º 19
0
 public void SetUp()
 {
     plant = new BasePlant();
     plant.DefinePropertiesOf <House>(new
     {
         Color      = "Red",
         SquareFoot = 1000
     });
 }
Exemplo n.º 20
0
        public void Should_Create_Instance_With_Default_Properties_Specified_By_Instance()
        {
            var testPlant = new BasePlant();

            testPlant.DefinePropertiesOf(new Person {
                FirstName = "James"
            });
            Assert.AreEqual("James", testPlant.Create <Person>().FirstName);
        }
Exemplo n.º 21
0
        public void Should_Not_Prefill_Relation_Defined()
        {
            var plant = new BasePlant();

            plant.DefinePropertiesOf(new House {
                Color = "blue", SquareFoot = 50
            });
            plant.DefinePropertiesOf(new Person {
                FirstName = "Leo", HouseWhereILive = new House {
                    Color = "Violet"
                }
            });

            var house  = plant.Create <House>();
            var person = plant.Create <Person>();

            Assert.AreEqual("Violet", person.HouseWhereILive.Color);
        }
Exemplo n.º 22
0
        public void Should_Call_AfterBuildCallback_After_Properties_Populated()
        {
            var testPlant = new BasePlant();

            testPlant.DefinePropertiesOf <Person>(new { FirstName = "Angus", LastName = "MacGyver" },
                                                  (p) => p.FullName = p.FirstName + p.LastName);
            var builtPerson = testPlant.Create <Person>();

            Assert.AreEqual(builtPerson.FullName, "AngusMacGyver");
        }
Exemplo n.º 23
0
        public void Can_Create_Two_Different_House()
        {
            var plant = new BasePlant();

            plant.DefinePropertiesOf(new House {
                Color = "blue", SquareFoot = 50
            });
            plant.DefinePropertiesOf(new Person {
                FirstName = "Leo"
            });

            var house    = plant.Create <House>();
            var redHouse = plant.Create(new House {
                Color = "red"
            });

            Assert.AreNotEqual(house, redHouse);
            Assert.AreNotEqual(house.Color, redHouse.Color);
        }
Exemplo n.º 24
0
        public void Should_Prefill_Relation()
        {
            var plant = new BasePlant();

            plant.DefinePropertiesOf(new House {
                Color = "blue", SquareFoot = 50
            });
            plant.DefinePropertiesOf(new Person {
                FirstName = "Leo"
            });

            var house  = plant.Create <House>();
            var person = plant.Create <Person>();

            Assert.IsNotNull(person.HouseWhereILive);
            Assert.AreEqual(house, person.HouseWhereILive);
            Assert.AreEqual(house.Color, person.HouseWhereILive.Color);
            Assert.AreEqual(house.SquareFoot, person.HouseWhereILive.SquareFoot);
        }
Exemplo n.º 25
0
        public void Should_Throw_LazyPropertyHasWrongTypeException_When_Lazy_Property_Definition_Returns_Wrong_Type()
        {
            var plant = new BasePlant();

            plant.DefinePropertiesOf <Person>(new
            {
                MiddleName = new LazyProperty <int>(() => 5)
            });

            plant.Create <Person>();
        }
Exemplo n.º 26
0
        public void Should_increment_values_in_a_sequence_with_property_construction()
        {
            var testPlant = new BasePlant();

            testPlant.DefinePropertiesOf <Person>(new
            {
                FirstName = new Sequence <string>((i) => "FirstName" + i)
            });
            Assert.AreEqual("FirstName0", testPlant.Create <Person>().FirstName);
            Assert.AreEqual("FirstName1", testPlant.Create <Person>().FirstName);
        }
Exemplo n.º 27
0
        public void Should_Create_Variation_Of_Specified_Type_With_Correct_Data()
        {
            var plant = new BasePlant();

            plant.DefinePropertiesOf <Person>(new { FirstName = "" });
            plant.DefineVariationOf <Person>("My", new { FirstName = "My" });

            var person = plant.Create <Person>("My");

            Assert.AreEqual("My", person.FirstName);
        }
Exemplo n.º 28
0
        public void Should_Create_Variation_Of_Specified_Type()
        {
            var plant = new BasePlant();

            plant.DefinePropertiesOf <Person>(new { FirstName = "" });
            plant.DefineVariationOf <Person>("My", new { FirstName = "My" });
            plant.DefineVariationOf <Person>("Her", new { FirstName = "Her" });

            Assert.IsInstanceOf(typeof(Person), plant.Create <Person>());
            Assert.IsInstanceOf(typeof(Person), plant.Create <Person>("My"));
            Assert.IsInstanceOf(typeof(Person), plant.Create <Person>("Her"));
        }
Exemplo n.º 29
0
        public void Should_Create_Variation_With_Extension()
        {
            var plant = new BasePlant();

            plant.DefinePropertiesOf <House>(new House {
                Color = "blue"
            }, OnPropertyPopulation);
            plant.DefineVariationOf <House>("My", new House {
                Color = "My"
            }, OnPropertyPopulationVariatoion);

            Assert.AreEqual(plant.Create <House>().Persons.First().FirstName, "Pablo");
            Assert.AreEqual(plant.Create <House>("My").Persons.First().FirstName, "Pedro");
        }
Exemplo n.º 30
0
        public void Should_Lazily_Evaluate_Delegate_Properties()
        {
            var    plant          = new BasePlant();
            string lazyMiddleName = null;

            plant.DefinePropertiesOf <Person>(new
            {
                MiddleName = new LazyProperty <string>(() => lazyMiddleName)
            });

            Assert.AreEqual(null, plant.Create <Person>().MiddleName);
            lazyMiddleName = "Johnny";
            Assert.AreEqual("Johnny", plant.Create <Person>().MiddleName);
        }
Exemplo n.º 31
0
        public void Create_WhenVariationHasLazyPropertyOverwrittenByUser_DoesNotInvokeVariationLazyProperty()
        {
            var plant = new BasePlant();
            const string variationName = "Self";
            var wasVariantLazyPropertyAssigned = false;
            plant.DefinePropertiesOf<Person>(new { FirstName = "default" });
            plant.DefineVariationOf<Person>(variationName, new
            {
                FirstName = new LazyProperty<string>(() =>
                {
                    wasVariantLazyPropertyAssigned = true;
                    return "overwritten";
                })
            });

            plant.Create<Person>(new { FirstName = "UserDefined" }, variationName);

            Assert.IsFalse(wasVariantLazyPropertyAssigned);
        }
Exemplo n.º 32
0
        public void Should_Lazily_Evaluate_Delegate_Properties()
        {
            var plant = new BasePlant();
            string lazyMiddleName = null;
            plant.DefinePropertiesOf<Person>(new
            {
                // ReSharper disable once AccessToModifiedClosure
                MiddleName = new LazyProperty<string>(() => lazyMiddleName)
            });

            Assert.AreEqual(null, plant.Create<Person>().MiddleName);
            lazyMiddleName = "Johnny";
            Assert.AreEqual("Johnny", plant.Create<Person>().MiddleName);
        }
Exemplo n.º 33
0
 public void Should_Use_Default_Instance_Values()
 {
     var testPlant = new BasePlant();
     testPlant.DefinePropertiesOf<Person>(new { FirstName = "Barbara" });
     Assert.AreEqual("Barbara", testPlant.Create<Person>().FirstName);
 }
Exemplo n.º 34
0
 public void SetupPlant(BasePlant plant)
 {
     plant.DefinePropertiesOf<Person>(new
     {
         MiddleName = "Elaine"
     });
 }
Exemplo n.º 35
0
        public void Should_Throw_LazyPropertyHasWrongTypeException_When_Lazy_Property_Definition_Returns_Wrong_Type()
        {
            var plant = new BasePlant();
            plant.DefinePropertiesOf<Person>(new
            {
                MiddleName = new LazyProperty<int>(() => 5)
            });

            plant.Create<Person>();
        }
Exemplo n.º 36
0
 public void Should_Throw_PropertyNotFound_Exception_When_Given_Invalid_Property()
 {
     var plant = new BasePlant();
     plant.DefinePropertiesOf<Person>(new { Foo = "" });
     plant.Create<Person>();
 }
Exemplo n.º 37
0
        public void Should_Prefill_Relation()
        {
            var plant = new BasePlant();
            plant.DefinePropertiesOf(new House { Color = "blue", SquareFoot = 50 });
            plant.DefinePropertiesOf(new Person { FirstName = "Leo" });

            var house = plant.Create<House>();
            var person = plant.Create<Person>();

            Assert.IsNotNull(person.HouseWhereILive);
            Assert.AreEqual(house, person.HouseWhereILive);
            Assert.AreEqual(house.Color, person.HouseWhereILive.Color);
            Assert.AreEqual(house.SquareFoot, person.HouseWhereILive.SquareFoot);
        }
Exemplo n.º 38
0
 public void Should_Set_User_Properties_That_Are_Not_Defaulted()
 {
     var plant = new BasePlant();
     plant.DefinePropertiesOf<Person>(new { FirstName = "Barbara" });
     Assert.AreEqual("Brechtel", plant.Create<Person>(new { LastName = "Brechtel" }).LastName);
 }
Exemplo n.º 39
0
        public void Should_Not_Prefill_Relation_Defined()
        {
            var plant = new BasePlant();
            plant.DefinePropertiesOf(new House { Color = "blue", SquareFoot = 50 });
            plant.DefinePropertiesOf(new Person { FirstName = "Leo", HouseWhereILive = new House { Color = "Violet" } });

            plant.Create<House>();
            var person = plant.Create<Person>();

            Assert.AreEqual("Violet", person.HouseWhereILive.Color);
        }
Exemplo n.º 40
0
 public void Should_Only_Set_Properties_Once()
 {
     var testPlant = new BasePlant();
     testPlant.DefinePropertiesOf<WriteOnceMemoryModule>(new { Value = 5000 });
     Assert.AreEqual(10, testPlant.Create<WriteOnceMemoryModule>(new { Value = 10 }).Value);
 }
Exemplo n.º 41
0
 public void Should_increment_values_in_a_sequence_with_property_construction()
 {
     var testPlant = new BasePlant();
     testPlant.DefinePropertiesOf<Person>(new
     {
         FirstName = new Sequence<string>(i => "FirstName" + i)
     });
     Assert.AreEqual("FirstName0", testPlant.Create<Person>().FirstName);
     Assert.AreEqual("FirstName1", testPlant.Create<Person>().FirstName);
 }
Exemplo n.º 42
0
 public void SetupPlant(BasePlant p)
 {
     p.DefinePropertiesOf <House>(new { Color = "red" });
 }
Exemplo n.º 43
0
        public void Should_Create_Variation_With_Extension()
        {
            var plant = new BasePlant();
            plant.DefinePropertiesOf(new House { Color = "blue" }, OnPropertyPopulation);
            plant.DefineVariationOf("My", new House { Color = "My" }, OnPropertyPopulationVariatoion);

            Assert.AreEqual(plant.Create<House>().Persons.First().FirstName, "Pablo");
            Assert.AreEqual(plant.Create<House>("My").Persons.First().FirstName, "Pedro");
        }
Exemplo n.º 44
0
        public void Should_Create_Variation_Of_Specified_Type_With_Correct_Data()
        {
            var plant = new BasePlant();
            plant.DefinePropertiesOf<Person>(new { FirstName = "" });
            plant.DefineVariationOf<Person>("My", new { FirstName = "My" });

            var person = plant.Create<Person>("My");
            Assert.AreEqual("My", person.FirstName);
        }
Exemplo n.º 45
0
 public void Should_Create_Instance_With_Null_Value()
 {
     var testPlant = new BasePlant();
     testPlant.DefinePropertiesOf<Person>(new { FirstName = "Barbara", LastName = (string)null });
     Assert.IsNull(testPlant.Create<Person>().LastName);
 }
Exemplo n.º 46
0
 public void Should_Create_Instance_With_Requested_Properties()
 {
     var plant = new BasePlant();
     plant.DefinePropertiesOf<Person>(new { FirstName = "" });
     Assert.AreEqual("James", plant.Create<Person>(new { FirstName = "James" }).FirstName);
 }
Exemplo n.º 47
0
 public void Should_Create_Instance_With_Requested_Properties_Specified_By_Instance()
 {
     var testPlant = new BasePlant();
     testPlant.DefinePropertiesOf(new Person { FirstName = "David" });
     Assert.AreEqual("James", testPlant.Create(new Person { FirstName = "James" }).FirstName);
 }
Exemplo n.º 48
0
 public void SetupPlant(BasePlant p)
 {
     p.DefinePropertiesOf <Person>(new { Name = "my name" });
 }
Exemplo n.º 49
0
        public void Should_Create_Variation_Of_Specified_Type()
        {
            var plant = new BasePlant();
            plant.DefinePropertiesOf<Person>(new { FirstName = "" });
            plant.DefineVariationOf<Person>("My", new { FirstName = "My" });
            plant.DefineVariationOf<Person>("Her", new { FirstName = "Her" });

            Assert.IsInstanceOf(typeof(Person), plant.Create<Person>());
            Assert.IsInstanceOf(typeof(Person), plant.Create<Person>("My"));
            Assert.IsInstanceOf(typeof(Person), plant.Create<Person>("Her"));
        }