Skip to content

Commit

Permalink
Fix account type (#23)
Browse files Browse the repository at this point in the history
* Change Singleton to Transient

* Update account details model
Change to WhenAll for fetching account details

* Type is from account list and not specific account
  • Loading branch information
DanRJ authored Feb 20, 2025
1 parent c38899d commit bc37af1
Show file tree
Hide file tree
Showing 2 changed files with 35 additions and 3 deletions.
5 changes: 3 additions & 2 deletions src/Altinn.Dan.Plugin.Banking/Services/BankService.cs
Original file line number Diff line number Diff line change
Expand Up @@ -155,7 +155,7 @@ private async Task<BankInfo> GetAccountDetailsV2(Bank_v2.Bank_v2 bankClient, Acc
transactions = await ListTransactionsForAccount(bankClient, result, bank, accountInfoRequestId, fromDate, toDate);
}

var internalAccount = MapToInternalV2(result.Account!, transactions?.Transactions1, availableCredit - availableDebit, bookedCredit - bookedDebit);
var internalAccount = MapToInternalV2(result.Account!, account.Type, transactions?.Transactions1, availableCredit - availableDebit, bookedCredit - bookedDebit);
if (internalAccount.AccountDetail == null) continue;

bankInfo.Accounts.Add(internalAccount);
Expand Down Expand Up @@ -238,11 +238,12 @@ private async Task<Transactions> ListTransactionsForAccount(Bank_v2.Bank_v2 bank

private static AccountDtoV2 MapToInternalV2(
AccountDetail account,
AccountType? type,
ICollection<Transaction>? transactions,
decimal availableBalance,
decimal bookedBalance)
{
account.Type = account.Type;
account.Type = type;
account.AccountIdentifier = account.AccountIdentifier;
account.AccountReference = account.AccountReference;

Expand Down
33 changes: 32 additions & 1 deletion test/Altinn.Dan.Plugin.Banking.Test/Services/BankServiceTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -139,6 +139,38 @@ public async Task GetAccounts_GetAccountDetailsInternalServerError_AccountHasErr
Assert.IsTrue(result.BankAccounts.Single().Accounts.Any(x => x.HasErrors));
}

[TestMethod]
public async Task GetAccounts_TypeFromAccountList_AccountHasType()
{
// Arrange
var nin = "12345678901";
var fromDate = DateTime.Now.AddMonths(-1);
var toDate = DateTime.Now;
var bankName = "bank1";
var orgNumber = "789";
var bankList = GetDefaultBankConfig(bankName, orgNumber);

var accounts = GetDefaultAccounts(bankName, orgNumber);
var account1Details = GetAccountDetails(accounts.Accounts1!.ElementAt(0))!;
var account2Details = GetAccountDetails(accounts.Accounts1!.ElementAt(1))!;
FakeGetAccounts(accounts);
FakeGetAccountDetails(account1Details);
FakeGetAccountDetails(account2Details);

var bankService = new BankService(_fakeLogger, _fakeMpService, _fakeOptions);

// Act
var result = await bankService.GetAccounts(nin, bankList, fromDate, toDate, Guid.NewGuid(), false);

// Assert
Assert.IsNotNull(result);
Assert.AreEqual(1, result.BankAccounts.Count);
Assert.IsFalse(result.BankAccounts.Single().HasErrors);
Assert.AreEqual(2, result.BankAccounts.Single().Accounts.Count);
Assert.IsFalse(result.BankAccounts.Single().Accounts.Any(x => x.HasErrors));
Assert.IsTrue(result.BankAccounts.Single().Accounts.All(x => x.AccountDetail.Type == accounts.Accounts1!.ElementAt(0).Type));
}

private Dictionary<string, BankConfig> GetDefaultBankConfig(string bankName, string orgNumber)
{
return new Dictionary<string, BankConfig>
Expand Down Expand Up @@ -194,7 +226,6 @@ private void FakeGetAccounts(Accounts accounts, HttpStatusCode httpStatusCode =
PrimaryOwner = account.PrimaryOwner,
Status = account.Status,
Servicer = account.Servicer!,
Type = account.Type,
Balances = new List<Balance>
{
new Balance
Expand Down

0 comments on commit bc37af1

Please sign in to comment.