コード例 #1
0
        public void TestOderWithFiveItems()
        {
            // Setup
            PurchaseOrder po = new PurchaseOrder();

            po.AddItem(new cItem("Woman-Socks-123-456", 15));
            po.AddItem(new cItem("Woman-Socks-123-456", 15));
            po.AddItem(new cItem("Woman-Socks-123-456", 15));
            po.AddItem(new cItem("Shirt-222-111", 5));
            po.AddItem(new cItem("Shirt-123-456", 5));

            DiscountEngine de = new DiscountEngine();

            // Exercise
            Double totalprice = de.Compute(ref po);

            // Verify
            Assert.AreEqual(35.00, totalprice);
            Assert.AreEqual(po.GetOrders()[0].discountScheme, "Bundling Discount");
            Assert.AreEqual(po.GetOrders()[0].discountAmt, 6.67);
            Assert.AreEqual(po.GetOrders()[1].discountScheme, "Bundling Discount");
            Assert.AreEqual(po.GetOrders()[1].discountAmt, 6.67);
            Assert.AreEqual(po.GetOrders()[2].discountScheme, "Bundling Discount");
            Assert.AreEqual(po.GetOrders()[2].discountAmt, 6.67);
            Assert.AreEqual(po.GetOrders()[3].discountScheme, "");
            Assert.AreEqual(po.GetOrders()[3].discountAmt, 0);
            Assert.AreEqual(po.GetOrders()[4].discountScheme, "");
            Assert.AreEqual(po.GetOrders()[4].discountAmt, 0);
        }
コード例 #2
0
        public void TestOrderSingleItem()
        {
            PurchaseOrder order = new PurchaseOrder();
            cItem         item  = new cItem("A100", 50.5);

            order.AddItem(item);
            Assert.IsTrue(order.GetOrders().Count == 1);
        }
コード例 #3
0
        public void TestItemFinalPrice()
        {
            cItem         item   = new cItem("A100", 10);
            PurchaseOrder poList = new PurchaseOrder();

            poList.AddItem(item);

            var mDiscountEngine = new Mock <IDiscountEngine>();

            mDiscountEngine.Setup((p) => p.Compute(ref poList));
        }
コード例 #4
0
        public void TestOderWithTwoItems()
        {
            // Setup
            PurchaseOrder po = new PurchaseOrder();

            po.AddItem(new cItem("Shirt-123-456", 5));
            po.AddItem(new cItem("Shirt-123-456", 5));

            DiscountEngine de = new DiscountEngine();

            // Exercise
            Double totalprice = de.Compute(ref po);

            // Verify
            Assert.AreEqual(8.50, totalprice);
            Assert.AreEqual(po.GetOrders()[0].discountScheme, "Multi-item Discount");
            Assert.AreEqual(po.GetOrders()[0].discountAmt, 0);
            Assert.AreEqual(po.GetOrders()[1].discountScheme, "Multi-item Discount");
            Assert.AreEqual(po.GetOrders()[1].discountAmt, 1.50);
        }
コード例 #5
0
        public void TestOderWithOneItem()
        {
            // Setup
            PurchaseOrder po = new PurchaseOrder();

            po.AddItem(new cItem("Shirt-123-456", 5));

            DiscountEngine de = new DiscountEngine();

            // Exercise
            Double totalprice = de.Compute(ref po);

            // Verify
            Assert.AreEqual(4.75, totalprice);
            Assert.AreEqual(po.GetOrders()[0].discountScheme, "Progressive Discount");
            Assert.AreEqual(po.GetOrders()[0].discountAmt, 0.25);
        }