Ejemplo n.º 1
0
        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));
        }
Ejemplo n.º 2
0
        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)
                );
        }
Ejemplo n.º 4
0
        private void Apply(ChequeDeposited @event)
        {
            TimeSpan ts = new TimeSpan(09, 00, 0);

            if (@event.TranscationDate >= DateTime.UtcNow.Date + ts)
            {
                Debt += @event.Amount;
            }
        }
Ejemplo n.º 5
0
        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)
                );
        }
Ejemplo n.º 6
0
        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)
                );
        }