Example #1
0
        public string PlaceOrder(Guid standGuid, List <string> products)
        {
            var stand = standRepo.All().First(s => s.Guid.Equals(standGuid));

            var dinner = new Dinner(
                stand.Meals.FindAll(meal => products.Contains(meal.Name)),
                stand.Drinks.FindAll(drink => products.Contains(drink.Name))
                );

            if (!dinner.IsValid())
            {
                logger.Log(LogLevel.Error, $"Could not place order for {dinner.ToString()}");
                throw new InvalidOperationException($"Dinner is invalid: {dinner.ToString()}");
            }

            var ticket = Guid.NewGuid();

            var dateTime = GetDinnerDoneDateTime();

            openDinnerOrders.Add(ticket, dinner);
            ordersDoneAtTime.Add(ticket, dateTime);

            logger.Log(LogLevel.Debug, $"Placed order at stand {stand.Name} with ticket {ticket}, " +
                       $"done at {dateTime}");

            return(ticket.ToString());
        }
Example #2
0
        public void IsValid_GivenProductWithMeals_ExpectTrue()
        {
            var meals = new List <Product>()
            {
                new Product("meal 1", 0.00F, ProductType.Meal),
                new Product("meal 2", 0.00F, ProductType.Meal)
            };
            var    drinks = new List <Product>();
            Dinner dinner = new Dinner(meals, drinks);

            Assert.True(dinner.IsValid());
        }
Example #3
0
        public void IsValid_GivenProductWithDrinks_ExpectTrue()
        {
            var meals  = new List <Product>();
            var drinks = new List <Product>()
            {
                new Product("drink 1", 0.00F, ProductType.Drink),
                new Product("drink 2", 0.00F, ProductType.Drink),
                new Product("drink 3", 0.00F, ProductType.Drink)
            };
            Dinner dinner = new Dinner(meals, drinks);

            Assert.True(dinner.IsValid());
        }
Example #4
0
        public void Dinner_Should_Not_Be_Valid_When_Some_Properties_Incorrect()
        {
            //Arrange
            Dinner dinner = new Dinner()
            {
                Title   = "Test title",
                Country = ""
            };

            // Act
            bool isValid = dinner.IsValid();

            //Assert
            Assert.IsFalse(isValid);
        }
Example #5
0
        public void Dinner_Should_Be_Valid_When_All_Properties_Correct()
        {
            //Arrange
            Dinner dinner = new Dinner
            {
                Title     = "Test title",
                EventDate = DateTime.Now,
                HostedBy  = "ScottGu",
                Address   = "One Microsoft Way",
                Country   = "USA",
                Latitude  = 93,
                Longitude = -92,
            };

            // Act
            bool isValid = dinner.IsValid();

            //Assert
            Assert.IsTrue(isValid);
        }
Example #6
0
        public void IsValid_GivenNoProducts_ExpectFalse()
        {
            Dinner dinner = new Dinner();

            Assert.False(dinner.IsValid());
        }