public void ShouldHaveCorrectToStringBasedOnSizeAndFlavor(SodaFlavor flavor, Size size, string name)
        {
            SailorSoda ss = new SailorSoda();

            ss.Size = size;
            if (flavor == SodaFlavor.Blackberry)
            {
                Assert.Equal(name, ss.ToString());
            }
            else if (flavor == SodaFlavor.Cherry)
            {
                Assert.Equal(name, ss.ToString());
            }
            else if (flavor == SodaFlavor.Grapefruit)
            {
                Assert.Equal(name, ss.ToString());
            }
            else if (flavor == SodaFlavor.Lemon)
            {
                Assert.Equal(name, ss.ToString());
            }
            else if (flavor == SodaFlavor.Peach)
            {
                Assert.Equal(name, ss.ToString());
            }
            else
            {
                Assert.Equal(name, ss.ToString());
            }
        }
 public void ShouldHaveCorrectToStringBasedOnSizeAndFlavor(SodaFlavor flavor, Size size, string name)
 {
     SailorSoda ss = new SailorSoda();
     ss.Size = size;
     ss.Flavor = flavor;
     Assert.Equal(name, ss.ToString());
 }
 public void ShouldHaveCorrectToStringBasedOnSizeAndFlavor(SodaFlavor flavor, Size size, string name)
 {
     Data.Drinks.SailorSoda drink = new Data.Drinks.SailorSoda();
     drink.Size   = size;
     drink.Flavor = flavor;
     Assert.Equal(drink.ToString(), name);
 }
示例#4
0
        /// <summary>
        /// Returns the human-readable string describing the order of jerked soda.
        /// </summary>
        public override string ToString()
        {
            var size   = this.Size.ToString();
            var flavor = "";

            switch (this.Flavor)
            {
            case SodaFlavor.CreamSoda:
                flavor = "Cream Soda";
                break;

            case SodaFlavor.BirchBeer:
                flavor = "Birch Beer";
                break;

            case SodaFlavor.OrangeSoda:
                flavor = "Orange Soda";
                break;

            case SodaFlavor.RootBeer:
                flavor = "Root Beer";
                break;

            case SodaFlavor.Sarsparilla:
                flavor = "Sarsparilla";
                break;

            default:
                flavor = "Cream Soda";
                break;
            }

            return(size + " " + flavor + " Jerked Soda");
        }
示例#5
0
        /// <summary>
        /// Override of the to string for the jerked soda.
        /// </summary>
        /// <returns></returns>
        public override string ToString()
        {
            string flavor = "";

            switch (Flavor)
            {
            case SodaFlavor.CreamSoda:
                flavor = " Cream Soda";
                break;

            case SodaFlavor.BirchBeer:
                flavor = " Birch Beer";
                break;

            case SodaFlavor.OrangeSoda:
                flavor = " Orange Soda";
                break;

            case SodaFlavor.Sarsparilla:
                flavor = " Sarsparilla";
                break;

            case SodaFlavor.RootBeer:
                flavor = " Root Beer";
                break;
            }

            return(Size + flavor + " Jerked Soda");
        }
示例#6
0
        public void ShouldNotifyWhenSettingFlavor(SodaFlavor flavor)
        {
            var s = new SailorSoda();

            Assert.PropertyChanged(s, nameof(SailorSoda.Flavor), () => {
                s.Flavor = flavor;
            });
        }
        public void ShouldHaveCorrectToStringBasedOnSizeAndFlavor(SodaFlavor flavor, Size size, string name)
        {
            SailorSoda sailorSoda = new SailorSoda();

            sailorSoda.Flavor = flavor;
            sailorSoda.Size   = size;
            Assert.Equal(sailorSoda.ToString(), name);
        }
示例#8
0
        public void ShouldHaveCorrectNameBasedOnSizeAndFlavor(SodaFlavor flavor, Size size, string name)
        {
            SailorSoda s = new SailorSoda();

            s.Flavor = flavor;
            s.Size   = size;
            Assert.Equal(name, s.Name);
        }
示例#9
0
        public void ShouldHaveCorrectToStringBasedOnSizeAndFlavor(SodaFlavor flavor, Size size, string name)
        {
            SailorSoda soda = new SailorSoda();

            soda.Size   = size;
            soda.Flavor = flavor;
            Assert.Equal($"{size} {flavor} Sailor Soda", name);
        }
示例#10
0
        public void ChangingFlavorNotifiesFlavorProperty(SodaFlavor flavor)
        {
            var ss = new SailorSoda();

            Assert.PropertyChanged(ss, "Flavor", () =>
            {
                ss.Flavor = flavor;
            });
        }
        public void ShouldHaveCorrectNameBasedOnToString(SodaFlavor flavor, Size size, string name)
        {
            SailorSoda SS = new SailorSoda();

            SS.Flavor = flavor;
            SS.Size   = size;

            Assert.Equal(SS.Name, name);
        }
        public void JerkedSodaFlavorChangeShouldNotifyPropertyChanged(SodaFlavor flavor)
        {
            JerkedSoda soda = new JerkedSoda();

            Assert.PropertyChanged(soda, "Flavor", () =>
            {
                soda.Flavor = flavor;
            });
        }
        public void ShouldHaveCorrectDescription(Size size, SodaFlavor flavor)
        {
            string     expected = "An old-fashioned jerked soda, carbonated water and flavored syrup poured over a bed of crushed ice.";
            SailorSoda ss       = new SailorSoda();

            ss.Size   = size;
            ss.Flavor = flavor;
            Assert.Equal(expected, ss.Description);
        }
        public void ChangingFlavorShouldInvokeINotifyPropertyChangedForFlavor(SodaFlavor flavor)
        {
            var jerkedSoda = new JerkedSoda();

            Assert.PropertyChanged(jerkedSoda, "Flavor", () =>
            {
                jerkedSoda.Flavor = flavor;
            });
        }
示例#15
0
        public void ChangingFlavorShouldNotifyFlavorProperty(SodaFlavor flavor)
        {
            SailorSoda s = new SailorSoda();

            Assert.PropertyChanged(s, "Flavor", () =>
            {
                s.Flavor = flavor;
            });
        }
示例#16
0
 /// <summary>
 /// Initializes a new instance of the Guest class.
 /// </summary>
 /// <param name="age">The guest's age.</param>
 /// <param name="desiredMovieTitle">The title of the movie the guest wants to see.</param>
 /// <param name="preferredSodaFlavor">The guest's preferred soda flavor.</param>
 /// <param name="wallet">The guest's wallet.</param>
 public Guest(int age, string desiredMovieTitle, SodaFlavor preferredSodaFlavor, Wallet wallet)
 {
     this.age                 = age;
     this.concessionItems     = new List <ConcessionItem>();
     this.desiredMovieTitle   = desiredMovieTitle;
     this.moviesSeen          = new List <Movie>();
     this.preferredSodaFlavor = preferredSodaFlavor;
     this.wallet              = wallet;
 }
示例#17
0
        public void JerkedSodaToStringShouldMatchExpectations(SodaFlavor flavor, Size size, string expected)
        {
            var soda = new JerkedSoda
            {
                Flavor = flavor,
                Size   = size
            };

            Assert.Equal(expected, soda.ToString());
        }
 // Creates an instance of a full vending machine
 public VendingMachine(int initalPrice
                       , SodaFlavor flavor = default
                       , RackAction action = RackAction.AddACanOf
                       , int numberOfCans  = 3)
 {
     PurchasePrice = initalPrice;
     MaxInventory  = numberOfCans;
     CanRack       = new Dictionary <SodaFlavor, int>();
     ManageInventory(action, flavor, numberOfCans);
 }
        public void ShouldHaveCorrectToStringBasedOnSizeAndFlavor(SodaFlavor flavor, Size size, string name)
        {
            SailorSoda item = new SailorSoda()
            {
                Flavor = flavor,
                Size   = size
            };

            Assert.Equal(name, item.ToString());
        }
示例#20
0
        public void ShouldHaveCorrectToStringBasedOnSizeAndFlavor(SodaFlavor flavor, Size size, string name)
        {
            var SS = new SailorSoda()
            {
                Size   = size,
                Flavor = flavor
            };

            Assert.Equal(SS.ToString(), name);
        }
示例#21
0
 public void AddFlavor(SodaFlavor f)
 {
     if (_flavor == SodaFlavor.NONE)
     {
         _flavor = f;
         _price += FLAVOR_PRICE;
     }
     else
     {
         throw new TooManyFlavors();
     }
 }
示例#22
0
        public void ChangingFlavorShouldNotifySodaFlavorProperty(SodaFlavor flavor)
        {
            var ss = new SailorSoda();

            if (flavor == SodaFlavor.Cherry)
            {
                ss.Flavor = SodaFlavor.Blackberry;
            }
            Assert.PropertyChanged(ss, "Flavor", () =>
            {
                ss.Flavor = flavor;
            });
        }
示例#23
0
        /// <summary>
        /// Assigns the Drink SodaFlavor to check the correct Flavor RadioButton
        /// </summary>
        /// <param name="flavor"></param>
        public void ButtonFlavorSwitch(SodaFlavor flavor)
        {
            switch (flavor)
            {
            case SodaFlavor.CreamSoda:
                CreamSodaButton.IsChecked   = true;
                OrangeSodaButton.IsChecked  = false;
                SarsparillaButton.IsChecked = false;
                BirchBeerButton.IsChecked   = false;
                RootBeerButton.IsChecked    = false;
                break;

            case SodaFlavor.OrangeSoda:
                CreamSodaButton.IsChecked   = false;
                OrangeSodaButton.IsChecked  = true;
                SarsparillaButton.IsChecked = false;
                BirchBeerButton.IsChecked   = false;
                RootBeerButton.IsChecked    = false;
                break;

            case SodaFlavor.Sarsparilla:
                CreamSodaButton.IsChecked   = false;
                OrangeSodaButton.IsChecked  = false;
                SarsparillaButton.IsChecked = true;
                BirchBeerButton.IsChecked   = false;
                RootBeerButton.IsChecked    = false;
                break;

            case SodaFlavor.BirchBeer:
                CreamSodaButton.IsChecked   = false;
                OrangeSodaButton.IsChecked  = false;
                SarsparillaButton.IsChecked = false;
                BirchBeerButton.IsChecked   = true;
                RootBeerButton.IsChecked    = false;
                break;

            case SodaFlavor.RootBeer:
                CreamSodaButton.IsChecked   = false;
                OrangeSodaButton.IsChecked  = false;
                SarsparillaButton.IsChecked = false;
                BirchBeerButton.IsChecked   = false;
                RootBeerButton.IsChecked    = true;
                break;

            default:
                break;
            }
        }
示例#24
0
        public void RemoveAndFillCanRack()
        {
            var vm = new VendingMachine(50, SodaFlavor.Lemon, RackAction.AddACanOf, 3);

            foreach (SodaFlavor soda in SodaFlavor.GetValues(typeof(SodaFlavor)))
            {
                vm.EmptyCanRackOf(soda);
                Assert.AreEqual(vm.CanRack[soda], 0);
            }

            vm.FillTheCanRack();
            foreach (SodaFlavor soda in SodaFlavor.GetValues(typeof(SodaFlavor)))
            {
                Assert.AreEqual(vm.CanRack[soda], vm.MaxInventory);
            }
        }
示例#25
0
        public void ShouldHaveCorrectToStringBasedOnSizeAndFlavor(SodaFlavor flavor, Size size, string name)
        {
            string expectedFlavor = "", expectedSize = "";


            if (size == Size.Small)
            {
                expectedSize = "Small ";
            }
            if (size == Size.Medium)
            {
                expectedSize = "Medium ";
            }
            if (size == Size.Large)
            {
                expectedSize = "Large ";
            }

            if (flavor == SodaFlavor.Blackberry)
            {
                expectedFlavor = "Blackberry ";
            }
            if (flavor == SodaFlavor.Cherry)
            {
                expectedFlavor = "Cherry ";
            }
            if (flavor == SodaFlavor.Grapefruit)
            {
                expectedFlavor = "Grapefruit ";
            }
            if (flavor == SodaFlavor.Lemon)
            {
                expectedFlavor = "Lemon ";
            }
            if (flavor == SodaFlavor.Peach)
            {
                expectedFlavor = "Peach ";
            }
            if (flavor == SodaFlavor.Watermelon)
            {
                expectedFlavor = "Watermelon ";
            }

            string expectedName = expectedSize + expectedFlavor + "Sailor Soda";

            Assert.Equal(expectedName, name);
        }
示例#26
0
        /// <summary>
        /// Converts object to string when called
        /// </summary>
        /// <returns></returns>
        public override string ToString()
        {
            string flavor;

            switch (Flavor)
            {
            case SodaFlavor.CreamSoda:
                flavor = "Cream Soda";
                break;

            case SodaFlavor.BirchBeer:
                flavor = "Birch Beer";
                break;

            case SodaFlavor.OrangeSoda:
                flavor = "Orange Soda";
                break;

            case SodaFlavor.RootBeer:
                flavor = "Root Beer";
                break;

            case SodaFlavor.Sarsparilla:
                flavor = "Sarsparilla";
                break;

            default:
                flavor = "";
                break;
            }

            switch (Size)
            {
            case Size.Small:
                return("Small " + flavor + " Jerked Soda");

            case Size.Medium:
                return("Medium " + flavor + " Jerked Soda");

            case Size.Large:
                return("Large " + flavor + " Jerked Soda");

            default:
                throw new NotImplementedException("NOT A SIZE");
            }
        }
示例#27
0
        /// <summary>
        /// Creates new instances of all available drinks.
        /// </summary>
        /// <returns>
        /// An "IEnumerable<IOrderItem>" of all drinks offered by BleakwindBuffet.
        /// </returns>
        public static IEnumerable <IOrderItem> Drinks()
        {
            List <IOrderItem> result = new List <IOrderItem>();

            Size[]       availSizes = new Size[] { Size.Small, Size.Medium, Size.Large };
            SodaFlavor[] availflav  = new SodaFlavor[] { SodaFlavor.Blackberry, SodaFlavor.Cherry,
                                                         SodaFlavor.Grapefruit, SodaFlavor.Lemon, SodaFlavor.Peach, SodaFlavor.Watermelon };

            foreach (Size currSize in availSizes)
            {
                /*Creates new sides according to the size*/
                Drink aj = new AretinoAppleJuice
                {
                    Size = currSize
                };
                Drink cof = new CandlehearthCoffee
                {
                    Size = currSize
                };
                Drink mlk = new MarkarthMilk
                {
                    Size = currSize
                };
                Drink wtr = new WarriorWater
                {
                    Size = currSize
                };

                /*Creates a new sailor soda with all avail. flavors and sizes*/
                foreach (SodaFlavor currFlav in availflav)
                {
                    SailorSoda ss = new SailorSoda();
                    ss.Flavor = currFlav;
                    Drink soda = (Drink)ss;
                    soda.Size = currSize;
                    result.Add(soda);
                }

                /*Adds the created sides to the list*/
                result.Add(aj);
                result.Add(cof);
                result.Add(mlk);
                result.Add(wtr);
            }
            return(result);
        }
        void DrinksListShouldReturnCorrectList(Size size, SodaFlavor flavor)
        {
            List <IOrderItem> drinks = Menu.Drinks();

            Assert.Contains(drinks, item =>
            {
                CandlehearthCoffee c = new CandlehearthCoffee();
                c.Size = size;
                return(item.ToString().Equals(c.ToString()));
            });

            Assert.Contains(drinks, item =>
            {
                AretinoAppleJuice a = new AretinoAppleJuice();
                a.Size = size;
                return(item.ToString().Equals(a.ToString()));
            });

            Assert.Contains(drinks, item =>
            {
                MarkarthMilk m = new MarkarthMilk();
                m.Size         = size;
                return(item.ToString().Equals(m.ToString()));
            });

            Assert.Contains(drinks, item =>
            {
                WarriorWater w = new WarriorWater();
                w.Size         = size;
                return(item.ToString().Equals(w.ToString()));
            });

            Assert.Contains(drinks, item =>
            {
                SailorSoda s = new SailorSoda();
                s.Size       = size;
                s.Flavor     = flavor;
                return(item.ToString().Equals(s.ToString()));
            });

            Assert.Equal(30, drinks.Count);
        }
        void FullMenuShouldHaveAllDrinks(Size size, SodaFlavor flavor)
        {
            List <IOrderItem> fullMenu = Menu.FullMenu();

            Assert.Contains(fullMenu, item =>
            {
                CandlehearthCoffee c = new CandlehearthCoffee();
                c.Size = size;
                return(item.ToString().Equals(c.ToString()));
            });

            Assert.Contains(fullMenu, item =>
            {
                AretinoAppleJuice a = new AretinoAppleJuice();
                a.Size = size;
                return(item.ToString().Equals(a.ToString()));
            });

            Assert.Contains(fullMenu, item =>
            {
                MarkarthMilk m = new MarkarthMilk();
                m.Size         = size;
                return(item.ToString().Equals(m.ToString()));
            });

            Assert.Contains(fullMenu, item =>
            {
                WarriorWater w = new WarriorWater();
                w.Size         = size;
                return(item.ToString().Equals(w.ToString()));
            });

            Assert.Contains(fullMenu, item =>
            {
                SailorSoda s = new SailorSoda();
                s.Size       = size;
                s.Flavor     = flavor;
                return(item.ToString().Equals(s.ToString()));
            });
        }
示例#30
0
        /// <summary>
        /// Creates a list of all drinks on the menu in every size and flavor
        /// </summary>
        /// <returns>A list of all drinks on the menu</returns>
        public static IEnumerable <IOrderItem> Drinks()
        {
            List <IOrderItem> drinks = new List <IOrderItem>();

            // Loop through each size by exploiting the fact that enums are integers
            for (Size size = Size.Small; size <= Size.Large; size++)
            {
                drinks.Add(new AretinoAppleJuice()
                {
                    Size = size
                });
                drinks.Add(new CandlehearthCoffee()
                {
                    Size = size
                });
                drinks.Add(new MarkarthMilk()
                {
                    Size = size
                });
                drinks.Add(new WarriorWater()
                {
                    Size = size
                });
                // Loop through each soda flavor
                // Watermelon is the ultimate flavor and thus the highest
                for (SodaFlavor flavor = SodaFlavor.Blackberry; flavor <= SodaFlavor.Watermelon; flavor++)
                {
                    drinks.Add(new SailorSoda()
                    {
                        Size   = size,
                        Flavor = flavor
                    });
                }
            }
            return(drinks);
        }