static void Main(string[] args) { do { Console.Write("Enter Weight in kg: "); var weight = Console.ReadLine(); Console.Write("Enter Height in cm: "); var height = Console.ReadLine(); Console.Write("Enter Width in cm: "); var width = Console.ReadLine(); Console.Write("Enter Depth in cm: "); var depth = Console.ReadLine(); var costCalculator = new DeliveryCostCalculator(new ParcelFactory(), new Validator()); var result = costCalculator.Calculate(weight, height, width, depth); if (!string.IsNullOrEmpty(result.Error)) { Console.WriteLine(result.Error); } else { var cost = result.Cost > 0 ? "$" + result.Cost : "N/A"; Console.WriteLine("Category: " + result.Category); Console.WriteLine("Cost: " + cost); } Console.WriteLine("Press ESC to stop or Enter to Calculate again"); Console.WriteLine(); } while (Console.ReadKey(true).Key != ConsoleKey.Escape); }
public void Calculate_EmptyProduct_ReturnsException() { var deliveryCostCalculator = new DeliveryCostCalculator(2.5, 3.5); cart.Setup(x => x.GetDeliveryCount()).Returns(0); cart.Setup(x => x.GetProductCount()).Returns(0); Assert.Equal(2.99, deliveryCostCalculator.Calculate(cart.Object)); }
public void Calculate_WhenShoppingCartWithNullProductListSupplied_ShouldThrowsArgumentNullException() { var shoppingCart = _fixture.Build <ShoppingCart>() .Without(cart => cart.Products) .Create(); var deliveryCostCalculator = new DeliveryCostCalculator(); Assert.Throws <ArgumentNullException>(() => deliveryCostCalculator.Calculate(shoppingCart)); }
public void Calculate_NullCart_ReturnsArgumentNullException() { //Arrange deliveryCostCalculator = new DeliveryCostCalculator(2M, 6M); //Act //Assert Assert.Throws <ArgumentNullException>(() => deliveryCostCalculator.Calculate(null)); }
public void Calculate_WithEmptyShoppingCart_ShouldReturnZeroCost() { var products = _fixture.CreateMany <Product>(0).ToList(); var shoppingCart = _fixture.Build <ShoppingCart>() .With(cart => cart.Products, products) .Create(); var deliveryCostCalculator = new DeliveryCostCalculator(); var deliveryCost = deliveryCostCalculator.Calculate(shoppingCart); Assert.AreEqual(deliveryCost, decimal.Zero); }
public void Calculate_CartWithOneDeliveryOneProduct_ReturnsValidCalculation() { //Arrange deliveryCostCalculator = new DeliveryCostCalculator(2M, 6M); shoppingCartService.Setup(m => m.GetNumberOfDeliveries()).Returns(1); shoppingCartService.Setup(m => m.GetNumberOfProducts()).Returns(1); //Act //Assert var expectedResult = (2M * 1M) + (6M * 1M) + 6.99M; Assert.That(deliveryCostCalculator.Calculate(shoppingCartService.Object) == expectedResult); }
public void Calculate_NoProduct_ReturnsFixedCost() { //Arrange deliveryCostCalculator = new DeliveryCostCalculator(2M, 6M); shoppingCartService.Setup(m => m.GetNumberOfDeliveries()).Returns(0); shoppingCartService.Setup(m => m.GetNumberOfProducts()).Returns(0); //Act //Assert var expectedResult = deliveryCostCalculator.Calculate(shoppingCartService.Object) == 6.99M; Assert.That(expectedResult); }
Calculate_WithShoppingCartThatConsistOfDifferentRenewableProducts_ShouldReturnsTwoTryMultipleItemCount() { var products = _fixture.Build <Product>() .With(product => product.IsRenewable, true) .CreateMany(10) .ToList(); var shoppingCart = _fixture.Build <ShoppingCart>() .With(cart => cart.Products, products) .Create(); var deliveryCostCalculator = new DeliveryCostCalculator(); var deliveryCost = deliveryCostCalculator.Calculate(shoppingCart); var expectedCost = products.Count * DeliveryConstants.CostPerRenewable; Assert.AreEqual(deliveryCost, expectedCost); }
public void DeliveryCostCalculator_Calculate_Pass_RejectedParcel() { _parcelMock.SetupGet(x => x.Category).Returns(Domain.Enum.ParcelCategoryEnum.Rejected); _parcelMock.SetupGet(x => x.DeliveryCost).Returns(-1); _parcelFactoryMock.Setup(x => x.GetParcel(It.IsAny <int>(), It.IsAny <int>(), It.IsAny <int>(), It.IsAny <int>())).Returns(_parcelMock.Object); _validatorMock.Setup(x => x.CheckValues(It.IsAny <string>(), It.IsAny <string>(), It.IsAny <string>(), It.IsAny <string>())).Returns(new ValidatorResult { IsValid = true }); var result = _calculator.Calculate("500", "10", "20", "10"); Assert.AreEqual("Rejected", result.Category); Assert.AreEqual(-1, result.Cost); }
public void Calculate_WithNullShoppingCart_ShouldThrowsArgumentNullException() { var deliveryCostCalculator = new DeliveryCostCalculator(); Assert.Throws <ArgumentNullException>(() => deliveryCostCalculator.Calculate(null)); }
public void Calculate_NullCart_ReturnsException() { var deliveryCostCalculator = new DeliveryCostCalculator(2.5, 3.5); Assert.Throws <ArgumentNullException>(() => deliveryCostCalculator.Calculate(null)); }