Пример #1
0
        public void Test_6_cannot_give_change_when_payment_balance_0()
        {
            var sut = new Sale(1);

            var result = sut.AddChange(new Change(1.00));

            Assert.False(result.IsSuccess, "Able to add change to sale with negative balance");
            Assert.Equal(0, sut.ChangeGiven);
            Assert.Equal(0, sut.Balance);
            Assert.Equal(0, sut.PaymentBalance);
        }
Пример #2
0
        public void Test_3_can_give_change()
        {
            var sut   = new Sale(1);
            var item1 = new SaleItem(new Product(1, "product1", "product1", "product1s", 1.00, imageClassName: "test"), 1);

            sut.AddItem(item1);
            sut.AddPayment(new Payment(10));

            var result = sut.AddChange(new Change(9.00));

            Assert.True(result.IsSuccess, "Unable to give change");
            Assert.Equal(0, sut.Balance);
        }
Пример #3
0
        public void Test_8b_change_amount_cannot_exceed_payment_balance()
        {
            var sut   = new Sale(1);
            var item1 = new SaleItem(new Product(1, "product1", "product1", "product1s", 10.11, imageClassName: "test"), 1);

            sut.AddItem(item1);
            sut.AddPayment(new Payment(5));

            var result = sut.AddChange(new Change(6.00));

            Assert.False(result.IsSuccess, "Added change that exceeds payment balance");
            Assert.Equal(0, sut.ChangeGiven);
        }
Пример #4
0
        public void Test_8c_cannot_give_change_to_cancelled_sale()
        {
            var sut   = new Sale(1);
            var item1 = new SaleItem(new Product(1, "product1", "product1", "product1s", 1.11, imageClassName: "test"), 1);

            sut.AddItem(item1);
            sut.Cancel();

            var result = sut.AddChange(new Change(1.00));

            Assert.False(result.IsSuccess, "Gave change on cancelled sale");
            Assert.Equal(0, sut.ChangeGiven);
        }
Пример #5
0
        public void Test_6_cannot_give_change_on_paid_sale()
        {
            var sut   = new Sale(1);
            var item1 = new SaleItem(new Product(1, "product1", "product1", "product1s", 1.00, imageClassName: "test"), 1);

            sut.AddItem(item1);
            sut.AddPayment(new Payment(item1.TotalPrice));

            var result = sut.AddChange(new Change(9.00));

            Assert.False(result.IsSuccess, "Was able to give change on a paid sale");
            Assert.Equal(0, sut.Balance);
        }
Пример #6
0
        public void Test_6_can_give_change_when_amount_equals_payment_balance()
        {
            var sut   = new Sale(1);
            var item1 = new SaleItem(new Product(1, "product1", "product1", "product1s", 1.00, imageClassName: "test"), 1);

            sut.AddItem(item1);
            sut.AddPayment(new Payment(50));

            var result = sut.AddChange(new Change(50));

            Assert.True(result.IsSuccess, "Unable to give change when change amount equals payment balance");
            Assert.Equal(item1.TotalPrice * -1, sut.Balance);
        }
Пример #7
0
        public void Test_6_cannot_give_change_when_amount_exceeds_payment_balance()
        {
            var sut   = new Sale(1);
            var item1 = new SaleItem(new Product(1, "product1", "product1", "product1s", 1.00, imageClassName: "test"), 1);

            sut.AddItem(item1);
            sut.AddPayment(new Payment(50));
            var expectedBalance = sut.Balance;

            var result = sut.AddChange(new Change(100));

            Assert.False(result.IsSuccess, "Able to add change to sale with negative balance");
            Assert.Equal(expectedBalance, sut.Balance);
        }
Пример #8
0
        public void Test_7_cannot_give_change_on_paid_sale()
        {
            // expected to fail until exercise complete

            var sut   = new Sale(1);
            var item1 = new SaleItem(new Product(1, "product1", "product1", "product1s", 1.00, imageClassName: "test"), 1);

            sut.AddItem(item1);
            sut.AddPayment(new Payment(item1.TotalPrice));

            var result = sut.AddChange(new Change(5.55));

            Assert.False(result.IsSuccess, "Was able to give change on paid sale");
            Assert.Equal(0, sut.Balance);
            Assert.Equal(0, sut.ChangeGiven);
        }