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()); }
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()); }
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()); }
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); }
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); }
public void IsValid_GivenNoProducts_ExpectFalse() { Dinner dinner = new Dinner(); Assert.False(dinner.IsValid()); }