1+ require ( '../../NugetPackage/projections/continuous/MerchantBalanceAggregator.js' ) ;
2+ var projection = require ( '@transactionprocessing/esprojection-testing-framework' ) ;
3+ var testData = require ( './TestData.js' ) ;
4+ var describe = require ( 'tape-describe' ) ;
5+ var test = describe ( 'Merchant Balance Aggregator Tests' ) ;
6+
7+ test ( 'Projection Can Handle Merchant Events' ,
8+ t =>
9+ {
10+ projection . initialize ( ) ;
11+
12+ var estateId = '3bf2dab2-86d6-44e3-bcf8-51bec65cf8bc' ;
13+ var merchantId = 'c4c33d75-f011-40e4-9d97-1f428ab563d8' ;
14+ var merchantName = 'Test Merchant 1' ;
15+
16+ // Set up the merchant events
17+ var merchantCreatedEvent = testData . getMerchantCreatedEvent ( estateId , merchantId , merchantName ) ;
18+
19+ var depositDateTime = '2020-05-30T06:21:31.356Z' ;
20+ var depositAmount = 1000.00 ;
21+ var manualDepositMadeEvent =
22+ testData . getManualDepositMadeEvent ( estateId , merchantId , depositDateTime , depositAmount ) ;
23+
24+ var automaticDepositMadeEvent =
25+ testData . getAutomaticDepositMadeEvent ( estateId , merchantId , depositDateTime , depositAmount ) ;
26+
27+ projection . processEvent (
28+ 'MerchantAggregate-' + merchantId . replace ( / - / gi, "" ) ,
29+ merchantCreatedEvent . eventType ,
30+ merchantCreatedEvent . data ) ;
31+
32+ projection . processEvent (
33+ 'MerchantAggregate-' + merchantId . replace ( / - / gi, "" ) ,
34+ manualDepositMadeEvent . eventType ,
35+ manualDepositMadeEvent . data ) ;
36+
37+ projection . processEvent (
38+ 'MerchantAggregate-' + merchantId . replace ( / - / gi, "" ) ,
39+ automaticDepositMadeEvent . eventType ,
40+ automaticDepositMadeEvent . data ) ;
41+
42+ var events = projection . emittedEvents ;
43+ t . equal ( events . length , 3 ) ;
44+ t . end ( ) ;
45+ } ) ;
46+
47+ test ( 'Projection Can Handle Transaction Events' ,
48+ t =>
49+ {
50+ projection . initialize ( ) ;
51+
52+ var estateId = '3bf2dab2-86d6-44e3-bcf8-51bec65cf8bc' ;
53+ var merchantId = 'c4c33d75-f011-40e4-9d97-1f428ab563d8' ;
54+ var transactionId = 'c4c33d75-f011-40e4-9d97-1f428ab563d8' ;
55+ var transactionAmount = 100.00 ;
56+ var transactionType = 'Sale' ;
57+
58+ var transactionHasStartedEvent = testData . getTransactionHasStartedEvent ( estateId ,
59+ merchantId ,
60+ transactionId ,
61+ transactionAmount ,
62+ transactionType ) ;
63+
64+ var transactionHasBeenCompletedEvent =
65+ testData . getTransactionHasBeenCompletedEvent ( estateId , merchantId , transactionId , true ) ;
66+
67+ var calculatedValue = 5.00 ;
68+ var eventCreatedDateTime = "2020-05-16T07:47:51.6617562+00:00" ;
69+ var merchantFeeAddedToTransactionEvent = testData . getMerchantFeeAddedToTransactionEvent ( estateId ,
70+ merchantId ,
71+ transactionId ,
72+ calculatedValue ,
73+ eventCreatedDateTime ) ;
74+
75+ projection . processEvent (
76+ 'TransactionAggregate-' + transactionId . replace ( / - / gi, "" ) ,
77+ transactionHasStartedEvent . eventType ,
78+ transactionHasStartedEvent . data ) ;
79+
80+ projection . processEvent (
81+ 'TransactionAggregate-' + transactionId . replace ( / - / gi, "" ) ,
82+ transactionHasBeenCompletedEvent . eventType ,
83+ transactionHasBeenCompletedEvent . data ) ;
84+
85+ projection . processEvent (
86+ 'TransactionAggregate-' + transactionId . replace ( / - / gi, "" ) ,
87+ merchantFeeAddedToTransactionEvent . eventType ,
88+ merchantFeeAddedToTransactionEvent . data ) ;
89+
90+ var events = projection . emittedEvents ;
91+ t . equal ( events . length , 3 ) ;
92+ t . end ( ) ;
93+ } ) ;
0 commit comments