public void Create_Should_return_200_ok() { var orderRequest = new OrderRequestModel() { Pizzas = new List <string>() { "margarita" }, Drinks = new List <string>() { "cocacola" }, ExtraIngredients = new List <string>() { "kronärtskocka" } }; //Arrange var menu = new Menu(); var validate = new Validate(menu); var calculatePrice = new CalculateOrderPrice(); var order = new Order(calculatePrice, menu, validate); var controller = new OrdersController(order, menu); var actual = controller.Create(orderRequest); var contentResult = actual.As <OkObjectResult>(); actual.Should().Be(contentResult); }
public void OrderDto_should_change_all_other_items_if_orderRequest_is_not_null() { //Arrange var menu = new Menu(); var validate = new Validate(menu); var calculatePrice = new CalculateOrderPrice(); var sut = new Order(calculatePrice, menu, validate); var orderId = new Guid(); var orderDto = new OrderDto() { Id = orderId, TotalPrice = 85, Pizzas = new List <PizzaModel>() { new PizzaModel() { Name = "margarita" } }, Approved = false }; Menu.Orders = new List <OrderDto>(); Menu.Orders.Add(orderDto); var orderRequest = new OrderRequestModel() { Drinks = null, Pizzas = new List <string>() { "hawaii" }, ExtraIngredients = null }; //Act var actual = sut.ChangeOrderRequest(orderId, orderRequest, false); //Assert actual.Approved.Should().BeFalse(); actual.Pizzas.First().Name.Should().Be(orderRequest.Pizzas.First()); actual.Pizzas.First().Ingredients.Should().NotBeNull(); }
public void HandleRequest_should_accept_only_drinks() { //Arrange var menu = new Menu(); var validate = new Validate(menu); var calculatePrice = new CalculateOrderPrice(); var sut = new Order(calculatePrice, menu, validate); var orderRequest = new OrderRequestModel() { Drinks = new List <string>() { "cocacola" } }; //Act Action actual = () => sut.HandleRequest(orderRequest); //Assert actual.Should().NotBeNull(); }
public void HandleRequest_should_not_accept_only_extra_ingredients() { //Arrange var menu = new Menu(); var validate = new Validate(menu); var calculatePrice = new CalculateOrderPrice(); var sut = new Order(calculatePrice, menu, validate); var orderRequest = new OrderRequestModel() { ExtraIngredients = new List <string>() { "kronärtskocka" } }; //Act Action actual = () => sut.HandleRequest(orderRequest); //Assert actual.Should().Throw <NullReferenceException>(); }
public void HandleRequest_should_only_return_items_on_menu() { //Arrange var menu = new Menu(); var validate = new Validate(menu); var calculatePrice = new CalculateOrderPrice(); var sut = new Order(calculatePrice, menu, validate); var orderRequest = new OrderRequestModel() { Pizzas = new List <string>() { "bananpizza" } }; //Act Action actual = () => sut.HandleRequest(orderRequest); //Assert actual.Should().Throw <ArgumentException>(); }
public void OrderDto_should_only_change_approved_if_orderRequest_is_null() { //Arrange var menu = new Menu(); var validate = new Validate(menu); var calculatePrice = new CalculateOrderPrice(); var sut = new Order(calculatePrice, menu, validate); var orderId = new Guid(); var orderDto = new OrderDto() { Id = orderId, TotalPrice = 85, Pizzas = new List <PizzaModel>() { new PizzaModel() { Name = "margarita" } }, Approved = false }; Menu.Orders = new List <OrderDto>(); Menu.Orders.Add(orderDto); var orderRequest = new OrderRequestModel() { Drinks = null, Pizzas = null, ExtraIngredients = null }; //Act var actual = sut.ChangeOrderRequest(orderId, orderRequest, true); //Assert actual.Approved.Should().BeTrue(); actual.Should().Be(orderDto); }
public void CalculatePrice_should_return_correct_price() { //Arrange var calculatePrice = new CalculateOrderPrice(); var orderDto = new OrderDto() { Id = Guid.NewGuid(), TotalPrice = 85, Pizzas = new List <PizzaModel>() { new PizzaModel() { Name = "margarita" }, new PizzaModel() { Name = "hawaii" } }, ExtraIngredients = new List <ExtraIngredientsModel?>() { new ExtraIngredientsModel() { Name = "kronärtskocka" }, new ExtraIngredientsModel() { Name = "kronärtskocka" } }, Drinks = new List <DrinksModel>() { new DrinksModel() { Name = "cocacola" }, new DrinksModel() { Name = "sprite" } }, Approved = false }; var pizzas = new List <PizzaModel>() { new PizzaModel() { Name = "margarita" }, new PizzaModel() { Name = "hawaii" } }; var drinks = new List <DrinksModel>() { new DrinksModel() { Name = "cocacola" }, new DrinksModel() { Name = "sprite" } }; var extra = new List <ExtraIngredientsModel>() { new ExtraIngredientsModel() { Name = "kronärtskocka" }, new ExtraIngredientsModel() { Name = "kronärtskocka" } }; var pizzaPrice = calculatePrice.CalculatePizzaPrice(pizzas); var drinkPrice = calculatePrice.CalculateDrinksPrice(drinks); var extraPrice = calculatePrice.CalculateExtraIngredientsPrice(extra); //act var actual = calculatePrice.CalculateTotalOrderPrice(orderDto); //assert actual.Should().Be(pizzaPrice + drinkPrice + extraPrice); }