예제 #1
0
        public async Task Handle_BalanceDecreasing_AfterSendingFromThisAccount()
        {
            // Arrange
            var ivanAccountCommand = new AddAccountCommand {
                UserId = Guid.NewGuid(), Name = "Ivan"
            };
            var ivanAccountId = await new AddAccountCommandHandler(_context).Handle(ivanAccountCommand, CancellationToken.None);

            var petrAccountCommand = new AddAccountCommand {
                UserId = Guid.NewGuid(), Name = "Petr"
            };
            var petrAccountId = await new AddAccountCommandHandler(_context).Handle(petrAccountCommand, CancellationToken.None);

            var transaction = new AddTransactionCommand {
                Amount = 13, CreditAccount = ivanAccountId, DebitAccount = petrAccountId
            };

            await new AddTransactionCommandHandler(_context).Handle(transaction, CancellationToken.None);

            // Act
            var handler = new AccountBalanceQueryHandler(_context);
            var balance = await handler.Handle(new AccountBalanceQuery { AccountId = ivanAccountId }, CancellationToken.None);

            // Assert
            Check.That(487).Equals(balance.Balance);
        }
예제 #2
0
        public async Task Handle_Returns500_ForInitialBalance()
        {
            // Arrange
            var ivanAccountCommand = new AddAccountCommand {
                UserId = Guid.NewGuid(), Name = "Ivan"
            };
            var ivanAccountId = await new AddAccountCommandHandler(_context).Handle(ivanAccountCommand, CancellationToken.None);

            // Act
            var handler = new AccountBalanceQueryHandler(_context);
            var balance = await handler.Handle(new AccountBalanceQuery { AccountId = ivanAccountId }, CancellationToken.None);

            // Assert
            Check.That(500).Equals(balance.Balance);
        }