public void Should_be_able_to_add_an_adjustment_to_an_order() { var order = new Order(); order.AddLine("widget 1", 1, new Money(12.34M), "abc", 102, "-"); order.AddLine("gadget 1", 2, new Money(3.55M), "def", 101, "-"); order.AddLine("gadget 1", 2, new Money(3.55M), "def", 101, "-"); order.Postage = PostageResult.WithPrice(new Money(1.33M), "for London"); var expectedAdjustedTotal = order.Total + new Money(-4.50M); var adjustment = new OrderAdjustment { Description = "4.50 off for slight scuffing", Amount = new Money(-4.50M) }; order.AddAdjustment(adjustment); order.Adjustments[0].ShouldBeTheSameAs(adjustment); adjustment.Order.ShouldBeTheSameAs(order); order.Adjustments[0].Description.ShouldEqual("4.50 off for slight scuffing"); order.Total.ShouldEqual(expectedAdjustedTotal); }
public void Should_be_able_to_remove_adjustment() { var order = new Order(); var adjustment = new OrderAdjustment(); order.AddAdjustment(adjustment); order.RemoveAdjustment(adjustment); adjustment.Order.ShouldBeNull(); order.Adjustments.ShouldBeEmpty(); }
public void Delete_should_delete_adjustment() { var order = new Order { Id = 66 }; var adjustment = new OrderAdjustment(); order.AddAdjustment(adjustment); orderAdjustmentController.Delete(adjustment) .ReturnsRedirectToRouteResult() .ToAction("Item") .ToController("Order") .WithRouteValue("Id", "66"); order.Adjustments.ShouldBeEmpty(); orderRepository.AssertWasCalled(r => r.SaveOrUpdate(order)); }