Пример #1
0
        public void InsertMoneySeveralTimesTest()
        {
            //arrange
            var vm = new VendingController(false);
            var expInitialMoney     = 0;
            var expFirstBuyRemains  = 20;
            var expSecondBuyRemains = 20;
            var expThirdBuyRemains  = 20;

            //act
            var actInitialMoney = vm.Payment;

            bool insertResult1            = vm.InsertMoney(20);
            var  actFirstInsertRemainders = vm.Payment;

            bool insertResult2             = vm.InsertMoney(-50); //negative value, not in denominations
            var  actSecondInsertRemainders = vm.Payment;

            bool insertResult3            = vm.InsertMoney(133); //not in denominations
            var  actThirdInsertRemainders = vm.Payment;

            //assert
            Assert.Equal(expInitialMoney, actInitialMoney);
            Assert.Equal(expFirstBuyRemains, actFirstInsertRemainders);
            Assert.Equal(expSecondBuyRemains, actSecondInsertRemainders);
            Assert.Equal(expThirdBuyRemains, actThirdInsertRemainders);
            Assert.True(insertResult1);
            Assert.False(insertResult2);
            Assert.False(insertResult3);
        }
Пример #2
0
        public void PropertyPaymentTest()
        {
            //Arrange
            var vm1 = new VendingController(true);
            int expectedInitialPayment = 0;
            int expectedChangedPayment = 20;

            var vm2 = new VendingController(false);

            //Act
            int actualInitialPayment = vm1.Payment;

            //set method is private, can only be set from other methods in the class
            bool goodInsert           = vm1.InsertMoney(20);
            int  actualChangedPayment = vm1.Payment;

            //item 0 costs more than available... expects Payment to be unchanged
            string purchaceResult = vm1.Purchase(0);//item 0 costs more than available... expects Payment to be unchanged
            int    actualPayment  = vm1.Payment;

            bool insertResult = vm1.InsertMoney(-100); //-100 is not in denomination, should not be accepted
            int  actualPaymentAfterFailedInsert = vm1.Payment;

            //Assert
            Assert.Equal(expectedInitialPayment, actualInitialPayment);
            Assert.True(goodInsert);
            Assert.Equal(expectedChangedPayment, actualChangedPayment);
            Assert.Equal(actualChangedPayment, actualPayment);
            Assert.Contains("More money needed", purchaceResult);
            Assert.Equal(actualChangedPayment, actualPaymentAfterFailedInsert);
            Assert.False(insertResult);
        }
Пример #3
0
        public void MultiplePurchasesTest()
        {
            //Arrange
            var vm = new VendingController(true);
            var expInitialMoney = 0;
            var expInsertMoney1 = 10;
            var expInsertMoney2 = 10;

            //Act
            var actInitialMoney = vm.Payment;

            vm.InsertMoney(10);
            var actInsertMoney1 = vm.Payment;

            vm.InsertMoney(-1);                            //should not be accepted since it is not in denominations
            var actInsertMoney2 = vm.Payment;              //money should remain the same

            string returnString          = vm.Purchase(1); //purchase item 1 with price 15 (more money needed)
            var    actPurchase1Remainder = vm.Payment;
            string returnString2         = vm.Purchase(7); //purchase item 7 with price 10
            var    actPurchase2Remainder = vm.Payment;

            //Assert
            Assert.Equal(expInitialMoney, actInitialMoney);
            Assert.Equal(expInsertMoney1, actInsertMoney1);
            Assert.Equal(expInsertMoney2, actInsertMoney2);
            Assert.Contains("More money needed", returnString);
            Assert.Equal(expInsertMoney2, actPurchase1Remainder);
            Assert.Contains("Water", returnString2);
            Assert.Equal(0, actPurchase2Remainder);
        }
Пример #4
0
        public void InsertMoneyTest(int amount, bool expectedResult, int expectedAmount)
        {
            //arrange
            var vm = new VendingController(false);

            //act
            bool insertResult = vm.InsertMoney(amount);

            //assert
            Assert.Equal(insertResult, expectedResult);
            Assert.Equal(expectedAmount, vm.Payment);
        }
Пример #5
0
        public void PurchaseTest(int availableMoney, int choice, string expectedResult)
        {
            //Arrange
            var vm = new VendingController(true);

            vm.InsertMoney(availableMoney);

            //Act
            string actualReturnString = vm.Purchase(choice);

            //Assert
            Assert.Contains(expectedResult, actualReturnString);
        }
Пример #6
0
        public void EndTransactionTest(int availableMoney, int choice, int expChange, string expResult)
        {
            //Arrange
            var vm = new VendingController(true);

            vm.InsertMoney(availableMoney);
            vm.Purchase(choice);
            int actualPayment = vm.Payment;
            //Act
            string actualResult = vm.EndTransaction();

            //Assert
            Assert.Equal(expChange, actualPayment);
            Assert.Contains(expResult, actualResult);
        }