public void Cannot_make_purchase_when_there_is_no_snacks() { var snackMachine = new Logic.SnackMachines.SnackMachine(); snackMachine.InsertMoney(Dollar); Action action = () => snackMachine.BuySnack(1); action.Should().Throw <InvalidOperationException>(); }
public void Cannot_make_purchase_if_not_enought_money_inserted() { var snackMachine = new Logic.SnackMachines.SnackMachine(); snackMachine.LoadSnacks(1, new SnackPile(Chocolate, 2m, 10)); snackMachine.InsertMoney(Dollar); Action action = () => snackMachine.BuySnack(1); action.Should().Throw <InvalidOperationException>(); }
public void Cannot_buy_snack_if_not_enough_change() { var snackMachine = new Logic.SnackMachines.SnackMachine(); snackMachine.LoadSnacks(1, new SnackPile(Chocolate, 0.5m, 10)); snackMachine.InsertMoney(Dollar); Action action = () => snackMachine.BuySnack(1); action.Should().Throw <InvalidOperationException>(); }
public void After_purchase_change_is_returned() { var snackMachine = new Logic.SnackMachines.SnackMachine(); snackMachine.LoadSnacks(1, new SnackPile(Chocolate, 0.5m, 10)); snackMachine.LoadMoney(TenCent * 10); snackMachine.InsertMoney(Dollar); snackMachine.BuySnack(1); snackMachine.MoneyInside.Amount.Should().Be(1.5m); snackMachine.MoneyInTransaction.Should().Be(0m); }
public void BuySnack_trades_inserted_money_for_a_snack() { var snackMachine = new Logic.SnackMachines.SnackMachine(); snackMachine.LoadSnacks(1, new SnackPile(Chocolate, 1m, 10)); snackMachine.InsertMoney(Dollar); snackMachine.InsertMoney(Dollar); snackMachine.BuySnack(1); snackMachine.MoneyInTransaction.Should().Be(0); snackMachine.MoneyInside.Amount.Should().Be(1m); snackMachine.GetSnackPile(1).Quantity.Should().Be(9); }
private void BuySnack(string positionString) { int position = int.Parse(positionString); string error = _snackMachine.CanBuySnack(position); if (error != string.Empty) { NotifyClient(error); return; } _snackMachine.BuySnack(position); _repository.Save(_snackMachine); NotifyClient("You have bought a snack"); }