public void Inserted_money_goes_to_money_in_transaction() { var snackMachine = new SnackMachine(); snackMachine.InsertMoney(Cent); snackMachine.InsertMoney(Dollar); snackMachine.MoneyInTransaction.Should().Be(1.01m); }
public void Cannot_insert_more_than_one_coin_or_note_at_a_time() { var snackMachine = new SnackMachine(); Money twoCent = Cent + Cent; Action action = () => snackMachine.InsertMoney(twoCent); action.ShouldThrow<InvalidOperationException>(); }
public void Return_money_empties_money_in_transaction() { var snackMachine = new SnackMachine(); snackMachine.InsertMoney(Dollar); snackMachine.ReturnMoney(); snackMachine.MoneyInTransaction.Should().Be(0m); }
public void Cannot_make_purchase_if_not_enough_money_inserted() { var snackMachine = new SnackMachine(); snackMachine.LoadSnacks(1, new SnackPile(Chocolate, 1, 2m)); snackMachine.InsertMoney(Dollar); Action action = () => snackMachine.BuySnack(1); action.ShouldThrow<InvalidOperationException>(); }
public void Cannot_buy_snack_if_not_enough_change() { var snackMachine = new SnackMachine(); snackMachine.LoadSnacks(1, new SnackPile(Snack.Chocolate, 1, 0.5m)); snackMachine.InsertMoney(Money.Dollar); Action action = () => snackMachine.BuySnack(1); action.ShouldThrow<InvalidOperationException>(); }
public void BuySnack_trades_inserted_money_for_a_snack() { var snackMachine = new SnackMachine(); snackMachine.LoadSnacks(1, new SnackPile(Snack.Chocolate, 10, 1m)); snackMachine.InsertMoney(Money.Dollar); snackMachine.BuySnack(1); snackMachine.GetSnackPile(1).Quantity.Should().Be(9); }
public void BuySnack_trades_inserted_money_for_a_snack() { var snackMachine = new SnackMachine(); snackMachine.LoadSnacks(1, new SnackPile(Chocolate, 10, 1m)); snackMachine.InsertMoney(Dollar); snackMachine.BuySnack(1); snackMachine.MoneyInTransaction.Should().Be(0m); snackMachine.MoneyInside.Amount.Should().Be(1m); snackMachine.GetSnackPile(1).Quantity.Should().Be(9); }
public void After_purchase_change_is_returned() { var snackMachine = new SnackMachine(); snackMachine.LoadSnacks(1, new SnackPile(Snack.Chocolate, 1, 0.5m)); snackMachine.LoadMoney(Money.TenCent * 10); // Use the overloaded * operator! snackMachine.InsertMoney(Money.Dollar); snackMachine.BuySnack(1); snackMachine.MoneyInside.Amount.Should().Be(1.5m); snackMachine.MoneyInTransaction.Should().Be(0m); }
public void Snack_machine_returns_money_with_highest_denomination_first() { SnackMachine snackMachine = new SnackMachine(); snackMachine.LoadMoney(Dollar); snackMachine.InsertMoney(Quarter); snackMachine.InsertMoney(Quarter); snackMachine.InsertMoney(Quarter); snackMachine.InsertMoney(Quarter); snackMachine.ReturnMoney(); snackMachine.MoneyInside.QuarterCount.Should().Be(4); snackMachine.MoneyInside.OneDollarCount.Should().Be(0); }