feat: implement transaction handling and add integration tests for Plaid transaction handlers
This commit is contained in:
@@ -13,43 +13,12 @@ public class PlaidRemovedTransactionHandlerTests : IntegrationTest
|
||||
[Fact]
|
||||
public async Task HandleAsync_WhenCalled_ItShouldRemoveTheCorrectTransactions()
|
||||
{
|
||||
var user = User.From(
|
||||
"username",
|
||||
"hashedPassword",
|
||||
EncryptedDataKey.From("keyUsed", "encryptedKey")
|
||||
);
|
||||
|
||||
var institutionMetadata = PlaidInstitutionMetadata.From(
|
||||
"plaidId",
|
||||
"plaidName",
|
||||
"encryptedAccessToken",
|
||||
"itemId"
|
||||
);
|
||||
var institution = Institution.From("institutionName", institutionMetadata);
|
||||
user.AddInstitution(institution);
|
||||
|
||||
var accountMetadata = PlaidAccountMetadata.From("plaidId", "plaidName");
|
||||
var account = Account.From("some account", accountMetadata);
|
||||
user.AddAccount(account);
|
||||
institution.AddAccount(account);
|
||||
|
||||
var transactionMetadata = PlaidTransactionMetadata.From("plaidId");
|
||||
var transaction = Transaction.From(
|
||||
"merchantName",
|
||||
"description",
|
||||
100,
|
||||
DateTimeOffset.UtcNow,
|
||||
transactionMetadata
|
||||
);
|
||||
user.AddTransaction(transaction);
|
||||
account.AddTransaction(transaction);
|
||||
|
||||
await AppDbContext.AddAsync(user, TestContext.Current.CancellationToken);
|
||||
await AppDbContext.SaveChangesAsync(TestContext.Current.CancellationToken);
|
||||
var user = await CreateTestUserAsync();
|
||||
var testTransaction = user.Transactions.First();
|
||||
|
||||
var transactionToRemove = new Going.Plaid.Entity.RemovedTransaction()
|
||||
{
|
||||
TransactionId = transactionMetadata.PlaidId,
|
||||
TransactionId = ((PlaidTransactionMetadata)testTransaction.Metadata!).PlaidId,
|
||||
};
|
||||
|
||||
var result = await _sut.HandleAsync([transactionToRemove], TestContext.Current.CancellationToken);
|
||||
|
||||
Reference in New Issue
Block a user