public void Inserted_money_goes_to_money_in_transaction() { var snackMachine = new Logic.SnackMachines.SnackMachine(); snackMachine.InsertMoney(Cent); snackMachine.InsertMoney(Dollar); snackMachine.MoneyInTransaction.Should().Be(1.01m); }
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 Return_money_empties_money_in_transaction() { var snackMachine = new Logic.SnackMachines.SnackMachine(); snackMachine.InsertMoney(Dollar); snackMachine.ReturnMonay(); snackMachine.MoneyInTransaction.Should().Be(0); }
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_insert_more_than_one_coint_or_note_at_a_time() { var snackMachine = new Logic.SnackMachines.SnackMachine(); var twoCent = Cent + Cent; Action action = () => { snackMachine.InsertMoney(twoCent); }; 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 SnackMachineViewModel(Logic.SnackMachines.SnackMachine snackMachine) { _snackMachine = snackMachine; _repository = new SnackMachineRepository(); InsertCentCommand = new Command(() => InsertMoney(Money.Cent)); InsertTenCentCommand = new Command(() => InsertMoney(Money.TenCent)); InsertQuarterCommand = new Command(() => InsertMoney(Money.Quarter)); InsertDollarCommand = new Command(() => InsertMoney(Money.Dollar)); InsertFiveDollarCommand = new Command(() => InsertMoney(Money.FiveDollar)); InsertTwentyDollarCommand = new Command(() => InsertMoney(Money.TwentyDollar)); ReturnMoneyCommand = new Command(() => ReturnMoney()); BuySnackCommand = new Command <string>(BuySnack); }
private void ShowSnackMachine(SnackMachineDto snackMachineDto) { Logic.SnackMachines.SnackMachine snackMachine = _snackMachineRepository.GetById(snackMachineDto.Id); if (snackMachine == null) { MessageBox.Show("Snack machine was not found", "Error", MessageBoxButton.OK, MessageBoxImage.Error); return; } _dialogService.ShowDialog(new SnackMachineViewModel(snackMachine)); RefreshAll(); }
public void Snack_machine_returns_money_with_highest_denomination_first() { var snackMachine = new Logic.SnackMachines.SnackMachine(); snackMachine.LoadMoney(Dollar); snackMachine.InsertMoney(Quarter); snackMachine.InsertMoney(Quarter); snackMachine.InsertMoney(Quarter); snackMachine.InsertMoney(Quarter); snackMachine.ReturnMonay(); snackMachine.MoneyInside.QuarterCount.Should().Be(4); }
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 UnloadCash(SnackMachineDto snackMachineDto) { Logic.SnackMachines.SnackMachine snackMachine = _snackMachineRepository.GetById(snackMachineDto.Id); if (snackMachine == null) { return; } HeadOffice.UnloadCashFromSnackMachine(snackMachine); _snackMachineRepository.Save(snackMachine); _headOfficeRepository.Save(HeadOffice); RefreshAll(); }