public void TestScenario_A() { //Arrange _SKUCart.AddProductToCart('A'); _SKUCart.AddProductToCart('B'); _SKUCart.AddProductToCart('C'); //Act var result = _orderCalculator.Calculate(_SKUCart); //Assert Assert.AreEqual(100, result); }
public void CalculateDiscountTest() { // Arrange Customer customer = new Customer(1, "Sulecki"); Order order = Order.Create(customer); order.OrderDate = DateTime.Parse("2018-09-14"); Product product = new Product("Mouse", 100, "Red"); Service service = new Service("Developing", 100); order.AddDetail(new OrderDetail(product, 10)); order.AddDetail(new OrderDetail(service, 4)); IOrderCalculator calculator = new OrderCalculator(); // Acts decimal result = calculator.Calculate(order); // Asserts Assert.True(result > 0); Assert.Equal(1260, result); // Polecam: Install-Package FluentAssertions }
public bool CalculateOrderWithoutRepricing(Order o) { var calc = new OrderCalculator(this); calc.SkipRepricing = true; return(calc.Calculate(o)); }
public void グレードがいいやつはボーナスがつく() { var order = new Order ( name: OrderName.Car, 100, new[] { new OrderElement(Type.Wheel, 4), new OrderElement(Type.CarBody, 1), } ); var checker = new OrderCalculator(new[] { order }); var parts = new[] { new Part(Type.Wheel, Quality.Normal, 0), new Part(Type.Wheel, Quality.High, 0), new Part(Type.Wheel, Quality.High, 0), new Part(Type.Wheel, Quality.Normal, 0), new Part(Type.CarBody, Quality.Normal, 0), }; // Car指定 var shipment1 = new ShippingParts(parts, OrderName.Car); var result = checker.Calculate(shipment1); // 倍率で点数が上がるはず Assert.AreEqual((int)(100 * 1.2f * 1.2f), (int)result); }
public void OrderCalculatorTest() { // Arrange AddArticlesTest(); Customer customer = new Customer(); Article product1 = articlesService.Get(1); Order order = new Order("ZAM 1/2018", customer); order.OrderDate = DateTime.Parse("2018-04-13"); order.AddArticle(product1, 2); IStrategy strategy = new HappyDayOfWeekStrategy(DayOfWeek.Friday, 0.3m); OrderCalculator calculator = new OrderCalculator(strategy); // Acts calculator.Calculate(order); // Assets Assert.AreEqual(6, order.DiscountAmount); Assert.IsTrue(order.HasDiscount); }
// Normally would split out into a separate project public void Returns_Correct_Value_Implementation() { var sut = new OrderCalculator(); var result = sut.Calculate(new string[] { "Steak Sandwich" }); Assert.Equal((decimal)5.4, result); }
public void OrderNameを指定してコンボボーナスが得られる() { var order = new Order ( name: OrderName.Car, 100, new[] { new OrderElement(Type.Wheel, 4), new OrderElement(Type.CarBody, 1), } ); var checker = new OrderCalculator(new[] { order }); var parts = new[] { new Part(Type.Wheel, Quality.Normal, 0), new Part(Type.Wheel, Quality.Normal, 0), new Part(Type.Wheel, Quality.Normal, 0), new Part(Type.Wheel, Quality.Normal, 0), new Part(Type.CarBody, Quality.Normal, 0), }; // Car指定 var shipment1 = new ShippingParts(parts, OrderName.Car); var result = checker.Calculate(shipment1); // Car指定なのでCarのコンボボーナスが得られる Assert.AreEqual(100, result); // Car指定ではない var shipment2 = new ShippingParts(parts, OrderName.Doll); var result2 = checker.Calculate(shipment2); // Car指定ではないのコンボボーナスは得られない Assert.AreEqual(0, result2); }
public void Returns_Correct_Value() { Mock <IItemCalculator> netMoq = new Mock <IItemCalculator>(); netMoq.Setup(m => m.Calculate(It.IsAny <string[]>())).Returns((decimal)123.45); Mock <ISurchargeCalculator> surchargeMoq = new Mock <ISurchargeCalculator>(); surchargeMoq.Setup(m => m.Calculate(It.IsAny <decimal>(), It.IsAny <string[]>())).Returns((decimal)10); var sut = new OrderCalculator(netMoq.Object, surchargeMoq.Object); var result = sut.Calculate(new string[] { "Test", "Test" }); Assert.Equal((decimal)133.45, result); }
public void CalculateOrderTest() { // Arrange var order = new Order { Price = 40, Quantity = 2, OrderDate = DateTime.Parse("2018-03-06") }; // Act var orderCalculator = new OrderCalculator(new NoDiscountStrategy()); var amount = orderCalculator.Calculate(order); // Assert Assert.AreEqual(80, amount); }
private decimal GetTotalWithoutRecurring(CheckoutDetails checkout) { OrderCalculator orderCalculator = new OrderCalculator(); IList <CartItemGroup> cartItemGroups = StoreContext.ShoppingCart.SeparateCartItemGroups(); decimal total = 0; foreach (CartItemGroup cartItemGroup in cartItemGroups) { if (!cartItemGroup.IsRecurring) { total += orderCalculator.Calculate( checkout, cartItemGroup, StoreContext.Customer, 0) .Add(CartItemPromotion.CalculatePromotionShippingAndTax( checkout, cartItemGroup, StoreContext.Customer)).Total; } } return(total); }
public void CalculateTest() { // Arrange var order = new Order { Price = 100, Quantity = 2, OrderDate = DateTime.Parse("2018-03-06 14:00") }; // Act IDiscountValidator validator = new HappyHourDiscountValidator(TimeSpan.FromHours(13), TimeSpan.FromHours(16)); IDiscountCalculator calculator = new FixedDiscountCalculator(20); var orderCalculator = new OrderCalculator(validator, calculator); var amount = orderCalculator.Calculate(order); // Assert Assert.AreEqual(180, amount); }
private void CalculateScore(ShippingParts shippingParts) { _totalScore.Value += _orderCalculator.Calculate(shippingParts); }
public bool CalculateOrder(Order o) { var calc = new OrderCalculator(this); return(calc.Calculate(o)); }