示例#1
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);
 }
示例#2
0
        private static void Main()
        {
            var myCoffee = new Milk(new Espresso());

            Console.WriteLine($"{myCoffee.Description}: {myCoffee.Cost():F}");
            var newCoffee = new Soy(myCoffee);

            Console.WriteLine($"{newCoffee.Description}: {newCoffee.Cost():F}");
        }
        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);
        }
示例#4
0
        public void DecoratorTest()
        {
            {
                var m          = new ConcreteComponent();
                var decoratorA = new DecoratorA(m);
                // decoratorA.Work();

                var decoratorB = new DecoratorB(decoratorA);
                decoratorB.Work();
            }
            {
                // 我买了个苹果手机
                Phone phone = new ApplePhone();

                // 现在想贴膜了
                var applePhoneWithSticker = new Sticker(phone);
                // 扩展贴膜行为
                applePhoneWithSticker.Print();

                // 现在我想有挂件了
                var applePhoneWithAccessories = new Accessories(phone);
                // 扩展手机挂件行为
                applePhoneWithAccessories.Print();
                Console.WriteLine("----------------------");

                // 现在我同时有贴膜和手机挂件了
                var sticker = new Sticker(phone);
                var applePhoneWithAccessoriesAndSticker = new Accessories(sticker);
                applePhoneWithAccessoriesAndSticker.Print();
            }

            // {
            //     AbstractMessage message = new SqlMessage();
            //     var de = new CheckUserWrapper(message);
            //     Console.WriteLine(de.Get()[0].Message);
            //
            //     var d2 = new CheckInputWrapper(message);
            //     Console.WriteLine(d2.Get()[0].Message);
            //
            //     var m3 = new CheckUserWrapper(message);
            //     var m4 = new CheckInputWrapper(m3);
            //     Console.WriteLine(m4.Get()[0].Message);
            // }

            {
                var dark  = new DarkRoast("黑咖啡");
                var sugar = new Sugar("加糖", dark);
                Console.WriteLine($"{sugar.GetDescription()}{sugar.Cost()}元");;
                var milk = new Milk("加奶", sugar);
                Console.WriteLine($"{milk.GetDescription()}{milk.Cost()}元");;
            }
        }
示例#5
0
        static void DecoratorInvoke()
        {
            Beverage beverage = new DarkRoast(); // 焦烤咖啡

            Console.WriteLine(beverage.GetDescription() + " $" + beverage.Cost());
            beverage = new Mocha(beverage);                  //添加摩卡
            Console.WriteLine(beverage.GetDescription() + " $" + beverage.Cost());
            beverage = new Milk(beverage);                   //添加牛奶
            Console.WriteLine(beverage.GetDescription() + " $" + beverage.Cost());
            Beverage beverage2 = new Milk(new HouseBlend()); // 家庭混合咖啡加摩卡加牛奶

            Console.WriteLine(beverage2.GetDescription() + " $" + beverage2.Cost());
        }
示例#6
0
        private static void RunDecorateTest()
        {
            Console.WriteLine("Decorate");
            Beverage beverage = new Water();

            Console.WriteLine("beverage Cost:{0}", beverage.Cost());
            Beverage milk = new Milk(beverage);

            Console.WriteLine("milk Cost:{0}", milk.Cost());
            Beverage mixBeverage = new Americano(milk);

            Console.WriteLine("Milk And Americano Cost:{0}", mixBeverage.Cost());
        }
示例#7
0
        static void Main(string[] args)
        {
            var beverage = new DarkRoast();

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

            var beverage2  = new HouseBlend();
            var decorator1 = new Mocha(beverage2);
            var decorator2 = new Milk(decorator1);

            Console.WriteLine($"Description: {decorator2.GetDescription()}; Cost: {decorator2.Cost()}");

            Console.ReadKey();
        }
示例#8
0
        public void MilkClass_CostMethod_ShouldReturnCorrectPrice()
        {
            // Arrange
            var coffeePrice = 2.00m;
            var coffeeMock  = new Mock <ICoffee>();

            coffeeMock.Setup(x => x.Cost()).Returns(coffeePrice);

            var condimentPrice = 0.80m;
            var expectedCost   = coffeePrice + condimentPrice;

            // Act
            var obj = new Milk(coffeeMock.Object);

            // Assert
            Assert.That(obj.Cost(), Is.EqualTo(expectedCost));
        }
示例#9
0
        static void Main()
        {
            Beverage beverage1 = new DarkRoast();

            Beverage beverage2 = new Espresso();

            beverage2 = new Milk(beverage2);

            Beverage beverage3 = new DarkRoast();

            beverage3 = new Milk(beverage3);
            beverage3 = new Whip(beverage3);

            Console.WriteLine(beverage1.GetDescription() + "\n" + beverage1.Cost());
            Console.WriteLine(beverage2.GetDescription() + "\n" + beverage2.Cost());
            Console.WriteLine(beverage3.GetDescription() + "\n" + beverage3.Cost());

            Console.ReadKey();
        }