public void UnknownProduct() { // Setup var handler = new OrderCreation(_orderRepository, _productCatalog); var sellItemsRequest = new SellItemsRequest { Items = new List <SellItemRequest> { new SellItemRequest { ProductName = "hamburger", Quantity = 1 }, } }; // Exercise & Verify Action act = () => handler.Handle(sellItemsRequest); act.Should().ThrowExactly <UnknownProductException>(); }
public void SellMultipleItems() { // Setup var handler = new OrderCreation(_orderRepository, _productCatalog); var sellItemsRequest = new SellItemsRequest { Items = new List <SellItemRequest> { new SellItemRequest { ProductName = "salad", Quantity = 2 }, new SellItemRequest { ProductName = "tomato", Quantity = 3 }, } }; // Exercise handler.Handle(sellItemsRequest); // Verify var actual = _orderRepository.getLastSavedOrder(); actual.Total.Should().Be(23.20M); actual.Tax.Should().Be(2.13M); actual.Currency.Should().Be("EUR"); actual.Items.Count.Should().Be(2); actual.Items.Should().HaveCount(2); actual.Items.First().Product.Name.Should().Be("salad"); actual.Items.First().Product.Price.Should().Be(3.56M); actual.Items.First().Quantity.Should().Be(2); actual.Items.First().TaxedAmount.Should().Be(7.84M); actual.Items.First().Tax.Should().Be(0.72M); actual.Items.Last().Product.Name.Should().Be("tomato"); actual.Items.Last().Product.Price.Should().Be(4.65M); actual.Items.Last().Quantity.Should().Be(3); actual.Items.Last().TaxedAmount.Should().Be(15.36M); actual.Items.Last().Tax.Should().Be(1.41M); }