Пример #1
0
        public void SutIsBasketVisitor()
        {
            var dummyThreshold = 100;
            var dummyRate      = .05m;
            var sut            = new VolumeDiscountVisitor(dummyThreshold, dummyRate);

            Assert.IsAssignableFrom <IBasketVisitor>(sut);
        }
Пример #2
0
        public void RateIsCorrect(int expected)
        {
            var dummyThreshold = 100;
            var sut            = new VolumeDiscountVisitor(dummyThreshold, expected);

            decimal actual = sut.Rate;

            Assert.Equal(expected, actual);
        }
Пример #3
0
        public void ThresholdIsCorrect(int expected)
        {
            var dummyRate = .05m;
            var sut       = new VolumeDiscountVisitor(expected, dummyRate);

            decimal actual = sut.Threshold;

            Assert.Equal(expected, actual);
        }
Пример #4
0
        public void DefaultAmountIsCorrect()
        {
            var dummyThreshold = 100;
            var dummyRate      = .05m;
            var sut            = new VolumeDiscountVisitor(dummyThreshold, dummyRate);

            decimal actual = sut.Subtotal;

            Assert.Equal(0, actual);
        }
Пример #5
0
        public void RateIsCorrectFromConstructorWithSubtotal(int expected)
        {
            var dummyThreshold = 200;
            var dummySubtotal  = 300;
            var sut            = new VolumeDiscountVisitor(
                dummyThreshold, expected, dummySubtotal);

            var actual = sut.Rate;

            Assert.Equal(expected, actual);
        }
Пример #6
0
        public void ThresholdIsCorrectFromConstructorWithSubtotal(int expected)
        {
            var dummyRate     = .05m;
            var dummySubtotal = 4.2m;
            var sut           = new VolumeDiscountVisitor(
                expected, dummyRate, dummySubtotal);

            var actual = sut.Threshold;

            Assert.Equal(expected, actual);
        }
Пример #7
0
        public void SubtotalIsCorrect(int expected)
        {
            var dummyThreshold = 100;
            var dummyRate      = .05m;
            var sut            = new VolumeDiscountVisitor(
                dummyThreshold, dummyRate, expected);

            var actual = sut.Subtotal;

            Assert.Equal(expected, actual);
        }
Пример #8
0
        public void SutYieldsCorrectResultWhenSubtotalIsBelowThreshold(
            int threshold,
            int subtotal)
        {
            var dummyRate = .03m;
            var sut       =
                new VolumeDiscountVisitor(threshold, dummyRate, subtotal);

            Assert.False(sut.Any());
            Assert.Empty(sut);
        }
Пример #9
0
        public void SutYieldsCorrectResultWhenSubtotalIsAboveThreshold(
            int threshold,
            int rate,
            int subtotal)
        {
            var sut = new VolumeDiscountVisitor(threshold, rate, subtotal);

            var d = Assert.IsAssignableFrom <Discount>(sut.Single());

            Assert.Equal(subtotal * rate, d.Amount);
            Assert.Equal(
                subtotal * rate,
                sut.OfType <Discount>().Single().Amount);
        }
Пример #10
0
        public void VisitVatReturnsCorrectResult(
            int threshold,
            int rate,
            int subtotal)
        {
            var sut = new VolumeDiscountVisitor(threshold, rate, subtotal);

            var actual = sut.Visit(new Vat(1337));

            var vd = Assert.IsAssignableFrom <VolumeDiscountVisitor>(actual);

            Assert.Equal(threshold, vd.Threshold);
            Assert.Equal(rate, vd.Rate);
            Assert.Equal(subtotal, vd.Subtotal);
        }
Пример #11
0
        public void VisitBasketItemReturnsCorrectResult(
            int threshold,
            int rate,
            int subtotal,
            int unitPrice,
            int quantity)
        {
            var sut = new VolumeDiscountVisitor(threshold, rate, subtotal);

            var basketItem =
                new BasketItem("Dummy", unitPrice, quantity);
            var actual = sut.Visit(basketItem);

            var vd = Assert.IsAssignableFrom <VolumeDiscountVisitor>(actual);

            Assert.Equal(threshold, vd.Threshold);
            Assert.Equal(rate, vd.Rate);
            Assert.Equal(subtotal + basketItem.Total, vd.Subtotal);
        }