public void CondimentDecorator_DecoratesCorrectly()
        {
            IBeverage           coffee = new SimpleCoffee();
            ICondimentDecorator order  = new Whip(coffee);

            Assert.AreEqual("Simple Black Coffee + Whip", order.Description);
        }
Пример #2
0
        static void Main(string[] args)
        {
            //LargePizza largePizza = new LargePizza();
            Pizza largePizza = new LargePizza();

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

            //Console.WriteLine(largePizza.Description);
            Console.WriteLine(largePizza.GetDescription());
            Console.WriteLine("{0:C2}", largePizza.CalculateCost());

            Console.ReadKey();
            Console.WriteLine();

            Beverage coffee = new Espresso();

            coffee = new Mocha(coffee);
            coffee = new Mocha(coffee);
            coffee = new Whip(coffee);

            Console.WriteLine(coffee.GetDescription());
            Console.WriteLine("{0:C2}", coffee.Cost());

            Console.ReadKey();
        }
Пример #3
0
        static void Main(string[] args)
        {
            //Основы кофе для декорации
            Bevegare bevegare  = new Espresso();
            Bevegare bevegare1 = new DarkRoast();
            Bevegare bevegare2 = new Decaf();
            Bevegare bevegare3 = new HouseBlind();

            Console.WriteLine($"{bevegare.description} UAH {bevegare.cost()}");
            Console.WriteLine($"{bevegare1.description} UAH {bevegare1.cost()}");
            Console.WriteLine($"{bevegare2.description} UAH {bevegare2.cost()}");
            Console.WriteLine($"{bevegare3.description} UAH {bevegare3.cost()}");
            Console.WriteLine(new string('-', 50));

            //Decorators coffee
            Chocolate chocolate = new Chocolate();
            Milk      milk      = new Milk();
            Mocha     mocha     = new Mocha();
            Whip      whip      = new Whip();

            //Decorator with coffee
            chocolate.SetComponent(bevegare);
            milk.SetComponent(chocolate);
            mocha.SetComponent(milk);
            whip.SetComponent(mocha);

            //Display in screen
            Console.WriteLine($"{chocolate.GetDescription()} UAH {chocolate.cost()}");
            Console.WriteLine($"{milk.GetDescription()} UAH {milk.cost()}");
            Console.WriteLine($"{mocha.GetDescription()} UAH {mocha.cost()}");
            Console.WriteLine($"{whip.GetDescription()} UAH {whip.cost()}");

            Console.ReadLine();
        }
Пример #4
0
        static void Main(string[] args)
        {
            Beverage beverage = new Expresso();

            Console.WriteLine(beverage.GetDescription() + " R$" + beverage.Cost());
            Console.WriteLine();

            Beverage beverage2 = new DarkRoast();

            beverage2 = new Mocha(beverage2);
            beverage2 = new Mocha(beverage2);
            beverage2 = new Whip(beverage2);
            Console.WriteLine(beverage2.GetDescription() + " R$" + beverage2.Cost());
            Console.WriteLine();

            Beverage beverage3 = new HouseBlend();

            beverage3 = new Soy(beverage3);
            beverage3 = new Mocha(beverage3);
            beverage3 = new Whip(beverage3);
            Console.WriteLine(beverage3.GetDescription() + " R$" + beverage3.Cost());
            Console.WriteLine();

            Console.ReadKey();
        }
Пример #5
0
        static void Main(string[] args)
        {
            var view      = new ConsoleView();
            var beverages = BeverageProvider.GetBeverages();

            // create beverage
            var beverage = beverages.Take(1).FirstOrDefault();

            // add CondimentDecorators
            // add Mocha
            beverage = new Mocha(beverage)
            {
                Cost = .60M
            };
            beverage = new Mocha(beverage)
            {
                Cost = .60M
            };

            // add Soy
            beverage = new Soy(beverage)
            {
                Cost = .40M
            };

            // add Whip
            beverage = new Whip(beverage)
            {
                Cost = .45M
            };

            view.Show(beverage);
        }
        static void Main(string[] args)
        {
            IBeverage beverage = new DarkRoast();

            System.Console.WriteLine($"{beverage.GetDescription()}: ${beverage.GetCost()}\n");

            beverage = new Soy(beverage);
            System.Console.WriteLine($"{beverage.GetDescription()}: ${beverage.GetCost()}\n");
            beverage = new Whip(beverage);
            System.Console.WriteLine($"{beverage.GetDescription()}: ${beverage.GetCost()}\n");
            beverage = new Mocha(beverage);
            System.Console.WriteLine($"{beverage.GetDescription()}: ${beverage.GetCost()}\n");
            beverage = new Mocha(beverage);
            System.Console.WriteLine($"{beverage.GetDescription()}: ${beverage.GetCost()}\n");
            beverage = new Whip(beverage);
            System.Console.WriteLine($"{beverage.GetDescription()}: ${beverage.GetCost()}\n");
            beverage = new Whip(beverage);
            System.Console.WriteLine($"{beverage.GetDescription()}: ${beverage.GetCost()}\n");
            beverage = new Whip(beverage);
            System.Console.WriteLine($"{beverage.GetDescription()}: ${beverage.GetCost()}\n");
            beverage = new Whip(beverage);
            System.Console.WriteLine($"{beverage.GetDescription()}: ${beverage.GetCost()}\n");
            beverage = new Whip(beverage);
            System.Console.WriteLine($"{beverage.GetDescription()}: ${beverage.GetCost()}\n");
            beverage = new Whip(beverage);

            System.Console.WriteLine($"{beverage.GetDescription()}: ${beverage.GetCost()}\n");
            Console.ReadLine();
        }
Пример #7
0
    // Use this for initialization
    void Start()
    {
        anim = GetComponent <Animator>();

        rbody = GetComponent <Rigidbody2D>();

        sRenderer = GetComponent <SpriteRenderer>();

        scale = transform.localScale.x;

        whip = GetComponent <Whip>();

        whip.enabled = false;

        if (indy == null)
        {
            indy = this;
        }

        hasHammer = false;

        hammer.gameObject.SetActive(hasHammer);

        gun.gameObject.SetActive(false);

        jetpackAnim = jetpack.GetComponent <Animator>();

        jetpack.SetActive(false);

        moneyText.enabled = true;
    }
Пример #8
0
        /// <summary>
        /// # Motivation
        /// I can now attach responsibilities to an object dynamically to add behaviour at runtime.
        ///
        /// # Structure
        /// Beverage
        ///  --> base class so all objects are of same type
        /// CondimentDecorator : Bevarage
        ///  --> interchangeable with Beverage
        ///
        /// # Sample Problem
        /// A coffee shop wants to make an ordering system for all their drinks. Ofcourse there are a lot of combination with condiments/roasts.
        /// We could create a base class and let all possible combinations inherit from the superclass and override their behaviour, but that would quickly become a mess.
        ///
        /// # Solution
        /// By creating a Decorator class which inherits from the baseclass (to effectively swap between types), I can now dynamically create composite objects at runtime.
        /// To add a drink to the system:
        ///     1. inherit from the base class, set instance fields in constructor
        ///     2. override the 'Cost()' method to return desired cost
        /// To add a condiment to the system:
        ///     1. inherit from 'CondimentDecorator' (indirectly from base class as well
        ///     2. add instance field from type Beverage
        ///     3. initialize in constructor
        ///     4. override GetDescription() and Cost() accordingly
        /// To create a composite object at runtime:
        ///     1. Create a new instance of a drink (Beverage)
        ///     2. To add a condiment, assign the instance to a new instance of the condiment with itself as param
        ///         A. Beverage darkRoast = new DarkRoast();
        ///         B. darkRoast = new Mocha(darkRoast);
        /// </summary>
        public void Test()
        {
            Beverage beverage = new Espresso();

            Console.WriteLine($"{beverage.GetDescription()} ${beverage.Cost()}");

            Beverage beverage1 = new DarkRoast();

            beverage1 = new Mocha(beverage1);
            Console.WriteLine($"{beverage1.GetDescription()} ${beverage1.Cost()}");

            Beverage beverage2 = new DarkRoast();

            beverage2 = new Mocha(beverage2);
            Console.WriteLine($"{beverage2.GetDescription()} ${beverage2.Cost()}");
            beverage2 = new Mocha(beverage2);
            Console.WriteLine($"{beverage2.GetDescription()} ${beverage2.Cost()}");
            beverage2 = new Whip(beverage2);
            Console.WriteLine($"{beverage2.GetDescription()} ${beverage2.Cost()}");

            Beverage beverage3 = new HouseBlend();

            beverage3 = new Soy(beverage3);
            beverage3 = new Mocha(beverage3);
            beverage3 = new Whip(beverage3);

            Console.WriteLine($"{beverage3.GetDescription()} ${beverage3.Cost()}");
        }
Пример #9
0
        static void Main(string[] args)
        {
            Beverage beverage = new Expresso();

            Console.WriteLine("Beverage #1: " + beverage.getDescription() + " $" + beverage.cost());


            Beverage beverage2 = new DarkRoast();

            beverage2 = new Mocha(beverage2);
            beverage2 = new Mocha(beverage2);
            beverage2 = new Whip(beverage2);

            Console.WriteLine("\nBeverage #2: " + beverage2.getDescription() + " $" + beverage2.cost());


            Beverage beverage3 = new HouseBlend();

            beverage3 = new Soy(beverage3);
            beverage3 = new Mocha(beverage3);
            beverage3 = new Whip(beverage3);

            Console.WriteLine("\nBeverage #3: " + beverage3.getDescription() + " $" + beverage3.cost());


            //keep window open
            Console.ReadLine();
        }
Пример #10
0
        static void Main(string[] args)
        {
            Beverage beverage1 = new Espresso();

            Console.WriteLine(beverage1);

            Beverage beverage1Small = new Espresso();

            beverage1Small.SetSize(CupSize.Small);
            Console.WriteLine(beverage1Small);

            Beverage beverage2 = new DarkRoast();

            beverage2 = new Mocha(beverage2);
            beverage2 = new Mocha(beverage2);
            beverage2 = new Whip(beverage2);
            Console.WriteLine(beverage2);

            Beverage beverage3 = new HouseBlend();

            beverage3 = new Soy(beverage3);
            beverage3 = new Mocha(beverage3);
            beverage3 = new Whip(beverage3);
            Console.WriteLine(beverage3);

            Beverage beverage3Big = new HouseBlend(CupSize.Big);

            beverage3Big = new Soy(beverage3Big);
            beverage3Big = new Mocha(beverage3Big);
            beverage3Big = new Whip(beverage3Big);
            Console.WriteLine(beverage3Big);
        }
Пример #11
0
 public void DarkRoastWithMochaWithWhipWithMilk()
 {
     Beverage beverage = new DarkRoast();
     beverage = new Mocha(beverage);
     beverage = new Whip(beverage);
     beverage = new Milk(beverage);
     Assert.AreEqual(1.39, beverage.Cost(),DELTA);
 }
Пример #12
0
        private void RunDecoratorPatternExample()
        {
            Beverage beverage = new Espresso();

            beverage = new Whip(beverage).GetBeverage;
            beverage = new Mocha(beverage).GetBeverage;

            DisplayInfoAboutBeverageInListBox(beverage);
        }
        public void DarkRoastWithMochaWithWhipWithMilk()
        {
            Beverage beverage = new DarkRoast();

            beverage = new Mocha(beverage);
            beverage = new Whip(beverage);
            beverage = new Milk(beverage);
            Assert.AreEqual(1.39, beverage.Cost(), DELTA);
        }
        public void TestDecaf()
        {
            Beverage beverage = new Decaf();

            beverage = new Mocha(beverage);
            beverage = new Whip(beverage);
            Assert.AreEqual("Decaf Coffee, Mocha, Whip $1.35", beverage.GetDescription() +
                            " $" + beverage.Cost());
        }
        static void Main(string[] args)
        {
            Beverage beverage1 = new DarkRoast();

            beverage1 = new Milk(beverage1);
            beverage1 = new Whip(beverage1);
            Console.WriteLine("Total Price: {0}, Description: {1}",
                              beverage1.Cost(), beverage1.GetDescription);
        }
Пример #16
0
        public void HouseBlendWithSoyWithMochaWithWhip()
        {
            Beverage beverage = new HouseBlend();
            beverage = new Soy(beverage);
            beverage = new Mocha(beverage);
            beverage = new Whip(beverage);

            Assert.AreEqual(1.34, beverage.Cost(),DELTA);
        }
Пример #17
0
        static void TestDecorator()
        {
            IBeverage beverage = new Espresso();

            beverage = new Mocha(beverage);
            beverage = new Mocha(beverage);
            beverage = new Whip(beverage);
            Console.WriteLine($"Cost:{{{beverage.GetCost()}}}");
            Console.WriteLine($"Order details: {beverage.GetName()}");
        }
Пример #18
0
        public void DarkRoastMochaWithWhip()
        {
            IBeverage roast = new DarkRoast(BeverageSize.Large);

            roast = new Mocha(roast);
            roast = new Whip(roast);

            Debug.WriteLine(roast.Description);
            Debug.WriteLine("Cost: " + roast.Cost);
        }
        public void HouseBlendWithSoyWithMochaWithWhip()
        {
            Beverage beverage = new HouseBlend();

            beverage = new Soy(beverage);
            beverage = new Mocha(beverage);
            beverage = new Whip(beverage);

            Assert.AreEqual(1.34, beverage.Cost(), DELTA);
        }
        public void ShowPattern()
        {
            Beverage beverage1 = new Espresso();
            beverage1 = new Mocha(beverage1);
            beverage1 = new Mocha(beverage1);
            beverage1 = new Whip(beverage1);

            var desc = beverage1.GetDescription();
            var total = beverage1.Cost();
        }
Пример #21
0
        public static void Run()
        {
            Beverage beverage = new Espresso();

            Console.WriteLine(beverage.description + " $" + beverage.cost());
            Console.WriteLine();

            Beverage beverage2 = new DarkRoast();

            beverage2 = new Mocha(beverage2);
            beverage2 = new Mocha(beverage2);
            beverage2 = new Whip(beverage2);
            Console.WriteLine(beverage2.description + " $" + beverage2.cost());
            Console.WriteLine();

            Beverage beverage3 = new HouseBlend();

            beverage3 = new Soy(beverage3);
            beverage3 = new Mocha(beverage3);
            beverage3 = new Whip(beverage3);
            Console.WriteLine(beverage3.description + " $" + beverage3.cost());
            Console.WriteLine();

            Beverage beverage4 = new HouseBlend();

            beverage4.size = Beverage.Size.GRANDE;
            Console.WriteLine("Setting size to: {0}", beverage4.size);
            beverage4 = new Soy(beverage4);
            beverage4 = new Mocha(beverage4);
            beverage4 = new Whip(beverage4);
            Console.WriteLine(beverage4.description + " $" + beverage4.cost());
            Console.WriteLine();

            Beverage beverage5 = new HouseBlend();

            beverage5.size = Beverage.Size.TALL;
            Console.WriteLine("Setting size to: {0}", beverage5.size);
            beverage5 = new Soy(beverage5);
            beverage5 = new Mocha(beverage5);
            beverage5 = new Whip(beverage5);
            Console.WriteLine(beverage5.description + " $" + beverage5.cost());
            Console.WriteLine();

            Beverage beverage6 = new HouseBlend();

            beverage6.size = Beverage.Size.VENTI;
            Console.WriteLine("Setting size to: {0}", beverage6.size);
            beverage6 = new Soy(beverage6);
            beverage6 = new Mocha(beverage6);
            beverage6 = new Whip(beverage6);
            Console.WriteLine(beverage6.description + " $" + beverage6.cost());
            Console.WriteLine();

            Console.ReadKey();
        }
        public void Test()
        {
            DarkRoast darkRoast = new DarkRoast();
            Milk      milk      = new Milk(darkRoast);
            Mocha     mocha     = new Mocha(milk);
            Soy       soy       = new Soy(mocha);
            Whip      whip      = new Whip(soy);

            Assert.Equal("Dark Roast, Milk, Mocha, Soy, Whip",
                         whip.GetDescription());
        }
        public void ShowPattern()
        {
            Beverage beverage1 = new Espresso();

            beverage1 = new Mocha(beverage1);
            beverage1 = new Mocha(beverage1);
            beverage1 = new Whip(beverage1);

            var desc  = beverage1.GetDescription();
            var total = beverage1.Cost();
        }
Пример #24
0
        public void HouseBlendSoyMochaWhip()
        {
            IBeverage houseBlend = new HouseBlend(BeverageSize.Small);

            houseBlend = new Soy(houseBlend);
            houseBlend = new Whip(houseBlend);
            houseBlend = new Mocha(houseBlend);

            Debug.WriteLine(houseBlend.Description);
            Debug.WriteLine("Cost: " + houseBlend.Cost);
        }
Пример #25
0
        private static void RunDecoratorPattern()
        {
            Beverage beverage = new Espresso();

            Console.WriteLine($"{beverage.GetDescription()} ${beverage.Cost()}");
            Beverage beverage1 = new HouseBlend();

            beverage1 = new Mocha(beverage1);
            beverage1 = new Mocha(beverage1);
            beverage1 = new Whip(beverage1);
            Console.WriteLine($"{beverage1.GetDescription()} ${beverage1.Cost()}");
        }
Пример #26
0
        static void Main(string[] args)
        {
            Beverage beverage = new Expresso(Size.Grande);

            Console.WriteLine(beverage.GetDescription() + " | " + beverage.Cost());

            Beverage beverage2 = new Expresso(Size.Grande);

            beverage2 = new Mocha(beverage2);
            beverage2 = new Whip(beverage2);
            Console.WriteLine(beverage2.GetDescription() + " | " + beverage2.Cost());
        }
Пример #27
0
        public void DoubleMochaSoyLatteWithWhip()
        {
            IBeverage houseBlend = new HouseBlend(BeverageSize.Medium);

            houseBlend = new Soy(houseBlend);
            houseBlend = new Whip(houseBlend);
            houseBlend = new Mocha(houseBlend);
            houseBlend = new Mocha(houseBlend);

            Debug.WriteLine(houseBlend.Description);
            Debug.WriteLine("Cost: " + houseBlend.Cost);
        }
Пример #28
0
        public void EspressoWithWhipPriceTest()
        {
            //Arrange
            Beverage bev = new Espresso();

            bev = new Whip(bev);
            decimal price;

            //Act
            price = bev.GetPrice();
            //Assert
            Assert.AreEqual(price, 2.09m);
        }
Пример #29
0
        public void HouseBlendWithWhipPriceTest()
        {
            //Arrange
            Beverage bev = new HouseBlend();

            bev = new Whip(bev);
            decimal price;

            //Act
            price = bev.GetPrice();
            //Assert
            Assert.AreEqual(price, 0.99m);
        }
        public void StarBuzzCoffee()
        {
            Beverage espresso = new Espresso();

            Console.WriteLine(espresso.GetDescription() + " $" + espresso.Cost());

            Beverage houseBlend = new HouseBlend();

            houseBlend = new Soy(houseBlend);
            houseBlend = new Mocha(houseBlend);
            houseBlend = new Whip(houseBlend);
            Console.WriteLine(houseBlend.GetDescription() + " $" + houseBlend.Cost());
        }
Пример #31
0
    // Use this for initialization
    void Start()
    {
        PlayerState = State.OnGround;

        jump  = GetComponent <Jump>();
        pms   = GetComponent <PlayerMovementSmooth>();
        climb = GetComponent <Climb>();
        lame  = GetComponent <LadderMovement>();

        whip = GetComponentInChildren <Whip>();
        gc   = GetComponentInChildren <GroundCheck>();

        playerCollider = GetComponent <BoxCollider2D>();
    }
        public void CondimentDecorator_DecoratesMultipleCorrectly()
        {
            string expectedOrderName = "Simple Black Coffee + Whip + Whip + Mocha + Milk + Soy";

            IBeverage           coffee = new SimpleCoffee();
            ICondimentDecorator order  = new Whip(coffee);

            order = new Whip(order);
            order = new Mocha(order);
            order = new Milk(order);
            order = new Soy(order);

            Assert.AreEqual(expectedOrderName, order.Description);
        }
Пример #33
0
        static void Main(string[] args)
        {
            Beverage beverage = new Espresso();

            System.Console.WriteLine(beverage.getDescription() + " $" + beverage.cost());

            Beverage beverage2 = new DarkRoast();

            beverage2 = new Mocha(beverage2);
            beverage2 = new Mocha(beverage2);
            beverage2 = new Whip(beverage2);

            System.Console.WriteLine(beverage2.getDescription() + " $" + beverage2.cost());
        }
Пример #34
0
        static void Main(string[] args)
        {
            Beverage beverage = new Expresso();
            Console.WriteLine("Beverage #1: "+beverage.getDescription() + " $"+ beverage.cost());

            Beverage beverage2 = new DarkRoast();
            beverage2 = new Mocha(beverage2);
            beverage2 = new Mocha(beverage2);
            beverage2 = new Whip(beverage2);

            Console.WriteLine("\nBeverage #2: " + beverage2.getDescription() + " $" + beverage2.cost());

            Beverage beverage3 = new HouseBlend();
            beverage3 = new Soy(beverage3);
            beverage3 = new Mocha(beverage3);
            beverage3 = new Whip(beverage3);

            Console.WriteLine("\nBeverage #3: " + beverage3.getDescription() + " $" + beverage3.cost());

            //keep window open
            Console.ReadLine();
        }