diff --git a/EventStoreProjections/tests/MerchantBalanceAggregatorTests.js b/EventStoreProjections/tests/MerchantBalanceAggregatorTests.js index d748f44..954eec4 100644 --- a/EventStoreProjections/tests/MerchantBalanceAggregatorTests.js +++ b/EventStoreProjections/tests/MerchantBalanceAggregatorTests.js @@ -24,6 +24,9 @@ test('Projection Can Handle Merchant Events', var automaticDepositMadeEvent = testData.getAutomaticDepositMadeEvent(estateId, merchantId, depositDateTime, depositAmount); + var withdrawalMadeEvent = + testData.getWithdrawalMadeEvent(estateId, merchantId, depositDateTime, depositAmount); + projection.processEvent( 'MerchantAggregate-' + merchantId.replace(/-/gi, ""), merchantCreatedEvent.eventType, @@ -39,8 +42,13 @@ test('Projection Can Handle Merchant Events', automaticDepositMadeEvent.eventType, automaticDepositMadeEvent.data); + projection.processEvent( + 'MerchantAggregate-' + merchantId.replace(/-/gi, ""), + withdrawalMadeEvent.eventType, + withdrawalMadeEvent.data); + var events = projection.emittedEvents; - t.equal(events.length, 3); + t.equal(events.length, 4); t.end(); }); diff --git a/EventStoreProjections/tests/TestData.js b/EventStoreProjections/tests/TestData.js index 3538d22..732eecd 100644 --- a/EventStoreProjections/tests/TestData.js +++ b/EventStoreProjections/tests/TestData.js @@ -198,6 +198,22 @@ module.exports = { } }, + getWithdrawalMadeEvent: function (estateId, merchantId, withdrawalDateTime, withdrawalAmount) { + return { + eventType: 'WithdrawalMadeEvent', + data: { + "amount": withdrawalAmount, + "withdrawalDateTime": withdrawalDateTime, + "withdrawalId": "ff106578-8495-afe1-1e50-6889d76065a6", + "estateId": estateId, + "merchantId": merchantId + }, + metadata: { + }, + eventId: "4772BD21-BB70-4F46-9360-F9A6FE04C640" + } + }, + getTransactionHasStartedEvent: function(estateId, merchantId, transactionId, transactionAmount, transactionType) { return { diff --git a/NugetPackage/obj/NugetPackage.csproj.nuget.dgspec.json b/NugetPackage/obj/NugetPackage.csproj.nuget.dgspec.json index 414ecbf..87e810c 100644 --- a/NugetPackage/obj/NugetPackage.csproj.nuget.dgspec.json +++ b/NugetPackage/obj/NugetPackage.csproj.nuget.dgspec.json @@ -63,7 +63,7 @@ "privateAssets": "all" } }, - "runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\7.0.100-rc.2.22477.23\\RuntimeIdentifierGraph.json" + "runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\7.0.100\\RuntimeIdentifierGraph.json" } } } diff --git a/NugetPackage/obj/NugetPackage.csproj.nuget.g.props b/NugetPackage/obj/NugetPackage.csproj.nuget.g.props index 35c5861..b567679 100644 --- a/NugetPackage/obj/NugetPackage.csproj.nuget.g.props +++ b/NugetPackage/obj/NugetPackage.csproj.nuget.g.props @@ -7,7 +7,7 @@ $(UserProfile)\.nuget\packages\ C:\Users\stuar\.nuget\packages\;C:\Program Files (x86)\Microsoft Visual Studio\Shared\NuGetPackages;C:\Program Files\dotnet\sdk\NuGetFallbackFolder PackageReference - 6.4.0 + 6.5.0 diff --git a/NugetPackage/obj/project.assets.json b/NugetPackage/obj/project.assets.json index 9aa4546..68d64d8 100644 --- a/NugetPackage/obj/project.assets.json +++ b/NugetPackage/obj/project.assets.json @@ -71,7 +71,7 @@ "privateAssets": "all" } }, - "runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\7.0.100-rc.2.22477.23\\RuntimeIdentifierGraph.json" + "runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\7.0.100\\RuntimeIdentifierGraph.json" } } } diff --git a/NugetPackage/obj/project.nuget.cache b/NugetPackage/obj/project.nuget.cache index b348e77..6a64853 100644 --- a/NugetPackage/obj/project.nuget.cache +++ b/NugetPackage/obj/project.nuget.cache @@ -1,6 +1,6 @@ { "version": 2, - "dgSpecHash": "zKSi6wid/WSnBVdoC/xTn5nYXu7whOdnAbYDX2c907cmEVYMfmCreIiWizMZeX0Heo5FKLmFLarJl29Q9A9qJg==", + "dgSpecHash": "7AutP7BXMcuvvQ1EOT2ftQPHtpFOmPoQR5NLE0CkKpPNqaySPU6lJwsWisU7bGIh/mPhalKYHsGOc3JHGhSVNw==", "success": true, "projectFilePath": "C:\\Projects\\TransactionProcessing\\EventStoreProjections\\NugetPackage\\NugetPackage.csproj", "expectedPackageFiles": [], diff --git a/NugetPackage/projections/continuous/MerchantBalanceAggregator.js b/NugetPackage/projections/continuous/MerchantBalanceAggregator.js index 4cbc140..5422bc7 100644 --- a/NugetPackage/projections/continuous/MerchantBalanceAggregator.js +++ b/NugetPackage/projections/continuous/MerchantBalanceAggregator.js @@ -25,20 +25,30 @@ getMerchantId = function (e) { return e.data.merchantId; }; +isEventSupported = function (e) { + if (e.eventType == "MerchantCreatedEvent" || + e.eventType === "ManualDepositMadeEvent" || + e.eventType === "AutomaticDepositMadeEvent" || + e.eventType === "TransactionHasStartedEvent" || + e.eventType === "TransactionHasBeenCompletedEvent" || + e.eventType === "MerchantFeeAddedToTransactionEvent" || + e.eventType === "WithdrawalMadeEvent") { + return true; + } + return false; +} + fromAll() .when({ $any: function (s, e) { if (isValidEvent(e)) { var merchantId = getMerchantId(e); if (merchantId !== null) { - if (e.eventType == "MerchantCreatedEvent" || - e.eventType === "ManualDepositMadeEvent" || - e.eventType === "AutomaticDepositMadeEvent" || - e.eventType === "TransactionHasStartedEvent" || - e.eventType === "TransactionHasBeenCompletedEvent" || - e.eventType === "MerchantFeeAddedToTransactionEvent") { - var streamName = "MerchantBalanceArchive-" + merchantId.replace(/-/gi, ""); - linkTo(streamName, e); + { + if (isEventSupported(e)) { + var streamName = "MerchantBalanceArchive-" + merchantId.replace(/-/gi, ""); + linkTo(streamName, e); + } } } }