public void Withdraw_Overdraft()
        {
            var options = new DbContextOptionsBuilder <BankContext>()
                          .UseInMemoryDatabase(databaseName: "NegativeAmount")
                          .Options;

            using (var context = new BankContext(options))
            {
                var account = new Account
                {
                    AccountId = 2,
                    Frequency = "Daily",
                    Balance   = 500
                };

                context.Accounts.Add(account);
                context.SaveChanges();
            }

            using (var context = new BankContext(options))
            {
                var command = new WithdrawCommand {
                    AccountId = 2, Amount = 1000
                };
                var handler = new WithdrawHandler(context);

                Assert.ThrowsAsync <InsufficientFundsException>(() => handler.Handler(command));
            }
        }
Exemple #2
0
        public void Deposit_NegativeAmount()
        {
            var options = new DbContextOptionsBuilder <BankContext>()
                          .UseInMemoryDatabase(databaseName: "NegativeAmount")
                          .Options;

            using (var context = new BankContext(options))
            {
                var account = new Account
                {
                    AccountId = 3,
                    Frequency = "Daily"
                };

                context.Accounts.Add(account);
                context.SaveChanges();
            }

            using (var context = new BankContext(options))
            {
                var command = new WithdrawCommand()
                {
                    AccountId = 3, Amount = -50
                };
                var handler = new WithdrawHandler(context);

                Assert.ThrowsAsync <NegativeAmountException>(() => handler.Handler(command));
            }
        }
        public void Withdraw_NegativeAmount()
        {
            var options = new DbContextOptionsBuilder <BankContext>()
                          .UseInMemoryDatabase(databaseName: "NegativeAmount")
                          .Options;

            using (var context = new BankContext(options))
            {
                var command = new WithdrawCommand()
                {
                    AccountId = 1, Amount = -50
                };
                var handler = new WithdrawHandler(context);

                Assert.ThrowsAsync <NegativeAmountException>(() => handler.Handler(command));
            }
        }