Ejemplo n.º 1
0
        public void CommandModeTest()
        {
            Console.WriteLine("======== 命令模式測試 =========");

            //開店準備
            Chef      chef       = new Chef();
            Bartender bartender  = new Bartender();
            Order     dishOrder  = new DishOrder(chef);
            Order     drinkOrder = new DrinkOrder(bartender);
            Waitress  cuteGirl   = new Waitress();

            //開始營業 客戶點餐
            cuteGirl.SetOrder(dishOrder);
            cuteGirl.SetOrder(dishOrder);
            cuteGirl.SetOrder(drinkOrder);
            cuteGirl.SetOrder(drinkOrder);

            //飲料還沒賣完
            cuteGirl.SetOrder(drinkOrder);

            Console.WriteLine("===== 客人取消熱炒測試 =====");
            //取消一份熱炒
            cuteGirl.CancelOrder(dishOrder);
            //熱炒又可以賣了
            cuteGirl.SetOrder(dishOrder);

            Console.WriteLine("=== 點餐完成 通知廚房 ===");
            cuteGirl.NotifyKitchen();

            Console.WriteLine("=== 熱炒庫存不足測試 ===");
            cuteGirl.SetOrder(dishOrder);

            Assert.AreEqual(1, 1);
        }
Ejemplo n.º 2
0
        public void GetAdditives_ManyOrDuplicated_ReturnsManyOrDuplicativeAdditives()
        {
            //given
            var beverage = new Beverage {
                Id = 1, Group = AdditiveGroup.Coffe
            };
            var additive4 = new Additive {
                Id = 4, Group = AdditiveGroup.Tea | AdditiveGroup.Coffe
            };
            var additive3 = new Additive {
                Id = 3, Group = AdditiveGroup.Tea | AdditiveGroup.Coffe
            };

            var barService = Mock.Of <IBarService>(s => s.GetAdditives(new[] { 4, 3, 4 }) == new[] { additive4, additive3, additive4 });
            var bartender  = new Bartender("Test Bot", barService);

            //when
            var result = bartender.GetAdditives(beverage, "4,3,4");

            //then
            Assert.That(result, Is.Not.Null);
            Assert.That(result.Count, Is.EqualTo(3));
            Assert.That(result[0], Is.EqualTo(additive4));
            Assert.That(result[1], Is.EqualTo(additive3));
            Assert.That(result[2], Is.EqualTo(additive4));
        }
Ejemplo n.º 3
0
 public void Dispose()
 {
     Bartender.DeleteAll();
     Food.DeleteAll();
     Drink.DeleteAll();
     Patron.DeleteAll();
 }
        public void Test_EqualityOfBartenderObjects()
        {
            Bartender firstBartender  = new Bartender("Bob");
            Bartender secondBartender = new Bartender("Bob");

            Assert.Equal(firstBartender, secondBartender);
        }
Ejemplo n.º 5
0
        public void ShouldReturnUnbailableDrink_WhenDrinkDoesNotExists(string input)
        {
            Bartender bartender = new Bartender(_consoleWriter, new RecipeBook(_consoleWriter));

            _consoleWriter.SetInputBuffer(input);
            bartender.AskForDrink();
            Debug.Assert(_consoleWriter.GetOutputBuffer() == $"Sorry bro, but we do not do {input}");
        }
Ejemplo n.º 6
0
        public ActionResult DeleteConfirmed(int id)
        {
            Bartender bartender = db.Bartenders.Find(id);

            db.Bartenders.Remove(bartender);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
Ejemplo n.º 7
0
        public void ShouldReturnTrue_WhenDrinkIsCalled()
        {
            Bartender bartender = new Bartender(_consoleWriter, new RecipeBook(_consoleWriter));

            _consoleWriter.SetInputBuffer("juice");
            bartender.AskForDrink();
            Debug.Assert(_consoleWriter.GetOutputBuffer() == "Here you go! Fresh and nice juice.");
        }
Ejemplo n.º 8
0
    static void Main()
    {
        // 依照使用者需求
        // 實體化能夠製作對應飲料調酒的調酒師
        Bartender blackTea = new Bartender(new BlackTeaRecipe());
        Bartender milkTea  = new Bartender(new MilkTeaRecipe());

        blackTea.showCocktail();
        milkTea.showCocktail();
    }
    static void Main()
    {
        // 依照使用者需求
        // 實體化能夠製作對應飲料調酒的調酒師
        Bartender blackTea = new Bartender("紅茶");
        Bartender milkTea  = new Bartender("奶茶");

        blackTea.showCocktail();
        milkTea.showCocktail();
    }
Ejemplo n.º 10
0
        public void GetBeverage_IdWasNotAnIntegerValue_Throws(string input)
        {
            //given
            var bartender = new Bartender("Test Bot", null);

            //when
            //then
            var ex = Assert.Throws <InvalidOperationException>(() => bartender.GetBeverage(input));

            Assert.That(ex.Message, Is.EqualTo($"Failed to parse string '{input}', integer value expected\n"));
        }
Ejemplo n.º 11
0
        public void GetBeverage_NoBeverageFound_Throws()
        {
            //given
            var barService = Mock.Of <IBarService>();
            var bartender  = new Bartender("Test Bot", barService);

            //when
            //then
            var ex = Assert.Throws <InvalidOperationException>(() => bartender.GetBeverage("1"));

            Assert.That(ex.Message, Is.EqualTo("No beverages with id 1 were found\n"));
        }
Ejemplo n.º 12
0
        public void TestDecodator()
        {
            Restaurant restaurant = new Restaurant("Cili", true);
            IWorker    worker     = new SimpleWorker("Aurimas", restaurant, 600);
            Bartender  bartender  = new Bartender(worker);

            Assert.AreEqual(0, bartender.Sell(0));
            Assert.AreEqual(10, bartender.Sell(10));

            bartender.closeRestaurant();
            Assert.IsFalse(restaurant.Working);
        }
        public void Test_FindsBartenderInDatabaseWorks()
        {
            //Arrange
            Bartender testBartender = new Bartender("Kronk");

            testBartender.Save();

            //Act
            Bartender result = Bartender.Find(testBartender.GetId());

            //Assert
            Assert.Equal(testBartender, result);
        }
Ejemplo n.º 14
0
        public void OnOwnerCharacterSpawned()
        {
            if (structure == null)
            {
                //shouldn't happen, let us know
                Debug.Log("STRUCTURE WAS NULL IN BAR");
                structure = worlditem.Get <Structure>();
            }
            Character structureOwner = structure.StructureOwner;

            bartender = structureOwner.worlditem.GetOrAdd <Bartender>();
            structure.StructureGroup.Owner = structureOwner.worlditem;
        }
Ejemplo n.º 15
0
        public void CreateOrder_ReturnsOrderWithNewId()
        {
            //given
            var barService = Mock.Of <IBarService>();
            var bartender  = new Bartender("Test Bot", barService);

            //when
            var result = bartender.CreateOrder();

            //then
            Assert.That(result, Is.Not.Null);
            Assert.That(result.Id, Is.EqualTo(1));
        }
Ejemplo n.º 16
0
        // GET: Customers/Delete/5
        public ActionResult Delete(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            Bartender bartender = db.Bartenders.Find(id);

            if (bartender == null)
            {
                return(HttpNotFound());
            }
            return(View(bartender));
        }
Ejemplo n.º 17
0
        public IActionResult UpdateCocktail([FromBody] Bartender bartender)
        {
            var orgBartender = context.Bartenders.Find(bartender.Id);

            if (orgBartender == null)
            {
                return(NotFound());
            }

            orgBartender.Name       = bartender.Name;
            orgBartender.Desciption = bartender.Desciption;
            context.SaveChanges();
            return(Ok(orgBartender));
        }
Ejemplo n.º 18
0
        public void CreateOrder_MultipleTimes_ReturnsOrderWithIncrementedId()
        {
            //given
            var barService = Mock.Of <IBarService>();
            var bartender  = new Bartender("Test Bot", barService);

            //when
            bartender.CreateOrder();
            bartender.CreateOrder();
            var result = bartender.CreateOrder();

            //then
            Assert.That(result, Is.Not.Null);
            Assert.That(result.Id, Is.EqualTo(3));
        }
Ejemplo n.º 19
0
        public void TestRole()
        {
            SimpleWorker simpleWorker = new SimpleWorker("Simas", new Restaurant("Test", true), 600);
            SuperWorker  superWorker  = new SuperWorker("Petras", new Restaurant("Bao", false), 1000);

            IWorker worker = new Bartender(new Cleaner(superWorker));

            Assert.AreEqual(10, ((Cleaner)((WorkerDecorator)worker).getRole("App.Core.Decorator.Worker.Cleaner")).cleanRoom(10));
            Assert.AreEqual(1020, ((Cleaner)((WorkerDecorator)worker).getRole("App.Core.Decorator.Worker.Cleaner")).receiveSalary());
            Assert.AreEqual(10, ((Bartender)((WorkerDecorator)worker).getRole("App.Core.Decorator.Worker.Bartender")).Sell(10));
            Assert.AreEqual(1060, ((Bartender)((WorkerDecorator)worker).getRole("App.Core.Decorator.Worker.Bartender")).receiveSalary());

            worker = (WorkerDecorator)((WorkerDecorator)worker).removeRole("App.Core.Decorator.Worker.Bartender");
            worker.work();
        }
        public void Test_IdAssignationWorksAsPlanned()
        {
            //Arrange
            Bartender testBartender = new Bartender("Ysma");

            testBartender.Save();

            //Act
            Bartender savedBartender = Bartender.GetAll()[0];

            int result = savedBartender.GetId();
            int testId = testBartender.GetId();

            //Assert
            Assert.Equal(testId, result);
        }
        public void Test_SavesToDatabase()
        {
            //Arrange
            Bartender testBartender = new Bartender("Chet Stedman");

            testBartender.Save();

            //Act
            List <Bartender> result   = Bartender.GetAll();
            List <Bartender> testList = new List <Bartender> {
                testBartender
            };

            //Assert
            Assert.Equal(testList, result);
        }
Ejemplo n.º 22
0
        public void GetBeverage_ReturnsBeverage()
        {
            //given
            var expected = new Beverage {
                Id = 1
            };
            var barService = Mock.Of <IBarService>(s => s.GetBeverages(new[] { 1 }) == new[] { expected });
            var bartender  = new Bartender("Test Bot", barService);

            //when
            var result = bartender.GetBeverage("1");

            //then
            Assert.That(result, Is.Not.Null);
            Assert.That(result, Is.EqualTo(expected));
        }
Ejemplo n.º 23
0
        public static int Main(string[] args)
        {
            var barService = new BarService(new DefaultBeveragesRepository(),
                                            new DefaultAdditivesRepository(),
                                            new DefaultBarCalculator());

            var bartender = new Bartender("Joe", barService);

            var app = new ConsoleApplication <IBartender>();

            app.Register(1, "Create order", new CreateOneBeverageOrderAction());
            app.Register(2, "Modify opened order", new DefaultBartenderAction());
            app.Register(3, "List closed orders", new DefaultBartenderAction());
            app.Register(4, "Close all pending orders", new DefaultBartenderAction());

            return(app.Run(bartender, Console.In, Console.Out));
        }
Ejemplo n.º 24
0
        // GET: Customers/Edit/5
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            Bartender bartender = db.Bartenders.Find(id);

            if (bartender == null)
            {
                return(HttpNotFound());
            }
            ViewBag.RestaurantId      = new SelectList(db.Restaurants, "RestaurantId", "Name");
            ViewBag.ManagerId         = new SelectList(db.Managers, "ManagerId", "FirstName");
            ViewBag.ApplicationUserId = new SelectList(db.Users, "UserId", "UserId");
            return(View(bartender));
        }
Ejemplo n.º 25
0
        public void GetAdditives_AdditivesStringIsNotValid_Throws(string value)
        {
            //given
            var beverage = new Beverage {
                Id = 1, Group = AdditiveGroup.Coffe
            };
            var additive = new Additive {
                Id = 1, Group = AdditiveGroup.Tea | AdditiveGroup.Coffe
            };
            var barService = Mock.Of <IBarService>(s => s.GetAdditives(new[] { 1 }) == new[] { additive });
            var bartender  = new Bartender("Test Bot", barService);

            //when
            //then
            var ex = Assert.Throws <InvalidOperationException>(() => bartender.GetAdditives(beverage, $"1, {value},2"));

            Assert.That(ex.Message, Is.EqualTo($"Failed to parse string '{value}', integer value expected\n"));
        }
        public ActionResult Create(Bartender bartender)
        {
            try
            {
                // TODO: Add insert logic here

                bartender.ApplicationId = GetAppId();

                context.Bartender.Add(bartender);
                context.SaveChanges();

                return(RedirectToAction("LogOut", "Account"));
            }
            catch
            {
                return(View());
            }
        }
Ejemplo n.º 27
0
        public IActionResult CreateCocktail([FromBody] Cocktail newCocktail)
        {
            IQueryable <Cocktail> queryCocktail = recipesContext.Cocktails.Where(d => d.Name == newCocktail.Name);

            if (queryCocktail.Count() == 0)
            {
                IQueryable <Bartender> query = recipesContext.Bartenders.Where(d => d.Name == newCocktail.Inventor.Name);

                if (query.Count() != 0)
                {
                    Bartender bar = query.First();
                    newCocktail.Inventor = bar;
                }

                for (int i = 0; i < newCocktail.Measurements.Count(); i++)
                {
                    IQueryable <Ingredient> queryIngredient = recipesContext.Ingredients.Where(d => d.Name == newCocktail.Measurements[i].ingredient.Name);
                    if (queryIngredient.Count() != 0)
                    {
                        newCocktail.Measurements[i].ingredient = queryIngredient.First();
                    }

                    IQueryable <Measurements> queryMeasurements = recipesContext.Measurements.Where(d => d.ingredient.Name == newCocktail.Measurements[i].ingredient.Name).Where(d => d.measurements == newCocktail.Measurements[i].measurements);
                    if (queryMeasurements.Count() != 0)
                    {
                        newCocktail.Measurements[i] = queryMeasurements.First();
                    }
                }


                recipesContext.Cocktails.Add(newCocktail);
                recipesContext.SaveChanges();
            }
            else
            {
                return(NotFound());
            }
            //return "";

            //recipesContext.Cocktails.Add(newCocktail);
            //recipesContext.SaveChanges();
            return(Created("", newCocktail));
        }
Ejemplo n.º 28
0
        public void GetAdditives_BeverageIsCompatible_ReturnsAdditive()
        {
            //given
            var beverage = new Beverage {
                Id = 1, Group = AdditiveGroup.Coffe
            };
            var additive = new Additive {
                Id = 1, Group = AdditiveGroup.Tea | AdditiveGroup.Coffe
            };
            var barService = Mock.Of <IBarService>(s => s.GetAdditives(new[] { 1 }) == new[] { additive });
            var bartender  = new Bartender("Test Bot", barService);

            //when
            var result = bartender.GetAdditives(beverage, "1");

            //then
            Assert.That(result, Is.Not.Null);
            Assert.That(result.Count, Is.EqualTo(1));
            Assert.That(result[0], Is.EqualTo(additive));
        }
        public static void Init(string[] args)
        {
            Doctor  Riviera   = new Doctor();
            Patient Homer     = new Patient();
            var     didBreath = Homer.Breathe(); //throws exception, as invokes Patient's, but wasn't intended.

            Homer.Cough();
            Drunkard  Barney = new Drunkard();
            Sicky     Burns  = new Sicky();
            Bartender Moe    = new Bartender();


            List <Person> peopleWaitingDoctorsOffice = new List <Person>()
            {
                Homer, Barney, Burns, Moe
            };


            Riviera.Examine(Homer);
            Moe.ServeAnyBeerTo(Homer);
            //Moe.ServeAnyBeerTo(Barney);

            //actually want to examine each of Homer, Barney, Burns,
            //and ... what? return different results?
            // enjoy poly morph ism ... !

            foreach (var person in peopleWaitingDoctorsOffice)
            {
                // tuple response
                var result = Riviera.Examine(person);

                // iterate tuple response
                foreach (var tupleResult in result.GetType().GetProperties()
                         .Select(property => property.GetValue(result)))
                {
                    Console.WriteLine(tupleResult);
                }
            }

            Console.ReadKey();
        }
Ejemplo n.º 30
0
        public ActionResult LoginAttempt(Bartender user)
        {
            IEnumerable <Bartender> bList = _bartenderRepository.AllGetBartenders();

            foreach (var bartender in bList)
            {
                if (user.username == bartender.username)
                {
                    if (user.password == bartender.password)
                    {
                        return(View("OrderQueue"));
                    }
                    else
                    {
                        TempData["error"] = "Your username and password are incorrect. Please try logging in again.";
                    }
                }
            }
            TempData["error"] = "Your username and password are incorrect. Please try logging in again.";
            return(View("Login"));
        }