public async Task CanUnblockAccountOnNextBusinessDay() { var accCreatedEv = new AccountCreated(CorrelatedMessage.NewRoot()) { AccountId = _accountId, Name = "Jake Sanders" }; var accBlockedEv = new AccountBlocked(CorrelatedMessage.NewRoot()) { AccountId = _accountId }; var depositedEv = new ChequeDeposited(CorrelatedMessage.NewRoot()) { AccountId = _accountId, Amount = 1000m }; var cmd = new StartNewBusinessDay() { AccountId = _accountId }; var accUnblockedEv = new AccountUnblocked(CorrelatedMessage.NewRoot()) { AccountId = _accountId }; await _runner.Run( def => def .Given(accCreatedEv, accBlockedEv, depositedEv) .When(cmd) .Then(accUnblockedEv)); }
public async Task CannotUnblockAccountAfterDepositCheque() { var accCreatedEv = new AccountCreated(CorrelatedMessage.NewRoot()) { AccountId = _accountId, Name = "Jake Sanders" }; var accBlockedEv = new AccountBlocked(CorrelatedMessage.NewRoot()) { AccountId = _accountId }; var cmd = new DepositCheque() { AccountId = _accountId, Amount = 1000 }; var amountSetEv = new ChequeDeposited(CorrelatedMessage.NewRoot()) { AccountId = cmd.AccountId, Amount = cmd.Amount }; await _runner.Run( def => def .Given(accCreatedEv, accBlockedEv) .When(cmd) .Then(amountSetEv)); }
public async Task CanDepositChequeInToValidAccount() { decimal depositeAmount = 5000; DateTime depositeDate = System.DateTime.Now; var accountCreated = new AccountCreated(CorrelatedMessage.NewRoot()) { AccountId = _accountId, AccountHolderName = "Tushar" }; var cmd = new DepositCheque { AccountId = _accountId, DepositAmount = depositeAmount, DepositDate = depositeDate }; var ev = new ChequeDeposited(cmd) { AccountId = _accountId, DepositAmount = depositeAmount, DepositDate = depositeDate }; await _runner.Run( def => def.Given(accountCreated).When(cmd).Then(ev) ); }
private void Apply(ChequeDeposited @event) { TimeSpan ts = new TimeSpan(09, 00, 0); if (@event.TranscationDate >= DateTime.UtcNow.Date + ts) { Debt += @event.Amount; } }
public async Task CanDepositCheque(double amount) { var created = new AccountCreated(CorrelatedMessage.NewRoot()) { AccountId = _accountId, AccountHolderName = "Parth Sheth" }; var cmd = new DepositCheque { AccountId = _accountId, Amount = Convert.ToDecimal(amount) }; var limitSet = new ChequeDeposited(cmd) { AccountId = _accountId, Amount = cmd.Amount }; await _runner.Run( def => def.Given(created).When(cmd).Then(limitSet) ); }
public async Task CanDepositCheque(decimal amount) { var accCreatedEv = new AccountCreated(CorrelatedMessage.NewRoot()) { AccountId = _accountId, Name = "Jake Sanders" }; var cmd = new DepositCheque() { AccountId = _accountId, Amount = amount }; var amountSetEv = new ChequeDeposited(CorrelatedMessage.NewRoot()) { AccountId = cmd.AccountId, Amount = cmd.Amount }; await _runner.Run( def => def.Given(accCreatedEv).When(cmd).Then(amountSetEv) ); }