Exemplo n.º 1
0
        private static void SetupSnackMachine(ISnackMachineRepository snackMachineRepository)
        {
            var snackMachine = new SnackMachine() { Id = 1 };
            snackMachine.LoadSnacks(1, new SnackPile(Snack.Chocolate, 10, 3m));
            snackMachine.LoadSnacks(2, new SnackPile(Snack.Soda, 15, 2m));
            snackMachine.LoadSnacks(3, new SnackPile(Snack.Gum, 20, 1m));

            snackMachine.LoadMoney(new Money(10, 10, 10, 10, 10, 10));
            snackMachineRepository.Save(snackMachine);
        }
        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);
        }