Пример #1
0
        public void ShouldGetCorrectInstructions()
        {
            Combo              combo  = new Combo();
            BriarheartBurger   b      = new BriarheartBurger();
            CandlehearthCoffee coffee = new CandlehearthCoffee();

            combo.Entree = b;
            combo.Drink  = coffee;
            b.Mustard    = false;
            coffee.Ice   = true;
            Assert.Contains("Hold mustard", combo.SpecialInstructions);
            Assert.Contains("Add ice", combo.SpecialInstructions);
        }
Пример #2
0
        public void ShouldBeAbleToSetSize()
        {
            CandlehearthCoffee coffee = new CandlehearthCoffee();

            coffee.Size = Size.Small;
            Assert.Equal(Size.Small, coffee.Size);
            coffee.Size = Size.Medium;
            Assert.Equal(Size.Medium, coffee.Size);
            coffee.Size = Size.Large;
            Assert.Equal(Size.Large, coffee.Size);
            coffee.Size = Size.Small;
            Assert.Equal(Size.Small, coffee.Size);
        }
Пример #3
0
        public void ChangingCreamInvokesPropertyChanged()
        {
            CandlehearthCoffee chc = new CandlehearthCoffee();

            Assert.PropertyChanged(chc, "RoomForCream", () =>
            {
                chc.RoomForCream = true;
            });
            Assert.PropertyChanged(chc, "RoomForCream", () =>
            {
                chc.RoomForCream = false;
            });
        }
Пример #4
0
        public void ChangingIceInvokesPropertyChanged()
        {
            CandlehearthCoffee chc = new CandlehearthCoffee();

            Assert.PropertyChanged(chc, "Ice", () =>
            {
                chc.Ice = false;
            });
            Assert.PropertyChanged(chc, "Ice", () =>
            {
                chc.Ice = true;
            });
        }
        public void ChangingDecafNotifiesDecafProperty()
        {
            CandlehearthCoffee cc = new CandlehearthCoffee();

            Assert.PropertyChanged(cc, "Decaf", () =>
            {
                cc.Decaf = true;
            });
            Assert.PropertyChanged(cc, "Decaf", () =>
            {
                cc.Decaf = false;
            });
        }
Пример #6
0
        public void ChangingIceNotifiesIceProperty()
        {
            var cc = new CandlehearthCoffee();

            Assert.PropertyChanged(cc, "Ice", () =>
            {
                cc.Ice = true;
            });
            Assert.PropertyChanged(cc, "Ice", () =>
            {
                cc.Ice = false;
            });
        }
Пример #7
0
        public void ChangingRoomForCreamNotifiesRoomForCreamProperty()
        {
            var cc = new CandlehearthCoffee();

            Assert.PropertyChanged(cc, "RoomForCream", () =>
            {
                cc.RoomForCream = true;
            });
            Assert.PropertyChanged(cc, "RoomForCream", () =>
            {
                cc.RoomForCream = false;
            });
        }
Пример #8
0
        // A click event handler for the Candlehearth Coffee button
        void AddCandlehearthCoffee(object sender, RoutedEventArgs e)
        {
            var screen = new CandlehearthCoffeeCustom();
            CandlehearthCoffee temp = new CandlehearthCoffee();

            comboBorder.Child  = screen;
            screen.DataContext = temp;
            if (DataContext is Combo combo)
            {
                combo.Drink  = temp;
                screen.Combo = combo;
            }
        }
        public void ChangingSizeShouldNotifyCaloriesProperty(Size size)
        {
            var chc = new CandlehearthCoffee();

            if (size == Size.Small)
            {
                chc.Size = Size.Medium;
            }
            Assert.PropertyChanged(chc, "Calories", () =>
            {
                chc.Size = size;
            });
        }
Пример #10
0
        public void ChangingIceNotifiesSpecialInstructionsProperty()
        {
            var cc = new CandlehearthCoffee();

            Assert.PropertyChanged(cc, "SpecialInstructions", () =>
            {
                cc.Ice = true;
            });
            Assert.PropertyChanged(cc, "SpecialInstructions", () =>
            {
                cc.Ice = false;
            });
        }
Пример #11
0
        public void ChangingSizeNotifiesSizePriceAndCalorieProperties()
        {
            var cc = new CandlehearthCoffee();

            cc.Size = Size.Large;

            Assert.PropertyChanged(cc, "Size", () =>
            {
                cc.Size = Size.Small;
            });

            Assert.PropertyChanged(cc, "Size", () =>
            {
                cc.Size = Size.Medium;
            });

            Assert.PropertyChanged(cc, "Size", () =>
            {
                cc.Size = Size.Large;
            });

            Assert.PropertyChanged(cc, "Price", () =>
            {
                cc.Size = Size.Small;
            });

            Assert.PropertyChanged(cc, "Price", () =>
            {
                cc.Size = Size.Medium;
            });

            Assert.PropertyChanged(cc, "Price", () =>
            {
                cc.Size = Size.Large;
            });

            Assert.PropertyChanged(cc, "Calories", () =>
            {
                cc.Size = Size.Small;
            });

            Assert.PropertyChanged(cc, "Calories", () =>
            {
                cc.Size = Size.Medium;
            });

            Assert.PropertyChanged(cc, "Calories", () =>
            {
                cc.Size = Size.Large;
            });
        }
Пример #12
0
        public void CanGetDrink()
        {
            var combo = new ComboMeal();

            for (int k = 0; k < 5; k++)
            {
                Drink kItem = new SailorSoda();
                switch (k)
                {
                case 0:
                    kItem = new AretinoAppleJuice();
                    break;

                case 1:
                    kItem = new CandlehearthCoffee();
                    break;

                case 2:
                    kItem = new MarkarthMilk();
                    break;

                case 3:
                    kItem = new SailorSoda();
                    break;

                case 4:
                    kItem = new WarriorWater();
                    break;
                }

                foreach (Size ss in (Size[])Enum.GetValues(typeof(Size)))
                {
                    kItem.Size = ss;
                    if (kItem is SailorSoda)
                    {
                        foreach (SodaFlavor f in (SodaFlavor[])Enum.GetValues(typeof(SodaFlavor)))
                        {
                            ((SailorSoda)kItem).Flavor = f;

                            combo.Drink = kItem;
                            Assert.Equal(kItem, combo.Drink);
                        }
                    }
                    else
                    {
                        combo.Drink = kItem;
                        Assert.Equal(kItem, combo.Drink);
                    }
                }
            }
        }
Пример #13
0
        /// <summary>
        /// Gets a list of all drinks on the menu.
        /// </summary>
        /// <returns>A list of IOrderItem objects that contains all drinks.</returns>
        public static IEnumerable <IOrderItem> Drinks()
        {
            List <IOrderItem> drinks = new List <IOrderItem>();
            Drink             d;

            //AretinoAppleJuice
            foreach (Size size in Enum.GetValues(typeof(Size)))
            {
                d      = new AretinoAppleJuice();
                d.Size = size;
                drinks.Add(d);
            }

            //CandlehearthCoffee
            foreach (Size size in Enum.GetValues(typeof(Size)))
            {
                d      = new CandlehearthCoffee();
                d.Size = size;
                drinks.Add(d);
            }

            //MarkarthMilk
            foreach (Size size in Enum.GetValues(typeof(Size)))
            {
                d      = new MarkarthMilk();
                d.Size = size;
                drinks.Add(d);
            }

            //WarriorWater
            foreach (Size size in Enum.GetValues(typeof(Size)))
            {
                d      = new WarriorWater();
                d.Size = size;
                drinks.Add(d);
            }

            //Sailor Soda
            foreach (SodaFlavor sf in Enum.GetValues(typeof(SodaFlavor)))
            {
                foreach (Size size in Enum.GetValues(typeof(Size)))
                {
                    d      = new SailorSoda();
                    d.Size = size;
                    ((SailorSoda)d).Flavor = sf;
                    drinks.Add(d);
                }
            }

            return(drinks);
        }
        public void ChangingDecafNotifiesProperty()
        {
            var A = new CandlehearthCoffee();

            Assert.PropertyChanged(A, "Decaf", () =>
            {
                A.Decaf = true;
            });

            Assert.PropertyChanged(A, "Decaf", () =>
            {
                A.Decaf = false;
            });
        }
        public void ChangingRoomforCreamNotifiesProperty()
        {
            var A = new CandlehearthCoffee();

            Assert.PropertyChanged(A, "RoomForCream", () =>
            {
                A.RoomForCream = true;
            });

            Assert.PropertyChanged(A, "RoomForCream", () =>
            {
                A.RoomForCream = false;
            });
        }
        public void ChangingIceNotifiesProperty()
        {
            var A = new CandlehearthCoffee();

            Assert.PropertyChanged(A, "Ice", () =>
            {
                A.Ice = true;
            });

            Assert.PropertyChanged(A, "Ice", () =>
            {
                A.Ice = false;
            });
        }
Пример #17
0
        public void ChangingRoomForCreamNotifiesSpecialInstructionsProperty()
        {
            CandlehearthCoffee chc = new CandlehearthCoffee();

            Assert.PropertyChanged(chc, "SpecialInstructions", () =>
            {
                chc.RoomForCream = true;
            });

            Assert.PropertyChanged(chc, "SpecialInstructions", () =>
            {
                chc.RoomForCream = false;
            });
        }
Пример #18
0
        public void ChangingDecafNotifiesSpecialInstructionsProperty()
        {
            CandlehearthCoffee chc = new CandlehearthCoffee();

            Assert.PropertyChanged(chc, "SpecialInstructions", () =>
            {
                chc.Decaf = true;
            });

            Assert.PropertyChanged(chc, "SpecialInstructions", () =>
            {
                chc.Decaf = false;
            });
        }
Пример #19
0
        public void SizeChangeShouldTriggerPropertyChanged()
        {
            CandlehearthCoffee chc = new CandlehearthCoffee();

            Assert.PropertyChanged(chc, "Size", () => {
                chc.Size = Size.Large;
            });
            Assert.PropertyChanged(chc, "Price", () => {
                chc.Size = Size.Large;
            });
            Assert.PropertyChanged(chc, "Calories", () => {
                chc.Size = Size.Large;
            });
        }
Пример #20
0
        public void ShouldReturnCorrectToStringBasedOnSize(bool decaf, Size size, string name)
        {
            CandlehearthCoffee coffee = new CandlehearthCoffee();

            coffee.Size = size;
            if (decaf)
            {
                Assert.Equal($"{size} Decaf Candlehearth Coffee", name);
            }
            else
            {
                Assert.Equal($"{size} Candlehearth Coffee", name);
            }
        }
Пример #21
0
        public void ChangingDecafNotifiesToStringNameProperty()
        {
            var CC = new CandlehearthCoffee();

            Assert.PropertyChanged(CC, "ToStringName", () =>
            {
                CC.Decaf = true;
            });

            Assert.PropertyChanged(CC, "ToStringName", () =>
            {
                CC.Decaf = false;
            });
        }
        /// <summary>
        /// Switches screen to selected drink item on button press
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void SwitchScreenToSelectedDrinkItem(object sender, RoutedEventArgs e)
        {
            if (DataContext is Order order)
            {
                var orderControl = this.FindAncestor <OrderControl>();
                if (orderControl == null)
                {
                    throw new Exception("Can not find OrderControl");
                }

                /* The logic we do past this point requires the sender to be a button.
                 *      Although it is redundant good coding practice is to always check */
                if (sender is Button)
                {
                    IOrderItem item;
                    DrinkCustomizationScreen DCS;
                    switch (((Button)sender).Name)
                    {
                    case "AretinoAppleJuiceButton":
                        DCS = new DrinkCustomizationScreen(item = new AretinoAppleJuice());
                        break;

                    case "CandlehearthCoffeeButton":
                        DCS = new DrinkCustomizationScreen(item = new CandlehearthCoffee());
                        break;

                    case "MarkarthMilkButton":
                        DCS = new DrinkCustomizationScreen(item = new MarkarthMilk());
                        break;

                    case "SailorSodaButton":
                        DCS = new DrinkCustomizationScreen(item = new SailorSoda());
                        break;

                    case "WarriorWaterButton":
                        DCS = new DrinkCustomizationScreen(item = new WarriorWater());
                        break;

                    default:
                        throw new NotImplementedException("Unknown drink item selected");
                    }
                    order.AddItem = item;
                    orderControl?.SwapScreen((FrameworkElement)(item.Screen = DCS));
                }
            }
            else
            {
                throw new NotImplementedException("Should never be reached");
            }
        }
Пример #23
0
        public void ChangingDecafNotifiesSpecialInstructionsProperty()
        {
            var CC = new CandlehearthCoffee();

            Assert.PropertyChanged(CC, "SpecialInstructions", () =>
            {
                CC.RoomForCream = true;
            });

            Assert.PropertyChanged(CC, "SpecialInstructions", () =>
            {
                CC.RoomForCream = false;
            });
        }
        public void ChangingIceShouldNotifyIceProperty()
        {
            CandlehearthCoffee c = new CandlehearthCoffee();

            Assert.PropertyChanged(c, "Ice", () =>
            {
                c.Ice = true;
            });

            Assert.PropertyChanged(c, "Ice", () =>
            {
                c.Ice = false;
            });
        }
Пример #25
0
        public void ChangingCreamNotifiesProperty()
        {
            var drink = new CandlehearthCoffee();

            Assert.PropertyChanged(drink, "RoomForCream", () =>
            {
                drink.RoomForCream = true;
            });

            Assert.PropertyChanged(drink, "RoomForCream", () =>
            {
                drink.RoomForCream = false;
            });
        }
Пример #26
0
        public void ChangingDecafNotifiesDecafProperty()
        {
            var test = new CandlehearthCoffee();

            Assert.PropertyChanged(test, "Decaf", () =>
            {
                test.Decaf = true;
            });

            Assert.PropertyChanged(test, "Decaf", () =>
            {
                test.Decaf = false;
            });
        }
        public void ChangingIceShouldNotifyCreamProperty()
        {
            CandlehearthCoffee c = new CandlehearthCoffee();

            Assert.PropertyChanged(c, "RoomForCream", () =>
            {
                c.RoomForCream = true;
            });

            Assert.PropertyChanged(c, "RoomForCream", () =>
            {
                c.RoomForCream = false;
            });
        }
        public void ChangingIceShouldNotifyDecafProperty()
        {
            CandlehearthCoffee c = new CandlehearthCoffee();

            Assert.PropertyChanged(c, "Decaf", () =>
            {
                c.Decaf = true;
            });

            Assert.PropertyChanged(c, "Decaf", () =>
            {
                c.Decaf = false;
            });
        }
Пример #29
0
        public void ChangingCreamNotifiesRoomForCreamProperty()
        {
            var test = new CandlehearthCoffee();

            Assert.PropertyChanged(test, "RoomForCream", () =>
            {
                test.RoomForCream = true;
            });

            Assert.PropertyChanged(test, "RoomForCream", () =>
            {
                test.RoomForCream = false;
            });
        }
Пример #30
0
        public void ChangingSizeNotifiesSizeProperty()
        {
            CandlehearthCoffee item = new CandlehearthCoffee();

            Assert.PropertyChanged(item, "Size", () => { item.Size = Size.Large; });
            Assert.PropertyChanged(item, "Size", () => { item.Size = Size.Medium; });
            Assert.PropertyChanged(item, "Size", () => { item.Size = Size.Small; });
            Assert.PropertyChanged(item, "Price", () => { item.Size = Size.Large; });
            Assert.PropertyChanged(item, "Price", () => { item.Size = Size.Medium; });
            Assert.PropertyChanged(item, "Price", () => { item.Size = Size.Small; });
            Assert.PropertyChanged(item, "Calories", () => { item.Size = Size.Large; });
            Assert.PropertyChanged(item, "Calories", () => { item.Size = Size.Medium; });
            Assert.PropertyChanged(item, "Calories", () => { item.Size = Size.Small; });
        }