예제 #1
0
        public void MakeChangeTests()
        {
            //Arrange
            CurrencyRepo changeOneQuatersOnHalfDollar, changeTwoDollars, changeOneDollarOneHalfDoller,
                         changeOneDimeOnePenny, changeOneNickelOnePenny, changeFourPennies;

            CurrencyRepo repo = new CurrencyRepo();

            //Act
            changeTwoDollars             = (CurrencyRepo)repo.MakeChange(2.0);
            changeOneDollarOneHalfDoller = (CurrencyRepo)repo.MakeChange(1.5);
            changeOneQuatersOnHalfDollar = (CurrencyRepo)repo.MakeChange(.75);

            changeOneDimeOnePenny   = (CurrencyRepo)repo.MakeChange(.11);
            changeOneNickelOnePenny = (CurrencyRepo)repo.MakeChange(.06);
            changeFourPennies       = (CurrencyRepo)repo.MakeChange(.04);

            //Assert
            Assert.AreEqual(changeTwoDollars.Coins.Count, 2);
            Assert.AreEqual(changeTwoDollars.Coins[0].GetType(), new DollarCoin().GetType());
            Assert.AreEqual(changeTwoDollars.Coins[1].GetType(), new DollarCoin().GetType());

            Assert.AreEqual(changeOneDimeOnePenny.Coins.Count, 2);
            Assert.AreEqual(changeOneDimeOnePenny.Coins[0].GetType(), new Dime().GetType());
            Assert.AreEqual(changeOneDimeOnePenny.Coins[1].GetType(), new Penny().GetType());

            Assert.AreEqual(changeOneNickelOnePenny.Coins.Count, 2);
            Assert.AreEqual(changeOneNickelOnePenny.Coins[0].GetType(), new Nickel().GetType());
            Assert.AreEqual(changeOneNickelOnePenny.Coins[1].GetType(), new Penny().GetType());


            Assert.AreEqual(changeFourPennies.Coins.Count, 4);
            Assert.AreEqual(changeFourPennies.Coins[0].GetType(), new Penny().GetType());
            Assert.AreEqual(changeFourPennies.Coins[1].GetType(), new Penny().GetType());
            Assert.AreEqual(changeFourPennies.Coins[2].GetType(), new Penny().GetType());
            Assert.AreEqual(changeFourPennies.Coins[3].GetType(), new Penny().GetType());
        }
 public void ExecuteCommandMakeChange(object parameter)
 {
     makeChangeRepo = (CurrencyRepo)makeChangeRepo.MakeChange(Amount);//need to figure out how to pass that in!
     RaisePropertyChanged("CoinsInRepo");
 }