public ThalmorTripleCustom(OrderComponent o)
        {
            InitializeComponent();
            order = o;
            ThalmoreTriple burger = new ThalmoreTriple();

            this.DataContext = burger;
        }
        public void ShouldBeAbleToSetBacon()
        {
            ThalmoreTriple tt = new ThalmoreTriple();

            tt.Bacon = false;
            Assert.False(tt.Bacon);
            tt.Bacon = true;
            Assert.True(tt.Bacon);
        }
        public void ShouldBeAbleToSetMayo()
        {
            ThalmoreTriple tt = new ThalmoreTriple();

            tt.Mayo = false;
            Assert.False(tt.Mayo);
            tt.Mayo = true;
            Assert.True(tt.Mayo);
        }
        public void ShouldBeAbleToSetLettuce()
        {
            ThalmoreTriple tt = new ThalmoreTriple();

            tt.Lettuce = false;
            Assert.False(tt.Lettuce);
            tt.Lettuce = true;
            Assert.True(tt.Lettuce);
        }
        public void ShouldBeAbleToSetKetchup()
        {
            ThalmoreTriple tt = new ThalmoreTriple();

            tt.Ketchup = false;
            Assert.False(tt.Ketchup);
            tt.Ketchup = true;
            Assert.True(tt.Ketchup);
        }
        public void ShouldBeAbleToSetMustard()
        {
            ThalmoreTriple tt = new ThalmoreTriple();

            tt.Mustard = false;
            Assert.False(tt.Mustard);
            tt.Mustard = true;
            Assert.True(tt.Mustard);
        }
        public void ShouldBeAbleToSetEgg()
        {
            ThalmoreTriple tt = new ThalmoreTriple();

            tt.Egg = false;
            Assert.False(tt.Egg);
            tt.Egg = true;
            Assert.True(tt.Egg);
        }
        public void ChangingMustardNotifiesMustardProperty()
        {
            ThalmoreTriple tt = new ThalmoreTriple();

            Assert.PropertyChanged(tt, "Mustard", () =>
            {
                tt.Mustard = false;
            });

            Assert.PropertyChanged(tt, "Mustard", () =>
            {
                tt.Mustard = true;
            });
        }
        public void ChangingCheeseNotifiesCheeseProperty()
        {
            ThalmoreTriple tt = new ThalmoreTriple();

            Assert.PropertyChanged(tt, "Cheese", () =>
            {
                tt.Cheese = false;
            });

            Assert.PropertyChanged(tt, "Cheese", () =>
            {
                tt.Cheese = true;
            });
        }
        public void ChangingEggNotifiesSpecialInstructionsProperty()
        {
            ThalmoreTriple tt = new ThalmoreTriple();

            Assert.PropertyChanged(tt, "SpecialInstructions", () =>
            {
                tt.Egg = false;
            });

            Assert.PropertyChanged(tt, "SpecialInstructions", () =>
            {
                tt.Egg = true;
            });
        }
        public void ChangingTomatoNotifiesTomatoProperty()
        {
            ThalmoreTriple tt = new ThalmoreTriple();

            Assert.PropertyChanged(tt, "Tomato", () =>
            {
                tt.Tomato = false;
            });

            Assert.PropertyChanged(tt, "Tomato", () =>
            {
                tt.Tomato = true;
            });
        }
        public void ChangingBaconNotifiesBaconProperty()
        {
            ThalmoreTriple tt = new ThalmoreTriple();

            Assert.PropertyChanged(tt, "Bacon", () =>
            {
                tt.Bacon = false;
            });

            Assert.PropertyChanged(tt, "Bacon", () =>
            {
                tt.Bacon = true;
            });
        }
        public void ChangingEggNotifiesEggProperty()
        {
            ThalmoreTriple tt = new ThalmoreTriple();

            Assert.PropertyChanged(tt, "Egg", () =>
            {
                tt.Egg = false;
            });

            Assert.PropertyChanged(tt, "Egg", () =>
            {
                tt.Egg = true;
            });
        }
        public void ChangingMayoNotifiesMayoProperty()
        {
            ThalmoreTriple tt = new ThalmoreTriple();

            Assert.PropertyChanged(tt, "Mayo", () =>
            {
                tt.Mayo = false;
            });

            Assert.PropertyChanged(tt, "Mayo", () =>
            {
                tt.Mayo = true;
            });
        }
        public void ChangingKetchupNotifiesKetchupProperty()
        {
            ThalmoreTriple tt = new ThalmoreTriple();

            Assert.PropertyChanged(tt, "Ketchup", () =>
            {
                tt.Ketchup = false;
            });

            Assert.PropertyChanged(tt, "Ketchup", () =>
            {
                tt.Ketchup = true;
            });
        }
        public void ChangingLettuceNotifiesLettuceProperty()
        {
            ThalmoreTriple tt = new ThalmoreTriple();

            Assert.PropertyChanged(tt, "Lettuce", () =>
            {
                tt.Lettuce = false;
            });

            Assert.PropertyChanged(tt, "Lettuce", () =>
            {
                tt.Lettuce = true;
            });
        }
        public void ChangingPickleNotifiesPickleProperty()
        {
            ThalmoreTriple tt = new ThalmoreTriple();

            Assert.PropertyChanged(tt, "Pickle", () =>
            {
                tt.Pickle = false;
            });

            Assert.PropertyChanged(tt, "Pickle", () =>
            {
                tt.Pickle = true;
            });
        }
        public void ShouldReturnCorrectSpecialInstructions(bool includeBun, bool includeKetchup, bool includeMustard,
                                                           bool includePickle, bool includeCheese, bool includeTomato,
                                                           bool includeLettuce, bool includeMayo,
                                                           bool includeBacon, bool includeEgg)
        {
            ThalmoreTriple tt = new ThalmoreTriple();

            tt.Bun     = includeBun;
            tt.Ketchup = includeKetchup;
            tt.Mustard = includeMustard;
            tt.Pickle  = includePickle;
            tt.Cheese  = includeCheese;
            tt.Tomato  = includeTomato;
            tt.Lettuce = includeLettuce;
            tt.Mayo    = includeMayo;
            tt.Bacon   = includeBacon;
            tt.Egg     = includeEgg;

            if (includeBun)
            {
                Assert.Empty(tt.SpecialInstructions);
            }
            else if (!includeBun)
            {
                Assert.Contains("Hold bun", tt.SpecialInstructions);
                Assert.Contains("Hold ketchup", tt.SpecialInstructions);
                Assert.Contains("Hold mustard", tt.SpecialInstructions);
                Assert.Contains("Hold pickle", tt.SpecialInstructions);
                Assert.Contains("Hold cheese", tt.SpecialInstructions);
                Assert.Contains("Hold tomato", tt.SpecialInstructions);
                Assert.Contains("Hold lettuce", tt.SpecialInstructions);
                Assert.Contains("Hold mayo", tt.SpecialInstructions);
                Assert.Contains("Hold egg", tt.SpecialInstructions);
                Assert.Contains("Hold bacon", tt.SpecialInstructions);
            }
        }
        public void ShouldIncludeMustardByDefault()
        {
            ThalmoreTriple tt = new ThalmoreTriple();

            Assert.True(tt.Mustard);
        }
        public void ShouldReturnCorrectCalories()
        {
            ThalmoreTriple tt = new ThalmoreTriple();

            Assert.Equal((uint)943, tt.Calories);
        }
        public void ShouldIncludeCheeseByDefault()
        {
            ThalmoreTriple tt = new ThalmoreTriple();

            Assert.True(tt.Cheese);
        }
        public void ShouldBeAnINotifyPropertyChanged()
        {
            ThalmoreTriple tt = new ThalmoreTriple();

            Assert.IsAssignableFrom <INotifyPropertyChanged>(tt);
        }
        public void ShouldBeAnIOrderItem()
        {
            ThalmoreTriple tt = new ThalmoreTriple();

            Assert.IsAssignableFrom <IOrderItem>(tt);
        }
        public void ShouldIncludeBunByDefault()
        {
            ThalmoreTriple tt = new ThalmoreTriple();

            Assert.True(tt.Bun);
        }
        public void ShouldReturnCorrectToString()
        {
            ThalmoreTriple tt = new ThalmoreTriple();

            Assert.Equal("Thalmor Triple", tt.ToString());
        }
        public void ShouldBeAnEntree()
        {
            ThalmoreTriple tt = new ThalmoreTriple();

            Assert.IsAssignableFrom <Entree>(tt);
        }
        public void ShouldIncludePickleByDefault()
        {
            ThalmoreTriple tt = new ThalmoreTriple();

            Assert.True(tt.Pickle);
        }
        public void ShouldIncludeKetchupByDefault()
        {
            ThalmoreTriple tt = new ThalmoreTriple();

            Assert.True(tt.Ketchup);
        }
        public void ShouldIncludeTomatoByDefault()
        {
            ThalmoreTriple tt = new ThalmoreTriple();

            Assert.True(tt.Tomato);
        }
        public void ShouldReturnCorrectPrice()
        {
            ThalmoreTriple tt = new ThalmoreTriple();

            Assert.Equal(8.32, tt.Price);
        }