public async Task <IHttpActionResult> PutSugarLevel(int id, SugarLevel sugarLevel)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            if (id != sugarLevel.Id)
            {
                return(BadRequest());
            }

            db.Entry(sugarLevel).State = EntityState.Modified;

            try
            {
                await db.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!SugarLevelExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(StatusCode(HttpStatusCode.NoContent));
        }
Beispiel #2
0
        public void Test(CoffeeType coffeeType, SugarLevel sugarLevel, Size size)
        {
            var money = coffeeType.Price();

            CoffeeMachine.SelectCoffee(coffeeType);
            CoffeeMachine.InsertMoney(money);
            CoffeeMachine.WorkStatus.Should().Be(WorkStatus.Customization);

            CoffeeMachine.SelectSugarLevel(sugarLevel);
            CoffeeMachine.SelectSize(size);
            CoffeeMachine.WorkStatus.Should().Be(WorkStatus.ReadyForMakingCoffee);

            CoffeeMachine.Run();
            CoffeeMachine.WorkStatus.Should().Be(WorkStatus.TakeYourCoffee);

            CoffeeMachine.GetChange().Should().Be(0);

            var coffee = CoffeeMachine.EjectCup();

            coffee.Should().BeEquivalentTo(new Coffee(coffeeType, sugarLevel, size));
            CoffeeMachine.WorkStatus.Should().Be(WorkStatus.InsertMoneyOrSelectCoffee);
            CoffeeMachine.Size.Should().Be(Size.Unknown);
            CoffeeMachine.SugarLevel.Should().Be(SugarLevel.Unknown);
            CoffeeMachine.CoffeeType.Should().Be(CoffeeType.Unknown);
        }
Beispiel #3
0
        public void CorrectWorkTest()
        {
            const int        money      = 500;
            const CoffeeType type       = CoffeeType.Cappucchino;
            const SugarLevel sugarLevel = SugarLevel.Medium;
            const Size       size       = Size.Large;

            CoffeeMachine.SelectCoffee(type);
            CoffeeMachine.InsertMoney(money);
            CoffeeMachine.WorkStatus.Should().Be(WorkStatus.Customization);

            CoffeeMachine.SelectSugarLevel(sugarLevel);
            CoffeeMachine.SelectSize(size);
            CoffeeMachine.WorkStatus.Should().Be(WorkStatus.ReadyForMakingCoffee);

            CoffeeMachine.Run();
            CoffeeMachine.WorkStatus.Should().Be(WorkStatus.TakeYourCoffee);

            CoffeeMachine.GetChange().Should().Be(money - type.Price());

            var coffee = CoffeeMachine.EjectCup();

            coffee.Should().BeEquivalentTo(new Coffee(type, sugarLevel, size));
            CoffeeMachine.WorkStatus.Should().Be(WorkStatus.InsertMoneyOrSelectCoffee);
            CoffeeMachine.Size.Should().Be(Size.Unknown);
            CoffeeMachine.SugarLevel.Should().Be(SugarLevel.Unknown);
            CoffeeMachine.CoffeeType.Should().Be(CoffeeType.Unknown);
        }
        public void GetChocolate()
        {
            int        iClientId     = GetRandomID(1, 10);
            SugarLevel iSugarLevel   = GetRandomSugar();
            var        responseDrink = client.GetMeADrink(iClientId, TheMachineACafe.DrinkType.CHOCOLATE, iSugarLevel, false);

            Assert.AreEqual(responseDrink.MyDrinkType, TheMachineACafe.DrinkType.CHOCOLATE);
            Assert.AreEqual(responseDrink.MySugarLevel, iSugarLevel);
        }
        public async Task <IHttpActionResult> Get(int id)
        {
            SugarLevel sugarLevel = new SugarLevel();

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

            return(Ok(sugarLevel));
        }
        public async Task <IHttpActionResult> GetSugarLevel(int id)
        {
            SugarLevel sugarLevel = await db.SugarLevels.FindAsync(id);

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

            return(Ok(sugarLevel));
        }
        public async Task <IHttpActionResult> PostSugarLevel(SugarLevel sugarLevel)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            db.SugarLevels.Add(sugarLevel);
            await db.SaveChangesAsync();

            return(CreatedAtRoute("DefaultApi", new { id = sugarLevel.Id }, sugarLevel));
        }
 public override void SelectSugarLevel(SugarLevel sugarLevel)
 {
     if (WorkStatus == WorkStatus.InsertMoneyOrSelectCoffee)
     {
         throw new CoffeeMachineException("You can't select sugar level. First, select coffee type and insert money");
     }
     SugarLevel = sugarLevel;
     if (SugarLevel != SugarLevel.Unknown && Size != Size.Unknown)
     {
         WorkStatus = WorkStatus.ReadyForMakingCoffee;
     }
 }
        public Drink GetMeADrink(int UserID, DrinkType requestedDrinkType, SugarLevel requestedSugarLevel, bool havingACup)
        {
            if (requestedDrinkType == DrinkType.None)
            {
                throw new ArgumentNullException("No Proper Drink Selected. Please make your choise !");
            }
            var oderedDrink = new Drink(requestedDrinkType, requestedSugarLevel, havingACup);

            coffeeOrders.AddOrUpdate(UserID, oderedDrink, (key, oldvalue) => oldvalue = oderedDrink);
            PersistOrder(UserID, oderedDrink);
            return(oderedDrink);
        }
        public async Task <IHttpActionResult> DeleteSugarLevel(int id)
        {
            SugarLevel sugarLevel = await db.SugarLevels.FindAsync(id);

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

            db.SugarLevels.Remove(sugarLevel);
            await db.SaveChangesAsync();

            return(Ok(sugarLevel));
        }
 public virtual void SelectSugarLevel(SugarLevel sugarLevel)
 {
     if (WorkStatus == WorkStatus.InsertMoneyOrSelectCoffee)
     {
         throw new CoffeeMachineException("You can't select sugar level. First, select coffee type and insert money");
     }
     if (WorkStatus == WorkStatus.TakeYourCoffee)
     {
         throw new CoffeeMachineException("You can't select sugar level. First, take a cup from the coffee machine");
     }
     SugarLevel = sugarLevel;
     if (SugarLevel != SugarLevel.Unknown && Size != Size.Unknown)
     {
         WorkStatus = WorkStatus.ReadyForMakingCoffee;
     }
 }
 public override void SelectSugarLevel(SugarLevel sugarLevel)
 {
     throw new CoffeeMachineException("Unexpected error");
 }
 public Drink(DrinkType requestedDrinkType, SugarLevel _requestedSugarLevel, bool havingACup)
 {
     _drinkType  = requestedDrinkType;
     _sugarLevel = _requestedSugarLevel;
     _withNoCup  = havingACup;
 }
 public Coffee(CoffeeType coffeeType, SugarLevel sugarLevel, Size size)
 {
     Type  = coffeeType;
     Sugar = sugarLevel;
     Size  = size;
 }