示例#1
0
        public void ShouldNotifyPropertiesChangedWhenItemRemoved()
        {
            var e1 = new MockEntree(0, 0);
            var e2 = new MockEntree(0, 0);
            var e3 = new MockEntree(0, 0);
            var e4 = new MockEntree(0, 0);
            var o  = new Order();

            o.Add(e1);
            o.Add(e2);
            o.Add(e3);
            o.Add(e4);
            Assert.PropertyChanged(o, nameof(Order.Subtotal), () =>
            {
                o.Remove(e1);
            });
            Assert.PropertyChanged(o, nameof(Order.Tax), () =>
            {
                o.Remove(e2);
            });
            Assert.PropertyChanged(o, nameof(Order.Total), () =>
            {
                o.Remove(e3);
            });
            Assert.PropertyChanged(o, nameof(Order.Calories), () =>
            {
                o.Remove(e4);
            });
        }
示例#2
0
        public void ShouldCombineSpecialInstructions()
        {
            var e = new MockEntree(0, 0);

            e.AddInstruction("Entree instruction");
            var s = new MockSide(0, 0);

            s.AddInstruction("Side instruction");
            var d = new MockDrink(0, 0);

            d.AddInstruction("Drink instruction");
            var c = new Combo()
            {
                Entree = e,
                Side   = s,
                Drink  = d
            };

            Assert.Equal(6, c.SpecialInstructions.Count);
            Assert.Collection(c.SpecialInstructions,
                              item => Assert.Equal("Mock Entree", item),
                              item => Assert.Equal(" - Entree instruction", item),
                              item => Assert.Equal("Mock Side", item),
                              item => Assert.Equal(" - Side instruction", item),
                              item => Assert.Equal("Mock Drink", item),
                              item => Assert.Equal(" - Drink instruction", item)
                              );
        }
示例#3
0
        public void CanSetEntree()
        {
            var e = new MockEntree(0, 0);
            var c = new Combo();

            c.Entree = e;
            Assert.Equal(e, c.Entree);
        }
示例#4
0
        public void ShouldNotifySpecialInstructionsChangedWhenEntreeSpecialInstructionsChanged()
        {
            var c = new Combo();
            var e = new MockEntree(0, 0);

            c.Entree = e;
            Assert.PropertyChanged(c, nameof(Combo.SpecialInstructions), () =>
            {
                e.AddInstruction("Test");
            });
        }
示例#5
0
        public void ShouldNotifyCaloriesChangedWhenEntreeCaloriesChanged()
        {
            var c = new Combo();
            var e = new MockEntree(0, 0);

            c.Entree = e;
            Assert.PropertyChanged(c, nameof(Combo.Calories), () =>
            {
                e.SetCalories(100);
            });
        }
示例#6
0
        public void ShouldNotifyPriceChangedWhenEntreePriceChanged()
        {
            var c = new Combo();
            var e = new MockEntree(0, 0);

            c.Entree = e;
            Assert.PropertyChanged(c, nameof(Combo.Price), () =>
            {
                e.SetPrice(1.00);
            });
        }
示例#7
0
        public void ShouldNotifyCaloriesChangedWhenItemCaloriesChanged()
        {
            var o = new Order();
            var e = new MockEntree(0, 0);

            o.Add(e);
            Assert.PropertyChanged(o, nameof(Order.Calories), () =>
            {
                e.SetCalories(100);
            });
        }
示例#8
0
        public void AddingItemToOrderAddsItem()
        {
            Order o = new Order();

            MockEntree me = new MockEntree();
            MockSide ms = new MockSide();
            MockDrink md = new MockDrink();

            o.Add(me);
            o.Add(ms);
            o.Add(md);

            Assert.Contains(me, o);
            Assert.Contains(ms, o);
            Assert.Contains(md, o);
        }//end test
示例#9
0
        public void ShouldNotifyTotalsChangedWhenItemPriceChanged()
        {
            var o = new Order();
            var e = new MockEntree(0, 0);

            o.Add(e);
            Assert.PropertyChanged(o, nameof(Order.Subtotal), () =>
            {
                e.SetPrice(1.00);
            });
            Assert.PropertyChanged(o, nameof(Order.Tax), () =>
            {
                e.SetPrice(1.00);
            });
            Assert.PropertyChanged(o, nameof(Order.Total), () =>
            {
                e.SetPrice(1.00);
            });
        }
示例#10
0
        public void RemovingItemFromOrderRemovesItem()
        {
            Order o = new Order();

            MockEntree me = new MockEntree();
            MockSide ms = new MockSide();
            MockDrink md = new MockDrink();

            o.Add(me);
            o.Add(ms);
            o.Add(md);

            o.Remove(me);
            o.Remove(ms);
            o.Remove(md);

            Assert.DoesNotContain(me, o);
            Assert.DoesNotContain(ms, o);
            Assert.DoesNotContain(md, o);
        }//end test
        public void ShouldCorrectlyGenerateReciept()
        {
            var order  = new Order();
            var entree = new MockEntree(5.00, 100);
            var drink  = new MockDrink(1.00, 600);

            drink.AddInstruction("Hold ice");
            order.Add(entree);
            order.Add(drink);

            // Card paid reciept
            var reciept = RecieptGenerator.GenerateReciept(order, false);

            Assert.Collection(reciept,
                              item => Assert.Contains("Order ", item),
                              item => Assert.Contains("Submitted at ", item),
                              item => Assert.Equal("Mock Entree - $5.00", item),
                              item => Assert.Equal("Mock Drink - $1.00", item),
                              item => Assert.Equal("Hold ice", item),
                              item => Assert.Equal("Subtotal: $6.00", item),
                              item => Assert.Equal("Tax: $0.72", item),
                              item => Assert.Equal("Total: $6.72", item),
                              item => Assert.Equal("Paid with card", item)
                              );

            // Cash paid reciept
            reciept = RecieptGenerator.GenerateReciept(order, true, 2.00);
            Assert.Collection(reciept,
                              item => Assert.Contains("Order ", item),
                              item => Assert.Contains("Submitted at ", item),
                              item => Assert.Equal("Mock Entree - $5.00", item),
                              item => Assert.Equal("Mock Drink - $1.00", item),
                              item => Assert.Equal("Hold ice", item),
                              item => Assert.Equal("Subtotal: $6.00", item),
                              item => Assert.Equal("Tax: $0.72", item),
                              item => Assert.Equal("Total: $6.72", item),
                              item => Assert.Equal("Paid with cash", item),
                              item => Assert.Equal("Change owed: $2.00", item)
                              );
        }