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); }
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); }
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); }
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); }
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); }
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); }