@@ -233,6 +233,94 @@ describe('Merchant Balance Projection Tests', function () {
233233 chai . expect ( merchant . balance ) . equal ( initialBalance ) ;
234234 } )
235235
236+ it ( 'Merchant doesnt exist' , function ( ) {
237+ projection . initialize ( ) ;
238+
239+ var estateId = '3bf2dab2-86d6-44e3-bcf8-51bec65cf8bc' ;
240+ var merchantId = 'c4c33d75-f011-40e4-9d97-1f428ab563d8' ;
241+
242+ var depositDateTime = '2020-05-30T06:21:31.356Z' ;
243+ var depositAmount = 1000.00 ;
244+ var manualDepositMadeEvent =
245+ testData . getManualDepositMadeEvent ( estateId , merchantId , depositDateTime , depositAmount ) ;
246+
247+ projection . processEvent ( "MerchantDepositListAggregate-c4c33d75-f011-40e4-9d97-1f428ab563d8" ,
248+ manualDepositMadeEvent . eventType ,
249+ manualDepositMadeEvent . data
250+ ) ;
251+
252+ var projectionState = projection . getState ( ) ;
253+
254+ var merchant = projectionState . merchant ;
255+ chai . expect ( merchant ) . equal ( null ) ;
256+
257+ var depositDateTime = '2020-05-30T06:21:31.356Z' ;
258+ var depositAmount = 1000.00 ;
259+ var automaticDepositMadeEvent =
260+ testData . getAutomaticDepositMadeEvent ( estateId , merchantId , depositDateTime , depositAmount ) ;
261+
262+ projection . processEvent ( "MerchantDepositListAggregate-c4c33d75-f011-40e4-9d97-1f428ab563d8" ,
263+ automaticDepositMadeEvent . eventType ,
264+ automaticDepositMadeEvent . data
265+ ) ;
266+
267+ var projectionState = projection . getState ( ) ;
268+
269+ var merchant = projectionState . merchant ;
270+ chai . expect ( merchant ) . equal ( null ) ;
271+
272+ var transactionId = 'c4c33d75-f011-40e4-9d97-1f428ab563d8' ;
273+ var transactionAmount = 10.00 ;
274+ var transactionCompletedDateTime = '2023-11-01'
275+ var transactionHasBeenCompletedEvent =
276+ testData . getTransactionHasBeenCompletedEvent ( estateId , merchantId , transactionId , true , transactionAmount , transactionCompletedDateTime ) ;
277+
278+ projection . processEvent ( "TransactionAggregate-c4c33d75-f011-40e4-9d97-1f428ab563d8" ,
279+ transactionHasBeenCompletedEvent . eventType ,
280+ transactionHasBeenCompletedEvent . data
281+ ) ;
282+
283+ var projectionState = projection . getState ( ) ;
284+
285+ var merchant = projectionState . merchant ;
286+ chai . expect ( merchant ) . equal ( null ) ;
287+
288+ var transactionId = 'c4c33d75-f011-40e4-9d97-1f428ab563d8' ;
289+ var calculatedValue = 5.00 ;
290+ var eventCreatedDateTime = "2020-05-16T07:47:51.6617562+00:00" ;
291+ var settledMerchantFeeAddedToTransactionEvent = testData . getSettledMerchantFeeAddedToTransactionEvent ( estateId ,
292+ merchantId ,
293+ transactionId ,
294+ calculatedValue ,
295+ eventCreatedDateTime ) ;
296+
297+ projection . processEvent (
298+ 'TransactionAggregate-c4c33d75-f011-40e4-9d97-1f428ab563d8' ,
299+ settledMerchantFeeAddedToTransactionEvent . eventType ,
300+ settledMerchantFeeAddedToTransactionEvent . data ) ;
301+
302+ var projectionState = projection . getState ( ) ;
303+
304+ var merchant = projectionState . merchant ;
305+ chai . expect ( merchant ) . equal ( null ) ;
306+
307+ var withdrawalDateTime = "2020-05-16T07:47:51.6617562+00:00" ;
308+ var withdrawalAmount = 50.00 ;
309+
310+ var withdrawalMadeEvent =
311+ testData . getWithdrawalMadeEvent ( estateId , merchantId , withdrawalDateTime , withdrawalAmount ) ;
312+
313+ projection . processEvent (
314+ 'MerchantAggregate-c4c33d75-f011-40e4-9d97-1f428ab563d8' ,
315+ withdrawalMadeEvent . eventType ,
316+ withdrawalMadeEvent . data ) ;
317+
318+ var projectionState = projection . getState ( ) ;
319+
320+ var merchant = projectionState . merchant ;
321+ chai . expect ( merchant ) . equal ( null ) ;
322+ } )
323+
236324 it ( 'Settled Merchant Fee increments balance' , function ( ) {
237325 projection . initialize ( ) ;
238326
0 commit comments