コード例 #1
0
            public void Should_return_transactionresult_on_successfulldeposit()
            {
                // Arrange
                var accountSummary = new AccountSummaryEntity()
                {
                    AccountNumber = 1253667,
                    Balance       = 55000,
                    Currency      = "INR"
                };

                var accountTransaction = new AccountTransaction()
                {
                    AccountNumber   = 1253667,
                    TransactionType = Types.TransactionType.Deposit,
                    Amount          = new Types.Money(1000, Types.Currency.INR)
                };

                AccountTransactionRepositoryMock
                .Setup(i => i.Create(It.IsAny <AccountTransactionEntity>(), It.IsAny <AccountSummaryEntity>()))
                .Returns(Task.CompletedTask);

                AccountSummaryRepositoryMock
                .Setup(i => i.Read(It.IsAny <int>()))
                .ReturnsAsync(accountSummary);

                // Act
                var result = TransactionServiceUnderTest.Deposit(accountTransaction).Result;

                // Assert
                Assert.Equal(accountSummary.Balance, result.Balance.Amount);
            }
コード例 #2
0
            public void Should_throw_transactionexception__when_transactiondetails_are_invalid()
            {
                // Arrange
                var accountSummary = new AccountSummaryEntity()
                {
                    AccountNumber = 1253667,
                    Balance       = 55000,
                    Currency      = "INR"
                };

                var accountTransaction = new AccountTransaction()
                {
                    AccountNumber   = 1253667,
                    TransactionType = Types.TransactionType.Withdrawal,
                    Amount          = new Types.Money(65000, Types.Currency.INR)
                };

                AccountTransactionRepositoryMock
                .Setup(i => i.Create(It.IsAny <AccountTransactionEntity>(), It.IsAny <AccountSummaryEntity>()))
                .Returns(Task.CompletedTask);

                AccountSummaryRepositoryMock
                .Setup(i => i.Read(It.IsAny <int>()))
                .ReturnsAsync(accountSummary);

                // Act
                var result = TransactionServiceUnderTest.Withdraw(accountTransaction);

                // Assert
                Assert.ThrowsAsync <InsufficientBalanceException>(async() => await result);
            }
コード例 #3
0
            public void Should_throw_transactionexception_when_accountnumber_notexist()
            {
                // Arange
                int accountNumber = 29489324;
                AccountSummaryEntity accountSummary = null;

                AccountSummaryRepositoryMock
                .Setup(i => i.Read(It.IsAny <int>()))
                .ReturnsAsync(accountSummary);

                // Act
                var result = TransactionServiceUnderTest.Balance(accountNumber);

                // Assert
                Assert.ThrowsAsync <InvalidAccountNumberException>(async() => await result);
            }
コード例 #4
0
            public void Should_return_accountbalance_when_accountnumber_exist()
            {
                // Arange
                int accountNumber  = 29489324;
                var accountSummary = new AccountSummaryEntity()
                {
                    AccountNumber = accountNumber,
                    Balance       = 45000,
                    Currency      = "INR"
                };

                AccountSummaryRepositoryMock
                .Setup(i => i.Read(It.IsAny <int>()))
                .ReturnsAsync(accountSummary);

                // Act
                var result = TransactionServiceUnderTest.Balance(accountNumber).Result;

                // Assert
                Assert.Equal(accountSummary.Balance, result.Balance.Amount);
            }