示例#1
0
        public void CannotWithdrawCashWithNonPositiveAmount(decimal amount)
        {
            CmdHandler.Handle(new CreateAccountCommand
            {
                AccountId  = AccountId,
                HolderName = "John Doe"
            });
            CmdHandler.Handle(new DepositCashCommand
            {
                AccountId = AccountId,
                Amount    = 1000m
            });
            CmdHandler.Handle(new SetDailyWireTransferLimitCommand
            {
                AccountId = AccountId,
                DailyWireTransferLimit = 1000m
            });

            var cmd = new WithdrawCashCommand()
            {
                AccountId = AccountId,
                Amount    = amount
            };
            dynamic msg = CmdHandler.Handle(cmd);

            Assert.IsType <Fail>(msg);
            Assert.Equal("Cannot withdraw a negative amount", msg.Exception.Message);
        }
        public void CannotExceedOverDraftLimit()
        {
            CmdHandler.Handle(new CreateAccountCommand
            {
                AccountId  = AccountId,
                HolderName = "John Doe"
            });

            CmdHandler.Handle(new SetDailyWireTransferLimitCommand
            {
                AccountId = AccountId,
                DailyWireTransferLimit = 1000m
            });
            CmdHandler.Handle(new SetOverDraftLimitCommand
            {
                AccountId      = AccountId,
                OverDraftLimit = 100m
            });

            var cmd = new WithdrawCashCommand()
            {
                AccountId = AccountId,
                Amount    = 101m
            };
            dynamic msg = CmdHandler.Handle(cmd);

            Assert.IsType <Fail>(msg);
            Assert.Equal("Account is blocked, you exceeded your overdraft limit", msg.Exception.Message);
        }
示例#3
0
        public void CanWithdrawCash()
        {
            CmdHandler.Handle(new CreateAccountCommand
            {
                AccountId  = AccountId,
                HolderName = "John Doe"
            });
            CmdHandler.Handle(new DepositCashCommand
            {
                AccountId = AccountId,
                Amount    = 1000m
            });
            CmdHandler.Handle(new SetDailyWireTransferLimitCommand
            {
                AccountId = AccountId,
                DailyWireTransferLimit = 1000m
            });

            var cmd = new WithdrawCashCommand()
            {
                AccountId = AccountId,
                Amount    = 100m
            };

            Assert.IsType <Success>(CmdHandler.Handle(cmd));
        }
示例#4
0
        public void CannotWithdrawFromBlockedAccount()
        {
            CmdHandler.Handle(new CreateAccountCommand
            {
                AccountId  = AccountId,
                HolderName = "John Doe"
            });
            CmdHandler.Handle(new DepositCashCommand
            {
                AccountId = AccountId,
                Amount    = 1000m
            });

            var cmd = new WithdrawCashCommand()
            {
                AccountId = AccountId,
                Amount    = 10m
            };

            CmdHandler.Handle(cmd);
            dynamic msg = CmdHandler.Handle(cmd);

            Assert.IsType <Fail>(msg);
            Assert.Equal("Account is blocked", msg.Exception.Message);
        }
        public void CannotExceedDailyWireTransferLimit()
        {
            CmdHandler.Handle(new CreateAccountCommand
            {
                AccountId  = AccountId,
                HolderName = "John Doe"
            });
            CmdHandler.Handle(new DepositCashCommand
            {
                AccountId = AccountId,
                Amount    = 1000m
            });
            CmdHandler.Handle(new SetDailyWireTransferLimitCommand
            {
                AccountId = AccountId,
                DailyWireTransferLimit = 100m
            });

            var cmd = new WithdrawCashCommand()
            {
                AccountId = AccountId,
                Amount    = 101m
            };
            dynamic msg = CmdHandler.Handle(cmd);

            Assert.IsType <Fail>(msg);
            Assert.StartsWith("Account is blocked, you only have", msg.Exception.Message);
        }
        public void CanCreateAccount()
        {
            var cmd = new CreateAccountCommand
            {
                AccountId  = AccountId,
                HolderName = "John Doe"
            };

            Assert.IsType <Success>(CmdHandler.Handle(cmd));
        }
        public void CannotDepositCheckIntoInvalidAccount()
        {
            var cmd = new DepositCheckCommand
            {
                AccountId = AccountId,
                Amount    = Convert.ToDecimal(100m)
            };
            dynamic msg = CmdHandler.Handle(cmd);

            Assert.IsType <Fail>(msg);
            Assert.Equal("No account with this ID exists", msg.Exception.Message);
        }
示例#8
0
        public void CannotWithdrawCashFromInvalidAccount()
        {
            var cmd = new WithdrawCashCommand()
            {
                AccountId = AccountId,
                Amount    = 200m
            };
            dynamic msg = CmdHandler.Handle(cmd);

            Assert.IsType <Fail>(msg);
            Assert.Equal("No account with this ID exists", msg.Exception.Message);
        }
        public void CannotCreateAccountWithWhiteSpaceName()
        {
            var cmd = new CreateAccountCommand()
            {
                AccountId  = AccountId,
                HolderName = " \t "
            };
            dynamic msg = CmdHandler.Handle(cmd);

            Assert.IsType <Fail>(msg);
            Assert.Equal("HolderName can't be empty", msg.Exception.Message);
        }
        public void CannotSetLimitOnInvalidAccount()
        {
            var cmd = new SetOverDraftLimitCommand
            {
                AccountId      = AccountId,
                OverDraftLimit = 100m
            };

            dynamic msg = CmdHandler.Handle(cmd);

            Assert.IsType <Fail>(msg);
            Assert.Equal("No account with this ID exists", msg.Exception.Message);
        }
        public void CannotCreateAccountWithSameId()
        {
            var cmd = new CreateAccountCommand
            {
                AccountId  = AccountId,
                HolderName = "John Doe"
            };

            CmdHandler.Handle(cmd);
            dynamic msg = CmdHandler.Handle(cmd);

            Assert.IsType <Fail>(msg);
            Assert.Equal("An account with this ID already exists", msg.Exception.Message);
        }
        public void CanDepositCheck(decimal amount)
        {
            CmdHandler.Handle(new CreateAccountCommand
            {
                AccountId  = AccountId,
                HolderName = "John Doe"
            });

            var cmd = new DepositCheckCommand
            {
                AccountId = AccountId,
                Amount    = amount
            };

            Assert.IsType <Success>(CmdHandler.Handle(cmd));
        }
        public void CanSetOverDraftLimit(decimal limit)
        {
            CmdHandler.Handle(new CreateAccountCommand
            {
                AccountId  = AccountId,
                HolderName = "John Doe"
            });

            var cmd = new SetOverDraftLimitCommand
            {
                AccountId      = AccountId,
                OverDraftLimit = limit
            };

            Assert.IsType <Success>(CmdHandler.Handle(cmd));
        }
        public void CannotDepositCheckWithNonPositiveAmount(decimal amount)
        {
            CmdHandler.Handle(new CreateAccountCommand
            {
                AccountId  = AccountId,
                HolderName = "John Doe"
            });

            var cmd = new DepositCheckCommand
            {
                AccountId = AccountId,
                Amount    = amount
            };
            dynamic msg = CmdHandler.Handle(cmd);

            Assert.IsType <Fail>(msg);
            Assert.Equal("Cannot deposit a negative amount", msg.Exception.Message);
        }
        public void CannotSetNegativeLimit(decimal limit)
        {
            CmdHandler.Handle(new CreateAccountCommand
            {
                AccountId  = AccountId,
                HolderName = "John Doe"
            });

            var cmd = new SetOverDraftLimitCommand
            {
                AccountId      = AccountId,
                OverDraftLimit = limit
            };
            dynamic msg = CmdHandler.Handle(cmd);

            Assert.IsType <Fail>(msg);
            Assert.Equal("Overdraft limit cannot be negative", msg.Exception.Message);
        }