Exemple #1
0
        public async Task GetAccountDetailsHandlesInvalidAccountNumber()
        {
            const int    statusCodeInvalidAccountNumber   = 400;
            const long   errorCodeInvalidAccountNumber    = 1001124;
            const string errorMessageInvalidAccountNumber =
                "Account number \'{account_number}\' does not fit format ^[\\\\d]{8}$";

            var accountsApi = Substitute.For <IAccountsApi>();

            accountsApi.ApiV1AccountsByAccountNumberGetAsync("")
            .ThrowsForAnyArgs(
                SwaggerApiException(
                    statusCodeInvalidAccountNumber,
                    errorCodeInvalidAccountNumber,
                    errorMessageInvalidAccountNumber
                    )
                );

            var connection = new BizfiBankConnection(accountsApi, null);

            var result = await connection.GetAccountDetails("0");

            Assert.That(result.Success, Is.False);
            Assert.That(result.Result, Is.Null);
            Assert.That(result.Error, Is.Not.Null);

            Assert.That(result.StatusCode, Is.EqualTo(statusCodeInvalidAccountNumber));
            Assert.That(result.Error.ErrorCode, Is.EqualTo(errorCodeInvalidAccountNumber));
        }
Exemple #2
0
        public async Task GetAccountDetailsReturnsData()
        {
            const string accountNumber = "00112233";

            var remoteAccountData = new AccountViewModel
            {
                AccountNumber    = accountNumber,
                AccountName      = "Current Account",
                SortCode         = "079046",
                Balance          = 350,
                AvailableBalance = 400,
                Overdraft        = 50
            };

            var accountsApi = Substitute.For <IAccountsApi>();

            accountsApi.ApiV1AccountsByAccountNumberGetAsync(accountNumber)
            .Returns(remoteAccountData);

            var connection = new BizfiBankConnection(accountsApi, null);

            var result = await connection.GetAccountDetails(accountNumber);

            Assert.That(result.Success, Is.True);
            Assert.That(result.Result, Is.Not.Null);
            Assert.That(result.Error, Is.Null);

            Assert.That(result.Result.AccountNumber, Is.EqualTo(accountNumber));
            Assert.That(result.Result.AccountName, Is.EqualTo(remoteAccountData.AccountName));
            Assert.That(result.Result.SortCode, Is.EqualTo(remoteAccountData.SortCode));
            Assert.That(result.Result.CurrentBalance, Is.EqualTo(remoteAccountData.Balance));
            Assert.That(result.Result.OverdraftLimit, Is.EqualTo(remoteAccountData.Overdraft));
        }
Exemple #3
0
        public async Task GetAccountDetailsHandlesAccountNotFound()
        {
            const int    statusCodeNotFound   = 404;
            const long   errorCodeNotFound    = 1001123;
            const string errorMessageNotFound = "Unable to find account with account number \'{account_number}\'";

            var accountsApi = Substitute.For <IAccountsApi>();

            accountsApi.ApiV1AccountsByAccountNumberGetAsync("")
            .ThrowsForAnyArgs(
                SwaggerApiException(
                    statusCodeNotFound,
                    errorCodeNotFound,
                    errorMessageNotFound
                    )
                );

            var connection = new BizfiBankConnection(accountsApi, null);

            var result = await connection.GetAccountDetails("12345678");

            Assert.That(result.Success, Is.False);
            Assert.That(result.Result, Is.Null);
            Assert.That(result.Error, Is.Not.Null);

            Assert.That(result.StatusCode, Is.EqualTo(statusCodeNotFound));
            Assert.That(result.Error.ErrorCode, Is.EqualTo(errorCodeNotFound));
        }
Exemple #4
0
        public async Task GetAccountDetailsHandlesServerError()
        {
            const int statusCodeServerError = (int)HttpStatusCode.InternalServerError;

            var accountsApi = Substitute.For <IAccountsApi>();

            accountsApi.ApiV1AccountsByAccountNumberGetAsync("")
            .ThrowsForAnyArgs(
                new Exception()
                );

            var connection = new BizfiBankConnection(accountsApi, null);

            var result = await connection.GetAccountDetails("12345678");

            Assert.That(result.Success, Is.False);
            Assert.That(result.Result, Is.Null);
            Assert.That(result.Error, Is.Not.Null);

            Assert.That(result.StatusCode, Is.EqualTo(statusCodeServerError));
            Assert.That(result.Error.ErrorCode, Is.Null);
        }