Пример #1
0
        public void CostShouldReturnCorrectValue()
        {
            var expectedValue = 0.99M;
            var expresso      = new DarkRoast();

            expresso.Cost().Should().Be(expectedValue);
        }
Пример #2
0
        public void DecoratorTest()
        {
            DIServiceLocator.Current.RegisterInstance(typeof(ITextProvider));
            Support.Configure();

            Beverage beverage = new Espresso();

            beverage = new Mocha(beverage);
            Assert.AreEqual(beverage.Description, "Espresso, Mocha");
            Assert.AreEqual(beverage.Cost(), 2.19);

            Beverage beverage2 = new DarkRoast();

            beverage2 = beverage2.AddComponent <Mocha>();
            beverage2 = beverage2.AddComponent <Mocha>();
            beverage2 = beverage2.AddComponent <Whip>();
            Assert.AreEqual(beverage2.Description, "Dark Roast, Mocha, Mocha, Whip");
            Assert.AreEqual(beverage2.Cost(), 1.49);

            Beverage beverage3 = new HouseBlend();

            SupportExtensions.AddComponent <Soy>(ref beverage3);
            SupportExtensions.AddComponent <Mocha>(ref beverage3);
            SupportExtensions.AddComponent <Whip>(ref beverage3);
            Assert.AreEqual(beverage3.Description, "House Blend Coffee, Soy, Mocha, Whip");
            Assert.AreEqual(beverage3.Cost(), 1.34);
        }
Пример #3
0
        public void Cost_WithoutCondiments_ReturnNinetyNineCents()
        {
            var darkRoastCoffee = new DarkRoast();

            var cost = darkRoastCoffee.Cost();

            cost.Should().Be(0.99m);
        }
Пример #4
0
 public void DarkRoastWithMochaWithWhipWithMilk()
 {
     DarkRoast beverage = new DarkRoast();
     beverage.HasMocha = true;
     beverage.HasWhip = true;
     beverage.HasMilk = true;
     Assert.AreEqual(1.39, beverage.Cost(), DELTA);
 }
        public void DarkRoastWithMochaWithWhipWithMilk()
        {
            DarkRoast beverage = new DarkRoast();

            beverage.HasMocha = true;
            beverage.HasWhip  = true;
            beverage.HasMilk  = true;
            Assert.AreEqual(1.39, beverage.Cost(), DELTA);
        }
Пример #6
0
        public void DarkRoast_ShouldBeExpressoAndCostNinetyNineCents_WhenIsInstantiate()
        {
            //Arrange
            Beverage beverage = new DarkRoast();

            //Act
            var description = beverage.GetDescription();
            var cost        = beverage.Cost();

            //Assert
            description.Should().Be("Dark Roast Coffee");
            cost.Should().Be(.99);
        }
Пример #7
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());
        }
Пример #8
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();
        }
Пример #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();
        }
Пример #10
0
        public static void Start()
        {
            DIServiceLocator.Current.RegisterInstance <IPriceProvider>(new ComponentCosts());

            Beverage beverage = new Espresso();

            beverage = new Mocha(beverage);
            "{0} ${1}".P(beverage.Description, beverage.Cost());

            Beverage beverage2 = new DarkRoast();

            beverage2 = beverage2.AddComponent <Mocha>();
            beverage2 = beverage2.AddComponent <Mocha>();
            beverage2 = beverage2.AddComponent <Whip>();
            "{0} ${1}".P(beverage2.Description, beverage2.Cost());

            Beverage beverage3 = new HouseBlend();

            SupportExtensions.AddComponent <Soy>(ref beverage3);
            SupportExtensions.AddComponent <Mocha>(ref beverage3);
            SupportExtensions.AddComponent <Whip>(ref beverage3);
            "{0} ${1}".P(beverage3.Description, beverage3.Cost());
        }