示例#1
0
        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);
        }
示例#2
0
        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 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));
        }
示例#5
0
        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));
        }
        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);
        }