Ejemplo n.º 1
0
        static void Main(string[] args)
        {
            Console.WriteLine("Hello World!");

            Pizza        orderPizza;
            List <Pizza> orderList = new List <Pizza>();

            orderPizza = new MediumPizza();
            orderPizza = new DoubleCheese(orderPizza);
            //   Console.WriteLine(orderPizza);

            orderList.Add(orderPizza);

            orderPizza = new SmallPizza();
            orderPizza = new Olive(orderPizza);
            orderPizza = new Ham(orderPizza);

            //  Console.WriteLine(orderPizza);
            orderList.Add(orderPizza);


            orderPizza = new BigPizza();
            orderPizza = new Ham(orderPizza);
            orderPizza = new DoubleCheese(orderPizza);
            orderPizza = new Olive(orderPizza);
            orderList.Add(orderPizza);


            foreach (var pizza in orderList)
            {
                Console.WriteLine(pizza);
            }

            Console.ReadLine();
        }
Ejemplo n.º 2
0
        public void Each_property_gets_its_own_generator()
        {
            var olives = new Olive[4];
            var toasts = new Toast[4];

            using (var context = new PetsContext("Dance"))
            {
                olives[0] = context.Add(new Olive()).Entity;
                toasts[0] = context.Add(new Toast()).Entity;

                Assert.Equal(1, olives[0].Id);
                Assert.Equal(1, toasts[0].Id);

                olives[1] = context.Add(new Olive()).Entity;
                toasts[1] = context.Add(new Toast()).Entity;

                Assert.Equal(2, olives[1].Id);
                Assert.Equal(2, toasts[1].Id);

                context.SaveChanges();

                Assert.Equal(1, olives[0].Id);
                Assert.Equal(1, toasts[0].Id);
                Assert.Equal(2, olives[1].Id);
                Assert.Equal(2, toasts[1].Id);

                olives[2] = context.Add(new Olive()).Entity;
                toasts[2] = context.Add(new Toast()).Entity;

                Assert.Equal(3, olives[2].Id);
                Assert.Equal(3, toasts[2].Id);

                context.SaveChanges();
            }

            using (var context = new PetsContext("Dance"))
            {
                olives[3] = context.Add(new Olive()).Entity;
                toasts[3] = context.Add(new Toast()).Entity;

                Assert.Equal(4, olives[3].Id);
                Assert.Equal(4, toasts[3].Id);

                context.SaveChanges();
            }

            Assert.Equal(1, olives[0].Id);
            Assert.Equal(1, toasts[0].Id);
            Assert.Equal(2, olives[1].Id);
            Assert.Equal(2, toasts[1].Id);
            Assert.Equal(3, olives[2].Id);
            Assert.Equal(3, toasts[2].Id);
            Assert.Equal(4, olives[3].Id);
            Assert.Equal(4, toasts[3].Id);
        }
        public void Mixing_explicit_values_with_generated_values_with_care_works()
        {
            var olives = new Olive[4];
            var toasts = new Toast[4];

            using (var context = new PetsContext("Wercs"))
            {
                olives[0] = context.Add(new Olive {
                    Id = 10
                }).Entity;
                toasts[0] = context.Add(new Toast {
                    Id = 100
                }).Entity;

                context.SaveChanges();

                olives[1] = context.Add(new Olive()).Entity;
                toasts[1] = context.Add(new Toast()).Entity;

                context.SaveChanges();

                Assert.Equal(10, olives[0].Id);
                Assert.Equal(100, toasts[0].Id);
                Assert.Equal(11, olives[1].Id);
                Assert.Equal(101, toasts[1].Id);

                olives[2] = context.Add(new Olive {
                    Id = 20
                }).Entity;
                toasts[2] = context.Add(new Toast {
                    Id = 200
                }).Entity;

                context.SaveChanges();

                olives[3] = context.Add(new Olive()).Entity;
                toasts[3] = context.Add(new Toast()).Entity;

                context.SaveChanges();

                Assert.Equal(20, olives[2].Id);
                Assert.Equal(200, toasts[2].Id);
                Assert.Equal(21, olives[3].Id);
                Assert.Equal(201, toasts[3].Id);
            }
        }
Ejemplo n.º 4
0
        public void Generators_are_associated_with_database_root()
        {
            var serviceProvider1 = new ServiceCollection()
                                   .AddEntityFrameworkInMemoryDatabase()
                                   .BuildServiceProvider();

            var serviceProvider2 = new ServiceCollection()
                                   .AddEntityFrameworkInMemoryDatabase()
                                   .BuildServiceProvider();

            var root = new InMemoryDatabaseRoot();

            var olives = new Olive[2];
            var toasts = new Toast[2];

            using (var context = new PetsContext("Drink", root, serviceProvider1))
            {
                olives[0] = context.Add(new Olive()).Entity;
                toasts[0] = context.Add(new Toast()).Entity;

                Assert.Equal(1, olives[0].Id);
                Assert.Equal(1, toasts[0].Id);

                context.SaveChanges();
            }

            using (var context = new PetsContext("Drink", root, serviceProvider2))
            {
                olives[1] = context.Add(new Olive()).Entity;
                toasts[1] = context.Add(new Toast()).Entity;

                Assert.Equal(2, olives[1].Id);
                Assert.Equal(2, toasts[1].Id);

                context.SaveChanges();
            }

            Assert.Equal(1, olives[0].Id);
            Assert.Equal(1, toasts[0].Id);
            Assert.Equal(2, olives[1].Id);
            Assert.Equal(2, toasts[1].Id);
        }
Ejemplo n.º 5
0
        static void Main(string[] args)
        {
            Pizza largePizza = new LargePizza();

            largePizza = new Cheese(largePizza);
            largePizza = new Olive(largePizza);
            largePizza = new Ham(largePizza);

            Console.WriteLine($"{largePizza.GetDescription()} costs £{largePizza.CalculateCost()}");


            Pizza smallPizza = new SmallPizza();

            smallPizza = new Cheese(smallPizza);
            smallPizza = new Olive(smallPizza);
            smallPizza = new Ham(smallPizza);

            Console.WriteLine($"{smallPizza.GetDescription()} costs £{smallPizza.CalculateCost()}");


            Pizza mediumPizza = new MediumPizza();

            mediumPizza = new Cheese(mediumPizza);
            mediumPizza = new Olive(mediumPizza);

            Console.WriteLine($"{mediumPizza.GetDescription()} costs £{mediumPizza.CalculateCost()}");



            Pizza mediumPizza2 = new MediumPizza();

            mediumPizza2 = new DoubleCheese(mediumPizza2);
            mediumPizza2 = new Olive(mediumPizza2);

            Console.WriteLine($"{mediumPizza2.GetDescription()} costs £{mediumPizza2.CalculateCost()}");


            Console.ReadLine();
        }