public void UnknownProduct() { var request = new SellItemsRequest { Requests = new List <SellItemRequest>() }; var unknownProductRequest = new SellItemRequest { ProductName = "unknown product" }; request.Requests.Add(unknownProductRequest); Assert.Throws <UnknownProductException>(() => useCase.Run(request)); }
public void unknownProduct() { SellItemsRequest request = new SellItemsRequest(); request.setRequests(new List <SellItemRequest>()); SellItemRequest unknownProductRequest = new SellItemRequest(); unknownProductRequest.setProductName("unknown product"); request.getRequests().Add(unknownProductRequest); Assert.That(() => useCase.run(request), Throws.TypeOf <UnknownProductException>()); }
public void SellMultipleItems() { SellItemRequest saladRequest = new SellItemRequest { ProductName = "salad", Quantity = 2 }; SellItemRequest tomatoRequest = new SellItemRequest { ProductName = "tomato", Quantity = 3 }; SellItemsRequest request = new SellItemsRequest { Requests = new List <SellItemRequest> { saladRequest, tomatoRequest } }; useCase.Run(request); Order insertedOrder = orderRepository.SavedOrder; Assert.Equal(OrderStatus.Created, insertedOrder.Status); Assert.Equal(23.20m, insertedOrder.Total); Assert.Equal(2.13m, insertedOrder.Tax); Assert.Equal("EUR", insertedOrder.Currency); Assert.Equal(2, insertedOrder.Items.Count()); var saladItem = insertedOrder.Items.ElementAt(0); Assert.Equal("salad", saladItem.Name); Assert.Equal(3.56m, saladItem.Price); Assert.Equal(2, saladItem.Quantity); Assert.Equal(7.84m, saladItem.TaxedAmount); Assert.Equal(0.72m, saladItem.Tax); var tomatoItem = insertedOrder.Items.ElementAt(1); Assert.Equal("tomato", tomatoItem.Name); Assert.Equal(4.65m, tomatoItem.Price); Assert.Equal(3, tomatoItem.Quantity); Assert.Equal(15.36m, tomatoItem.TaxedAmount); Assert.Equal(1.41m, tomatoItem.Tax); }
public void UnknownProduct() { SellItemsRequest request = new SellItemsRequest(); request.SetRequests(new List <SellItemRequest>()); SellItemRequest unknownProductRequest = new SellItemRequest(); unknownProductRequest.SetProductName("unknown product"); request.GetRequests().Add(unknownProductRequest); Action act = () => useCase.Run(request); act.Should().Throw <UnknownProductException>(); }
public void UnknownProduct() { SellItemsRequest request = new SellItemsRequest(); request.Requests = new List <SellItemRequest>(); SellItemRequest unknownProductRequest = new SellItemRequest(); unknownProductRequest.ProductName = "unknown product"; request.Requests.Add(unknownProductRequest); Action action = () => useCase.Run(request); action.Should().Throw <UnknownProductException>(); }
public void UnknownProduct() { var request = new SellItemsRequest { Requests = new List <SellItemRequest> { new SellItemRequest { ProductName = "unknown product" } } }; Action actionToTest = () => _useCase.Run(request); Assert.Throws <UnknownProductException>(actionToTest); }
public void maximumNumberOfFoodItemsExceededWithSingleQuantity() { SellItemsRequest tooManyFoodItemsRequest = new SellItemsRequest(); tooManyFoodItemsRequest.SetRequests(new List <SellItemRequest>()); for (int i = 0; i <= 100; i++) { SellItemRequest foodItemRequest = new SellItemRequest(); foodItemRequest.SetProductName("salad"); foodItemRequest.SetQuantity(1); tooManyFoodItemsRequest.GetRequests().Add(foodItemRequest); } Action act = () => useCase.Run(tooManyFoodItemsRequest); act.Should().Throw <MaximumNumberOfFoodItemsExceeded>(); }
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() { var saladRequest = new SellItemRequest { ProductName = "salad", Quantity = 2 }; var tomatoRequest = new SellItemRequest { ProductName = "tomato", Quantity = 3 }; var request = new SellItemsRequest { Requests = new List <SellItemRequest> { saladRequest, tomatoRequest } }; _useCase.Run(request); Order insertedOrder = _orderRepository.GetSavedOrder(); Assert.Equal(OrderStatus.Created, insertedOrder.Status); Assert.Equal(23.20m, insertedOrder.Total); Assert.Equal(2.13m, insertedOrder.Tax); Assert.Equal("EUR", insertedOrder.Currency); Assert.Equal(2, insertedOrder.Items.Count); Assert.Equal("salad", insertedOrder.Items[0].Product.Name); Assert.Equal(3.56m, insertedOrder.Items[0].Product.Price); Assert.Equal(2, insertedOrder.Items[0].Quantity); Assert.Equal(7.84m, insertedOrder.Items[0].TaxedAmount); Assert.Equal(0.72m, insertedOrder.Items[0].Tax); Assert.Equal("tomato", insertedOrder.Items[1].Product.Name); Assert.Equal(4.65m, insertedOrder.Items[1].Product.Price); Assert.Equal(3, insertedOrder.Items[1].Quantity); Assert.Equal(15.36m, insertedOrder.Items[1].TaxedAmount); Assert.Equal(1.41m, insertedOrder.Items[1].Tax); }
public void MaximumNumberOfFoodItemsExceededWithMultipleQuantity() { SellItemsRequest tooManyFoodItemsRequest = new SellItemsRequest(); tooManyFoodItemsRequest.SetRequests(new List <SellItemRequest>()); SellItemRequest foodItemRequest = new SellItemRequest(); foodItemRequest.SetProductName("salad"); foodItemRequest.SetQuantity(30); tooManyFoodItemsRequest.GetRequests().Add(foodItemRequest); foodItemRequest = new SellItemRequest(); foodItemRequest.SetProductName("tomato"); foodItemRequest.SetQuantity(71); tooManyFoodItemsRequest.GetRequests().Add(foodItemRequest); Action act = () => useCase.Run(tooManyFoodItemsRequest); act.Should().Throw <MaximumNumberOfFoodItemsExceeded>(); }
public void SellMultipleItems() { SellItemRequest saladRequest = new SellItemRequest(); saladRequest.SetProductName("salad"); saladRequest.SetQuantity(2); SellItemRequest tomatoRequest = new SellItemRequest(); tomatoRequest.SetProductName("tomato"); tomatoRequest.SetQuantity(3); SellItemsRequest request = new SellItemsRequest(); request.SetRequests(new List <SellItemRequest>() { saladRequest, tomatoRequest }); useCase.Run(request); Order insertedOrder = orderRepository.GetSavedOrder(); insertedOrder.GetStatus().Should().Be(OrderStatus.Created); insertedOrder.GetTotal().Should().Be((decimal)23.20); insertedOrder.GetTax().Should().Be((decimal)2.13); insertedOrder.GetCurrency().Should().Be("EUR"); insertedOrder.GetItems().Should().HaveCount(2); insertedOrder.GetItems()[0].GetProduct().GetName().Should().Be("salad"); insertedOrder.GetItems()[0].GetProduct().GetPrice().Should().Be((decimal)3.56); insertedOrder.GetItems()[0].getQuantity().Should().Be(2); insertedOrder.GetItems()[0].GetTaxedAmount().Should().Be((decimal)7.84); insertedOrder.GetItems()[0].GetTax().Should().Be((decimal)0.72); insertedOrder.GetItems()[1].GetProduct().GetName().Should().Be("tomato"); insertedOrder.GetItems()[1].GetProduct().GetPrice().Should().Be((decimal)4.65); insertedOrder.GetItems()[1].getQuantity().Should().Be(3); insertedOrder.GetItems()[1].GetTaxedAmount().Should().Be((decimal)15.36); insertedOrder.GetItems()[1].GetTax().Should().Be((decimal)1.41); }
public void sellMultipleItems() { SellItemRequest saladRequest = new SellItemRequest(); saladRequest.setProductName("salad"); saladRequest.setQuantity(2); SellItemRequest tomatoRequest = new SellItemRequest(); tomatoRequest.setProductName("tomato"); tomatoRequest.setQuantity(3); SellItemsRequest request = new SellItemsRequest(); request.setRequests(new List <SellItemRequest>()); request.getRequests().Add(saladRequest); request.getRequests().Add(tomatoRequest); useCase.run(request); Order insertedOrder = orderRepository.getSavedOrder(); Assert.That(insertedOrder.getStatus(), Is.EqualTo(OrderStatus.CREATED)); Assert.That(insertedOrder.getTotal(), Is.EqualTo(new BigDecimal(23.20).SetScale(2, RoundingMode.HalfUp))); Assert.That(insertedOrder.getTax(), Is.EqualTo(new BigDecimal(2.13).SetScale(2, RoundingMode.HalfUp))); Assert.That(insertedOrder.getCurrency(), Is.EqualTo("EUR")); Assert.That(insertedOrder.getItems().Count(), Is.EqualTo(2)); Assert.That(insertedOrder.getItems()[0].getProduct().getName(), Is.EqualTo("salad")); Assert.That(insertedOrder.getItems()[0].getProduct().getPrice(), Is.EqualTo(new BigDecimal(3.56))); Assert.That(insertedOrder.getItems()[0].getQuantity(), Is.EqualTo(2)); Assert.That(insertedOrder.getItems()[0].getTaxedAmount(), Is.EqualTo(new BigDecimal(7.84).SetScale(2, RoundingMode.HalfUp))); Assert.That(insertedOrder.getItems()[0].getTax(), Is.EqualTo(new BigDecimal(0.72).SetScale(2, RoundingMode.HalfUp))); Assert.That(insertedOrder.getItems()[1].getProduct().getName(), Is.EqualTo("tomato")); Assert.That(insertedOrder.getItems()[1].getProduct().getPrice(), Is.EqualTo(new BigDecimal(4.65))); Assert.That(insertedOrder.getItems()[1].getQuantity(), Is.EqualTo(3)); Assert.That(insertedOrder.getItems()[1].getTaxedAmount(), Is.EqualTo(new BigDecimal(15.36).SetScale(2, RoundingMode.HalfUp))); Assert.That(insertedOrder.getItems()[1].getTax(), Is.EqualTo(new BigDecimal(1.41).SetScale(2, RoundingMode.HalfUp))); }
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); }
public void SellMultipleItems() { SellItemRequest saladRequest = new SellItemRequest(); saladRequest.ProductName = "salad"; saladRequest.Quantity = 2; SellItemRequest tomatoRequest = new SellItemRequest(); tomatoRequest.ProductName = "tomato"; tomatoRequest.Quantity = 3; SellItemsRequest request = new SellItemsRequest(); request.Requests = new List <SellItemRequest>(); request.Requests.Add(saladRequest); request.Requests.Add(tomatoRequest); useCase.Run(request); Order insertedOrder = orderRepository.GetSavedOrder(); insertedOrder.Status.Should().Be(OrderStatus.Created); insertedOrder.Total.Should().Be(23.20M); insertedOrder.Tax.Should().Be(2.13M); insertedOrder.Currency.Should().Be("EUR"); insertedOrder.Items.Should().HaveCount(2); insertedOrder.Items[0].Product.Name.Should().Be("salad"); insertedOrder.Items[0].Product.Price.Should().Be(3.56M); insertedOrder.Items[0].Quantity.Should().Be(2); insertedOrder.Items[0].TaxedAmount.Should().Be(7.84M); insertedOrder.Items[0].Tax.Should().Be(0.72M); insertedOrder.Items[1].Product.Name.Should().Be("tomato"); insertedOrder.Items[1].Product.Price.Should().Be(4.65M); insertedOrder.Items[1].Quantity.Should().Be(3); insertedOrder.Items[1].TaxedAmount.Should().Be(15.36M); insertedOrder.Items[1].Tax.Should().Be(1.41M); }