public async Task GivenBankAccount_WhenTransactionsSet_ShouldSucceed()
    {
        BankAccountClient     accountClient     = TestApplication.GetBankAccountClient();
        BankTransactionClient transactionClient = TestApplication.GetBankTransactionClient();

        DocumentId documentId = (DocumentId)"test/bank/bankAccount2";

        await accountClient.Delete(documentId);

        BankAccount entry = new BankAccount
        {
            AccountId     = documentId.Path,
            AccountName   = "testBankAccount2",
            AccountNumber = Guid.NewGuid().ToString(),
        };

        await accountClient.Set(entry);

        TrxBalance?balanceTrx = await transactionClient.GetBalance(documentId);

        balanceTrx.Should().NotBeNull();
        balanceTrx !.Balance.Should().Be(0.0m);

        await ApplyTransaction(transactionClient, documentId : documentId, balance : 155.15m, 100.0m, 75.15m, -20.0m);
        await ApplyTransaction(transactionClient, documentId : documentId, balance : 240.30m, -10.0m, 75.15m, 20.0m);
        await ApplyTransaction(transactionClient, documentId : documentId, balance : 270.42m, -20.0m, 45.0m, 5.12m);

        BankAccount?readAccount = await accountClient.Get(documentId);

        readAccount.Should().NotBeNull();

        readAccount !.AccountId.Should().Be(entry.AccountId);
        readAccount.AccountName.Should().Be(entry.AccountName);
        readAccount.AccountNumber.Should().Be(entry.AccountNumber);
        readAccount.Transactions.Count.Should().Be(9);

        await accountClient.Delete(documentId);
    }