Example #1
0
        public void ShouldPrintDiscountWhenWednesday()
        {
            var dateTime = new DateTime(2020, 7, 15);

            List <LineItem> lineItems = new List <LineItem>()
            {
                new LineItem("milk", 10.0, 2),
                new LineItem("biscuits", 5.0, 5),
                new LineItem("chocolate", 20.0, 1),
            };
            var dateTimeInstance = new Mock <IDateTimeProvider>();

            dateTimeInstance.Setup(_ => _.Now()).Returns(dateTime);

            String       output  = "";
            OrderReceipt receipt = new OrderReceipt(new Order(null, null, lineItems, dateTimeInstance.Object));

            output = receipt.PrintReceipt();
            Assert.Contains("milk, 10 X 2, 20\n", output);
            Assert.Contains("biscuits, 5 X 5, 25\n", output);
            Assert.Contains("chocolate, 20 X 1, 20\n", output);
            Assert.Contains("税额: 6.5", output);
            Assert.Contains("折扣: 1.43", output);
            Assert.Contains("总价: 70.07", output);
        }
Example #2
0
        public void shouldPrintCustomerInformationOnOrder()
        {
            Order        order   = new Order("Mr X", "Chicago, 60601", new List <LineItem>());
            OrderReceipt receipt = new OrderReceipt(order);

            String output = receipt.PrintReceipt();

            Assert.Contains("Mr X", output);
            Assert.Contains("Chicago, 60601", output);
        }
Example #3
0
        public void ShouldPrintCustomerInformationOnOrder()
        {
            Order        order   = new Order(new List <LineItem>(), Convert.ToDateTime("2020-7-16"));
            OrderReceipt receipt = new OrderReceipt(order, new StringBuilder());

            String output = receipt.PrintReceipt();

            Assert.Contains("=====老王超市,值得信赖======\n\n", output);
            Assert.Contains("2020年7月16日,星期四\n\n", output);
        }
Example #4
0
        public void ShouldDiscountAndPrintDiscountInfoWhenWednesday()
        {
            List <LineItem> lineItems = new List <LineItem>()
            {
                new LineItem("milk", 10.0, 2),
                new LineItem("biscuits", 5.0, 5),
                new LineItem("chocolate", 20.0, 1),
            };
            OrderReceipt receipt = new OrderReceipt(new Order(lineItems, Convert.ToDateTime("2020-7-15")), new StringBuilder());

            String output = receipt.PrintReceipt();

            Assert.Contains("折扣:\t1.43", output);
            Assert.Contains("总价:\t70.07", output);
        }
Example #5
0
        public void shouldPrintCustomerInformationOnOrder()
        {
            var dateTimeInstance = new Mock <IDateTimeProvider>();
            var dateTime         = new DateTime(2020, 7, 15);

            dateTimeInstance.Setup(_ => _.Now()).Returns(dateTime);
            Order        order   = new Order("Mr X", "Chicago, 60601", new List <LineItem>(), dateTimeInstance.Object);
            OrderReceipt receipt = new OrderReceipt(order);

            String output = receipt.PrintReceipt();

            Assert.Contains(dateTime.ToString("yyyy年M月d日, dddd", new CultureInfo("zh-cn")), output);
            Assert.Contains("Mr X", output);
            Assert.Contains("Chicago, 60601", output);
        }
Example #6
0
        public void ShouldPrintLineItemAndSalesTaxInformation()
        {
            List <LineItem> lineItems = new List <LineItem>()
            {
                new LineItem("milk", 10.0, 2),
                new LineItem("biscuits", 5.0, 5),
                new LineItem("chocolate", 20.0, 1),
            };
            OrderReceipt receipt = new OrderReceipt(new Order(null, null, lineItems));

            String output = receipt.PrintReceipt();

            Assert.Contains("milk\t10\t2\t20\n", output);
            Assert.Contains("biscuits\t5\t5\t25\n", output);
            Assert.Contains("chocolate\t20\t1\t20\n", output);
            Assert.Contains("Sales Tax\t6.5", output);
            Assert.Contains("Total Amount\t71.5", output);
        }
Example #7
0
        public void ShouldPrintLineItemAndSalesTaxInformation()
        {
            List <LineItem> lineItems = new List <LineItem>()
            {
                new LineItem("milk", 10.0, 2),
                new LineItem("biscuits", 5.0, 5),
                new LineItem("chocolate", 20.0, 1),
            };
            OrderReceipt receipt = new OrderReceipt(new Order(lineItems, Convert.ToDateTime("2020-7-16")), new StringBuilder());

            String output = receipt.PrintReceipt();

            Assert.Contains("milk,10*2,20\n", output);
            Assert.Contains("biscuits,5*5,25\n", output);
            Assert.Contains("chocolate,20*1,20\n", output);
            Assert.Contains("-----------------------\n", output);
            Assert.Contains("税额:\t6.5\n", output);
            Assert.Contains("总价:\t71.5", output);
        }
Example #8
0
        public void ShouldPrintLineItemAndSalesTaxInformation()
        {
            List <LineItem> lineItems = new List <LineItem>()
            {
                new LineItem("milk", 10.0, 2),
                new LineItem("biscuits", 5.0, 5),
                new LineItem("chocolate", 20.0, 1),
            };

            var dateTime         = new DateTime(2020, 7, 13);
            var dateTimeInstance = new Mock <IDateTimeProvider>();

            dateTimeInstance.Setup(_ => _.Now()).Returns(dateTime);

            OrderReceipt receipt = new OrderReceipt(new Order(null, null, lineItems, dateTimeInstance.Object));
            String       output  = receipt.PrintReceipt();

            Assert.Contains("milk, 10 X 2, 20\n", output);
            Assert.Contains("biscuits, 5 X 5, 25\n", output);
            Assert.Contains("chocolate, 20 X 1, 20\n", output);
            Assert.Contains("税额: 6.5", output);
            Assert.DoesNotContain("折扣:", output);
            Assert.Contains("总价: 71.5", output);
        }