public void Add_second_computer_to_existing_order() { ComputersController computersController = new ComputersController(); ComputerInfoDto computerInfoDto = computersController.FindComputerByName("MacBook Pro 15"); Decimal expectedPrice = computerInfoDto.Price; NewOrderDto newOrderDto = new NewOrderDto { OrderLines = new List <NewOrderLineDto> { new NewOrderLineDto { ComputerId = computerInfoDto.Id, Quantity = 1 } } }; NewOrderIdDto newOrderIdDto = ordersController.CreateNewOrder(newOrderDto); Assert.IsNotNull(newOrderIdDto); ComputerInfoDto secondComputerInfoDto = computersController.FindComputerByName("iMac 27"); expectedPrice += secondComputerInfoDto.Price * 2; ordersController.AddComputerToOrder(newOrderIdDto.Id, new AddComputersToOrderDto { OrderLines = new List <AddOrderLineDto> { new AddOrderLineDto { ComputerId = secondComputerInfoDto.Id, Quantity = 2 } } }); OrderInformationDto orderInformationDto = ordersController.GetOrderInformation(newOrderIdDto.Id); Assert.AreEqual(2, orderInformationDto.OrderLinesInfo.Count); Assert.AreEqual(computerInfoDto.Id, orderInformationDto.OrderLinesInfo[0].ComputerId); Assert.AreEqual(secondComputerInfoDto.Id, orderInformationDto.OrderLinesInfo[1].ComputerId); Assert.AreEqual(expectedPrice, orderInformationDto.Price); }
public void Raise_an_error_when_adding_a_computer_to_existing_order_with_negative_quantity() { ComputersController computersController = new ComputersController(); ComputerInfoDto computerInfoDto = computersController.FindComputerByName("MacBook Pro 15"); NewOrderDto newOrderDto = new NewOrderDto { OrderLines = new List <NewOrderLineDto> { new NewOrderLineDto { ComputerId = computerInfoDto.Id, Quantity = 1 } }, }; NewOrderIdDto newOrderIdDto = ordersController.CreateNewOrder(newOrderDto); Assert.IsNotNull(newOrderIdDto); Exception exception = Assert.Throws <Exception>(() => ordersController.AddComputerToOrder(newOrderIdDto.Id, new AddComputersToOrderDto { OrderLines = new List <AddOrderLineDto> { new AddOrderLineDto { ComputerId = computerInfoDto.Id, Quantity = -1 } }, })); Assert.AreEqual("Computer quantity cannot be negative", exception.Message); }
public void Create_new_order_with_one_computer() { ComputersController computersController = new ComputersController(); ComputerInfoDto computerInfoDto = computersController.FindComputerByName("MacBook Pro 15"); int computerQuantity = 1; Decimal expectedPrice = computerInfoDto.Price; List <OrderInformationDto> orders = ordersController.All(); int previousNumberOfItems = orders.Count; NewOrderDto newOrderDto = new NewOrderDto { OrderLines = new List <NewOrderLineDto> { new NewOrderLineDto { ComputerId = computerInfoDto.Id, Quantity = computerQuantity } } }; NewOrderIdDto newOrderIdDto = ordersController.CreateNewOrder(newOrderDto); Assert.IsNotNull(newOrderIdDto); orders = ordersController.All(); OrderInformationDto order = ordersController.All().First(ord => ord.OrderId == newOrderIdDto.Id); Assert.AreEqual(previousNumberOfItems + 1, orders.Count); List <OrderLineInfoDto> newOrderOrderLinesInfo = order.OrderLinesInfo; Assert.AreEqual(1, newOrderOrderLinesInfo.Count); Assert.AreEqual(computerInfoDto.Id, newOrderOrderLinesInfo.First().ComputerId); Assert.AreEqual(computerQuantity, newOrderOrderLinesInfo.First().Quantity); Assert.AreEqual(expectedPrice, order.Price); }
public void Delete_existing_order() { ComputersController computersController = new ComputersController(); string macBookId = computersController.FindComputerByName("MacBook Pro 15").Id; string imacId = computersController.FindComputerByName("iMac 27").Id; NewOrderDto newOrderDto = new NewOrderDto { OrderLines = new List <NewOrderLineDto> { new NewOrderLineDto { ComputerId = macBookId, Quantity = 2 }, new NewOrderLineDto { ComputerId = imacId, Quantity = 2 } } }; OrdersController ordersController = new OrdersController("emilybeck", "password1"); NewOrderIdDto orderIdDto = ordersController.CreateNewOrder(newOrderDto); Assert.IsTrue(ordersController.All().Exists(order => order.OrderId.Equals(orderIdDto.Id))); _managementController.DeleteOrder(orderIdDto.Id); List <OrderInformationDto> allOrders = ordersController.All(); Assert.IsFalse(allOrders.Exists(order => order.OrderId.Equals(orderIdDto.Id))); }