示例#1
0
        public void ChangingBunNotifiesBunProperty()
        {
            var bb = new BriarheartBurger();

            Assert.PropertyChanged(bb, "Bun", () =>
            {
                bb.Bun = false;
            });

            Assert.PropertyChanged(bb, "Bun", () =>
            {
                bb.Bun = true;
            });
        }
        }//end GoBack

        /// <summary>
        /// EventHandler for one of the ItemButtons to get its item
        /// added to ItemCustomizer so that it can be customized.
        /// </summary>
        public void GetSelectedItem(object sender, RoutedEventArgs e)
        {
            if(sender is ItemButton button)
            {
                //go ahead and change screens and stuff i guess
                dynamic item;
                switch (button.Content)
                {
                    case "Briarheart Burger":
                        item = new BriarheartBurger();
                        break;
                    case "Double Draugr":
                        item = new DoubleDraugr();
                        break;
                    case "Thalmor Triple":
                        item = new ThalmorTriple();
                        break;
                    case "Smokehouse Skeleton":
                        item = new SmokehouseSkeleton();
                        break;
                    case "Garden Orc Omelette":
                        item = new GardenOrcOmelette();
                        break;
                    case "Philly Poacher":
                        item = new PhillyPoacher();
                        break;
                    case "Thugs T-Bone":
                        item = new ThugsTBone();
                        break;
                    default:
                        throw new NotImplementedException("That button isn't fully " +
                            "implemented yet. See source of error for more detail.");
                }//end switch case to determine item type

                //send item to ItemCustomizer (if it actually had any bools to customize, this'd be useful)
                SendToCustomizer(item);

                //Switch Screens
                ItemSelector.itemSelector.Child = ItemSelector.ic;

                //tell ic whether or not we're dealing with a combo
                ItemSelector.ic.IsCombo = IsCombo;

                if (IsCombo)
                {
                    ItemSelector.CurCombo.Entree = item;
                }//end if this item is part of a combo
            }//end if sender is right type
        }//end GetSelectedItem event handler
示例#3
0
        public void ShouldNotifyOfSpecialInstructionsChange()
        {
            BriarheartBurger bb = new BriarheartBurger();

            Assert.PropertyChanged(bb, "SpecialInstructions", () => bb.Bun     = false);
            Assert.PropertyChanged(bb, "SpecialInstructions", () => bb.Bun     = true);
            Assert.PropertyChanged(bb, "SpecialInstructions", () => bb.Ketchup = false);
            Assert.PropertyChanged(bb, "SpecialInstructions", () => bb.Ketchup = true);
            Assert.PropertyChanged(bb, "SpecialInstructions", () => bb.Mustard = false);
            Assert.PropertyChanged(bb, "SpecialInstructions", () => bb.Mustard = true);
            Assert.PropertyChanged(bb, "SpecialInstructions", () => bb.Pickle  = false);
            Assert.PropertyChanged(bb, "SpecialInstructions", () => bb.Pickle  = true);
            Assert.PropertyChanged(bb, "SpecialInstructions", () => bb.Cheese  = false);
            Assert.PropertyChanged(bb, "SpecialInstructions", () => bb.Cheese  = true);
        }
示例#4
0
        public void ShouldBeAbleToAddItemsToOrder()
        {
            var    BB            = new BriarheartBurger();
            double taxRate       = 0.0895;
            double expectedTax   = Math.Round((BB.Price * taxRate), 2);
            double expectedTotal = BB.Price + expectedTax;

            var order = new Order(1);

            order.AddItem = BB;

            Assert.Equal(BB.Price, order.SubTotal);
            Assert.Equal(expectedTax, order.Tax);
            Assert.Equal(expectedTotal, order.Total);
        }
示例#5
0
        public void HoldingShouldNotifyPropertiesChange(string s)
        {
            BriarheartBurger entree = new BriarheartBurger();

            System.Action p = () =>
            {
                entree.Bun     = false;
                entree.Ketchup = false;
                entree.Pickle  = false;
                entree.Mustard = false;
                entree.Cheese  = false;
            };
            Assert.PropertyChanged(entree, "SpecialInstructions", p);
            Assert.PropertyChanged(entree, s, p);
        }
        public void ChangingSpecialInstructionsNotifiesSpecialInstructionsProperty()
        {
            BriarheartBurger bb = new BriarheartBurger();

            Assert.PropertyChanged(bb, "SpecialInstructions", () => { bb.Cheese = false; });
            Assert.PropertyChanged(bb, "SpecialInstructions", () => { bb.Cheese = true; });
            Assert.PropertyChanged(bb, "SpecialInstructions", () => { bb.Pickle = false; });
            Assert.PropertyChanged(bb, "SpecialInstructions", () => { bb.Pickle = true; });
            Assert.PropertyChanged(bb, "SpecialInstructions", () => { bb.Mustard = false; });
            Assert.PropertyChanged(bb, "SpecialInstructions", () => { bb.Mustard = true; });
            Assert.PropertyChanged(bb, "SpecialInstructions", () => { bb.Ketchup = false; });
            Assert.PropertyChanged(bb, "SpecialInstructions", () => { bb.Ketchup = true; });
            Assert.PropertyChanged(bb, "SpecialInstructions", () => { bb.Bun = false; });
            Assert.PropertyChanged(bb, "SpecialInstructions", () => { bb.Bun = true; });
        }
示例#7
0
        public void OrderCountIsCorrect()
        {
            Order o = new Order();


            BriarheartBurger burg = new BriarheartBurger();

            o.Add(burg);
            Assert.Single(o);

            ThalmorTriple burg2 = new ThalmorTriple();

            o.Add(burg2);
            Assert.Equal(2, o.Count);
        }
示例#8
0
        public void TotalShouldBeTaxPlusSubtotal()
        {
            var O = new Order();
            AretinoAppleJuice d = new AretinoAppleJuice();
            BriarheartBurger  b = new BriarheartBurger();
            VokunSalad        v = new VokunSalad();
            double            theoreticalPrice = d.Price + b.Price + v.Price;
            double            theoreticalTax   = .12 * theoreticalPrice;
            double            theoreticalTotal = theoreticalPrice + theoreticalTax;

            O.Add(d);
            O.Add(b);
            O.Add(v);
            Assert.Equal(theoreticalTotal, O.Total);
        }
        public void ShouldReturnCorrectCalories()
        {
            var    EWE = new EbonyWarriorEntourage();
            Entree e   = new BriarheartBurger();
            Side   s   = new VokunSalad();
            Drink  d   = new WarriorWater();

            EWE.Entree = e;
            EWE.Side   = s;
            EWE.Drink  = d;

            uint expectedCalories = e.Calories + s.Calories + d.Calories;

            Assert.Equal(expectedCalories, EWE.Calories);
        }
示例#10
0
        public static IEnumerable <IOrderItem> Entrees()
        {
            var BB  = new BriarheartBurger();
            var DD  = new DoubleDraugr();
            var GOO = new GardenOrcOmelette();
            var PP  = new PhillyPoacher();
            var SS  = new SmokehouseSkeleton();
            var TT  = new ThalmorTriple();
            var TTB = new ThugsTBone();

            IOrderItem[]             result     = { BB, DD, GOO, PP, SS, TT, TTB };
            IEnumerable <IOrderItem> enumerator = new List <IOrderItem>(result);

            return(enumerator);
        }
示例#11
0
        public void RemovingFromOrderRemovesItem()
        {
            Order             order = new Order();
            AretinoAppleJuice aa    = new AretinoAppleJuice();
            BriarheartBurger  bb    = new BriarheartBurger();

            order.Add(aa);
            order.Add(bb);

            order.Remove(aa);
            Assert.DoesNotContain <IOrderItem>(aa, order);

            order.Remove(bb);
            Assert.DoesNotContain <IOrderItem>(bb, order);
        }
示例#12
0
        /// <summary>
        /// Handler for ADD/Back button press.
        /// On ADD click: displays the OrderList.xaml in the correct loaction on the screen
        /// and sets Data.Context to a new item Object.
        /// On BACK click: displays the OrderList.xaml in the correct loaction on the screen
        /// but does not set Data.Context to a new item Object.
        /// </summary>
        /// <param name="sender">button</param>
        /// <param name="e">left mouse down</param>
        public void uxButton_Click(object sender, RoutedEventArgs e)
        {
            BriarheartBurger item   = (BriarheartBurger)this.DataContext;
            Button           button = (Button)sender;

            if (button.Name == "Add")
            {
                if (this.ancestor.openSpace.DataContext is OrderList list)
                {
                    if (list.Contains(item))
                    {
                        Add.Content = "Done";
                        if (isCombo)
                        {
                            this.ancestor.SwitchScreen(Screen.Combo);
                            this.ancestor.openSpace2.Child = new Order(this.ancestor);
                        }
                        else
                        {
                            this.ancestor.SwitchScreen(Screen.Empty);
                            this.ancestor.openSpace2.Child = new Order(this.ancestor);
                        }
                    }
                    else if (!isCombo)
                    {
                        list.Add(placeholder);
                        this.ancestor.SwitchScreen(Screen.Empty);
                        this.ancestor.openSpace2.Child = new Order(this.ancestor);
                    }
                    else if (isCombo)
                    {
                        this.ancestor.SwitchScreen(Screen.Combo);
                        this.comboOps.SelectedItem     = item;
                        this.ancestor.openSpace2.Child = new Order(this.ancestor);
                    }
                }
            }
            else if (button.Name == "Back" && !isCombo)
            {
                this.ancestor.SwitchScreen(Screen.Empty);
                this.ancestor.openSpace2.Child = new Order(this.ancestor);
            }
            else if (button.Name == "Back" && isCombo)
            {
                this.ancestor.SwitchScreen(Screen.Combo);
                this.ancestor.openSpace2.Child = new Order(this.ancestor);
            }
        }
示例#13
0
        public void IndexingShouldAllowYouToSetItems()
        {
            Order                 order = new Order();
            BriarheartBurger      BB    = new BriarheartBurger();
            DragonbornWaffleFries DWF   = new DragonbornWaffleFries();
            AretinoAppleJuice     AAJ   = new AretinoAppleJuice();
            GardenOrcOmelette     GOO   = new GardenOrcOmelette();

            order.Add(BB);
            order.Add(DWF);
            order.Add(AAJ);

            order[1] = GOO;

            Assert.Equal(GOO, order[1]);
        }
示例#14
0
        public void ShouldRemoveItemsFromSpecialInstructions()
        {
            BriarheartBurger BB = new BriarheartBurger();

            BB.Bun     = false;
            BB.Ketchup = false;
            BB.Mustard = false;
            BB.Pickle  = false;
            BB.Cheese  = false;
            BB.Bun     = true;
            BB.Ketchup = true;
            BB.Mustard = true;
            BB.Pickle  = true;
            BB.Cheese  = true;
            Assert.Empty(BB.SpecialInstructions);
        }
示例#15
0
        public void AddingComboShouldTriggerCalorieChanges()
        {
            var bb = new BriarheartBurger();
            var aj = new AretinoAppleJuice();
            var dw = new DragonbornWaffleFries();


            Combo combo1 = new Combo(bb, aj, dw);



            Assert.PropertyChanged(combo1, "Calories", () => aj.Size = Size.Large);
            Assert.PropertyChanged(combo1, "Calories", () => dw.Size = Size.Medium);

            //make more methods for calories and sizes
        }
示例#16
0
        public void AddingOrRemovingItemNotifiesTaxProperty()
        {
            Order order = new Order();

            Assert.PropertyChanged(order, "Tax", () =>
            {
                BriarheartBurger b = new BriarheartBurger();
                order.Add(b);
            });
            Assert.PropertyChanged(order, "Tax", () =>
            {
                BriarheartBurger b = new BriarheartBurger();
                order.Add(b);
                order.Remove(b);
            });
        }
示例#17
0
        public void ChangingContentsSpecialInstructionsNotifiesSpecialInstructionsProperty()
        {
            BriarheartBurger      entree = new BriarheartBurger();
            DragonbornWaffleFries side   = new DragonbornWaffleFries();
            WarriorWater          drink  = new WarriorWater();
            Combo combo = new Combo(entree, side, drink);

            Assert.PropertyChanged(combo, "SpecialInstructions", () =>
            {
                combo.Side.Size = Size.Medium;
            });
            Assert.PropertyChanged(combo, "SpecialInstructions", () =>
            {
                combo.Drink.Size = Size.Large;
            });
        }
示例#18
0
        public void ChangingEntreeNotifiesEntreeProperty()
        {
            BriarheartBurger b     = new BriarheartBurger();
            Combo            combo = new Combo();

            Assert.PropertyChanged(combo, "Entree", () =>
            {
                combo.Entree = b;
            });
            DoubleDraugr dd = new DoubleDraugr();

            Assert.PropertyChanged(combo, "Entree", () =>
            {
                combo.Entree = dd;
            });
        }
        public void TotalShouldBeSubtotalPlusTax()
        {
            Order            o = new Order();
            BriarheartBurger b = new BriarheartBurger();
            SailorSoda       s = new SailorSoda();
            FriedMiraak      f = new FriedMiraak();

            o.Add(b);
            o.Add(s);
            o.Add(f);
            double expectedSubtotal = b.Price + s.Price + f.Price;
            double expectedTax      = expectedSubtotal * o.SalesTaxRate;
            double expectedTotal    = Math.Round(expectedSubtotal + expectedTax, 2);

            Assert.Equal(expectedTotal, o.Total);
        }
示例#20
0
        public void ShouldAddToOrder()
        {
            DragonbornWaffleFries dw  = new DragonbornWaffleFries();
            AretinoAppleJuice     aaj = new AretinoAppleJuice();
            BriarheartBurger      bb  = new BriarheartBurger();
            Combo combo = new Combo(bb, dw, aaj);
            Order order = new Order();

            order.Add(dw);
            order.Add(aaj);
            order.Add(bb);
            order.Add(combo);
            Assert.Contains(dw, order.items);
            Assert.Contains(bb, order.items);
            Assert.Contains(aaj, order.items);
            Assert.Contains(combo, order.items);
        }
示例#21
0
        public void ShouldAddToOrder()
        {
            Order            o  = new Order();
            BriarheartBurger bb = new BriarheartBurger();
            MarkarthMilk     mm = new MarkarthMilk();
            FriedMiraak      fm = new FriedMiraak();
            Combo            c  = new Combo(bb, mm, fm);

            o.Add(bb);
            o.Add(mm);
            o.Add(fm);
            o.Add(c);
            Assert.Contains(bb, o.order);
            Assert.Contains(mm, o.order);
            Assert.Contains(fm, o.order);
            Assert.Contains(c, o.order);
        }
        public void ShouldReturnCorrectSpecialInstructions(bool includeBun, bool includeKetchup, bool includeMustard, bool includePickle, bool includeCheese)
        {
            bool             b  = false;
            BriarheartBurger bb = new BriarheartBurger();

            bb.Bun     = includeBun;
            bb.Ketchup = includeKetchup;
            bb.Mustard = includeMustard;
            bb.Pickle  = includePickle;
            bb.Cheese  = includeCheese;

            if (!includeBun)
            {
                Assert.Contains("Hold bun", bb.SpecialInstructions);
                b = true;
            }

            if (!includeKetchup)
            {
                Assert.Contains("Hold ketchup", bb.SpecialInstructions);
                b = true;
            }

            if (!includeMustard)
            {
                Assert.Contains("Hold mustard", bb.SpecialInstructions);
                b = true;
            }

            if (!includePickle)
            {
                Assert.Contains("Hold pickle", bb.SpecialInstructions);
                b = true;
            }

            if (!includeCheese)
            {
                Assert.Contains("Hold cheese", bb.SpecialInstructions);
                b = true;
            }

            if (b == false)
            {
                Assert.Empty(bb.SpecialInstructions);
            }
        }
示例#23
0
        public void MenuReturnsAllSpecialInstructions()
        {
            BriarheartBurger entree = new BriarheartBurger();

            entree.Ketchup = false;
            DragonbornWaffleFries side  = new DragonbornWaffleFries();
            WarriorWater          drink = new WarriorWater();

            drink.Lemon = true;
            Combo combo = new Combo(entree, side, drink);

            Assert.Contains(combo.SpecialInstructions, (item) => { return(item.ToString().Equals("Briarheart Burger")); });
            Assert.Contains(combo.SpecialInstructions, (item) => { return(item.ToString().Equals(" - Hold ketchup")); });
            Assert.Contains(combo.SpecialInstructions, (item) => { return(item.ToString().Equals("Small Dragonborn Waffle Fries")); });
            Assert.Contains(combo.SpecialInstructions, (item) => { return(item.ToString().Equals("Small Warrior Water")); });
            Assert.Contains(combo.SpecialInstructions, (item) => { return(item.ToString().Equals(" - Add lemon")); });
        }
示例#24
0
        public void SearchingTheExactCalorieValueShouldReturnTheCorrectResult()
        {
            List <IOrderItem>     orderItems = new List <IOrderItem>();
            BriarheartBurger      BB         = new BriarheartBurger();
            DragonbornWaffleFries DWF        = new DragonbornWaffleFries();
            SailorSoda            SS         = new SailorSoda();

            orderItems.Add(BB);
            orderItems.Add(DWF);
            orderItems.Add(SS);

            List <IOrderItem> test = Menu.FilterByCalories(orderItems, 117, 117).ToList();

            Assert.Collection <IOrderItem>(test,
                                           item => Assert.Equal(SS, test[0])
                                           );
        }
示例#25
0
        public void SpecialInstructionsShouldBeTheSameAsItemsSpecialInstructionsPlusNames()
        {
            BriarheartBurger      BB  = new BriarheartBurger();
            DragonbornWaffleFries DWF = new DragonbornWaffleFries();
            AretinoAppleJuice     AAJ = new AretinoAppleJuice();
            Combo combo = new Combo(BB, DWF, AAJ);

            BB.Bun    = false;
            BB.Cheese = false;
            DWF.Size  = Data.Enums.Size.Medium;
            AAJ.Ice   = true;
            AAJ.Size  = Data.Enums.Size.Large;

            string[] expectedList = { "Briarheart Burger", "Hold bun", "Hold cheese", "Medium Dragonborn Waffle Fries", "Large Aretino Apple Juice", "Add ice" };

            Assert.Equal(expectedList, combo.SpecialInstructions.ToArray());
        }
示例#26
0
        public void ShouldReturnCorrectTotal()
        {
            Order            order = new Order();
            BriarheartBurger bb    = new BriarheartBurger();
            BriarheartBurger bb2   = new BriarheartBurger();
            VokunSalad       vs    = new VokunSalad();
            SailorSoda       ssoda = new SailorSoda();

            order.Add(bb);
            order.Add(bb2);
            order.Add(vs);
            order.Add(ssoda);
            double subtotal = Math.Round(bb.Price + bb2.Price + vs.Price + ssoda.Price, 2);
            double total    = Math.Round((subtotal * 0.12) + subtotal, 2);

            Assert.Equal(total, order.Total);
        }
示例#27
0
        public void RemovingItemShouldTriggerEvents()
        {
            Order            or  = new Order();
            BriarheartBurger bb  = new BriarheartBurger();
            BriarheartBurger bb2 = new BriarheartBurger();
            BriarheartBurger bb3 = new BriarheartBurger();
            BriarheartBurger bb4 = new BriarheartBurger();

            or.Add(bb);
            or.Add(bb2);
            or.Add(bb3);
            or.Add(bb4);
            Assert.PropertyChanged(or, "Subtotal", () => or.Remove(bb));
            Assert.PropertyChanged(or, "Tax", () => or.Remove(bb2));
            Assert.PropertyChanged(or, "Total", () => or.Remove(bb3));
            Assert.PropertyChanged(or, "Calories", () => or.Remove(bb4));
        }
示例#28
0
        public void RemovingItemTriggersPropertiesChanged()
        {
            var x = new Order();
            var a = new BriarheartBurger();
            var b = new GardenOrcOmelette();
            var c = new CandlehearthCoffee();
            var d = new MadOtarGrits();

            x.Add(a);
            x.Add(b);
            x.Add(c);
            x.Add(d);

            Assert.PropertyChanged(x, "Subtotal", () => { x.Remove(a); });
            Assert.PropertyChanged(x, "Tax", () => { x.Remove(b); });
            Assert.PropertyChanged(x, "Total", () => { x.Remove(c); });
            Assert.PropertyChanged(x, "Calories", () => { x.Remove(d); });
        }
示例#29
0
        public void ChangingItemSpecialInstructionsTriggersSpecialInstructionsPropertyChangedEventForCombo()
        {
            Combo c = new Combo();

            c.Entree = new BriarheartBurger();
            c.Side   = new VokunSalad();
            c.Drink  = new AretinoAppleJuice();
            Assert.PropertyChanged(c, "SpecialInstructions", () =>
            {
                BriarheartBurger b = c.Entree as BriarheartBurger;
                b.Bun = false;
            });
            Assert.PropertyChanged(c, "SpecialInstructions", () =>
            {
                AretinoAppleJuice a = c.Drink as AretinoAppleJuice;
                a.Ice = true;
            });
        }
示例#30
0
        public void ShouldAlertWhenPropertyChanged()
        {
            Order                 o = new Order();
            BriarheartBurger      b = new BriarheartBurger();
            DoubleDraugr          d = new DoubleDraugr();
            DragonbornWaffleFries f = new DragonbornWaffleFries();
            SailorSoda            s = new SailorSoda();

            Assert.PropertyChanged(o, "Subtotal", () => o.Add(b));
            Assert.PropertyChanged(o, "Tax", () => o.Add(d));
            Assert.PropertyChanged(o, "Total", () => o.Add(f));
            Assert.PropertyChanged(o, "Calories", () => o.Add(s));

            Assert.PropertyChanged(o, "Subtotal", () => s.Size = Data.Enums.Size.Large);
            Assert.PropertyChanged(o, "Tax", () => f.Size      = Data.Enums.Size.Large);
            Assert.PropertyChanged(o, "Total", () => s.Size    = Data.Enums.Size.Medium);
            Assert.PropertyChanged(o, "Calories", () => f.Size = Data.Enums.Size.Medium);
        }