33using System . Linq ;
44using System . Text ;
55using System . Threading . Tasks ;
6+ using MediatR ;
67
78namespace FileProcessor . BusinessLogic . Tests
89{
@@ -76,6 +77,7 @@ public FileRequestHandlerTests()
7677 SecurityServiceClient . Object ,
7778 fileFormatHandlerResolver ,
7879 FileSystem ) ;
80+ Logger . Initialise ( NullLogger . Instance ) ;
7981 }
8082
8183 [ Fact ]
@@ -207,8 +209,11 @@ public void FileRequestHandler_SafaricomTopupRequest_RequestIsHandled()
207209 {
208210 await this . FileRequestHandler . Handle ( safaricomTopupRequest , CancellationToken . None ) ;
209211 } ) ;
212+ this . VerifyFileProcessing ( "home/txnproc/bulkfiles/safaricom/processed" ) ;
210213 }
211214
215+
216+
212217 [ Fact ]
213218 public void FileRequestHandler_SafaricomTopupRequest_FileAggregateNotCreated_RequestIsHandled ( )
214219 {
@@ -225,10 +230,11 @@ public void FileRequestHandler_SafaricomTopupRequest_FileAggregateNotCreated_Req
225230 SafaricomTopupRequest safaricomTopupRequest =
226231 new SafaricomTopupRequest ( TestData . FileId , TestData . FilePathWithName , TestData . FileProfileId ) ;
227232
228- Should . NotThrow ( async ( ) =>
233+ Should . Throw < InvalidOperationException > ( async ( ) =>
229234 {
230235 await this . FileRequestHandler . Handle ( safaricomTopupRequest , CancellationToken . None ) ;
231236 } ) ;
237+ this . VerifyFileProcessing ( "home/txnproc/bulkfiles/safaricom/failed" ) ;
232238 }
233239
234240 [ Fact ]
@@ -291,12 +297,13 @@ public async Task FileRequestHandler_SafaricomTopupRequest_ProcessedDirectoryNot
291297 SafaricomTopupRequest safaricomTopupRequest =
292298 new SafaricomTopupRequest ( TestData . FileId , TestData . FilePathWithName , TestData . FileProfileId ) ;
293299
294- Should . Throw < DirectoryNotFoundException > ( async ( ) =>
300+ Should . NotThrow ( async ( ) =>
295301 {
296302 await this . FileRequestHandler . Handle ( safaricomTopupRequest , CancellationToken . None ) ;
297303 } ) ;
304+ this . VerifyFileProcessing ( "home/txnproc/bulkfiles/safaricom/processed" ) ;
298305 }
299-
306+
300307 [ Fact ]
301308 public async Task FileRequestHandler_SafaricomTopupRequest_FailedDirectoryNotFound_RequestIsHandled ( )
302309 {
@@ -311,11 +318,12 @@ public async Task FileRequestHandler_SafaricomTopupRequest_FailedDirectoryNotFou
311318
312319 SafaricomTopupRequest safaricomTopupRequest =
313320 new SafaricomTopupRequest ( TestData . FileId , TestData . FilePathWithName , TestData . FileProfileId ) ;
314-
315- Should . Throw < DirectoryNotFoundException > ( async ( ) =>
321+
322+ Should . NotThrow ( async ( ) =>
316323 {
317324 await this . FileRequestHandler . Handle ( safaricomTopupRequest , CancellationToken . None ) ;
318325 } ) ;
326+ this . VerifyFileProcessing ( "home/txnproc/bulkfiles/safaricom/processed" ) ;
319327 }
320328
321329 [ Fact ]
@@ -340,6 +348,7 @@ public void FileRequestHandler_SafaricomTopupRequest_FileIsEmpty_RequestIsHandle
340348 } ) ;
341349
342350 this . FileAggregateRepository . Verify ( f => f . SaveChanges ( It . IsAny < FileAggregate > ( ) , It . IsAny < CancellationToken > ( ) ) , Times . Never ) ;
351+ this . VerifyFileProcessing ( "home/txnproc/bulkfiles/safaricom/processed" ) ;
343352 }
344353
345354 [ Theory ]
@@ -793,16 +802,19 @@ public void FileRequestHandler_VoucherRequest_RequestIsHandled()
793802 this . FileSystem . AddDirectory ( "home/txnproc/bulkfiles/voucher/inprogress" ) ;
794803 this . FileSystem . AddDirectory ( "home/txnproc/bulkfiles/voucher/processed" ) ;
795804 this . FileSystem . AddDirectory ( "home/txnproc/bulkfiles/voucher/failed" ) ;
796-
805+
797806 VoucherRequest voucherRequest =
798807 new VoucherRequest ( TestData . FileId , TestData . FilePathWithName , TestData . FileProfileId ) ;
799808
800809 Should . NotThrow ( async ( ) =>
801810 {
802811 await this . FileRequestHandler . Handle ( voucherRequest , CancellationToken . None ) ;
803812 } ) ;
813+ this . VerifyFileProcessing ( "home/txnproc/bulkfiles/voucher/processed" ) ;
804814 }
805815
816+
817+
806818 [ Fact ]
807819 public void FileRequestHandler_VoucherRequest_FileAggregateNotCreated_RequestIsHandled ( )
808820 {
@@ -819,10 +831,11 @@ public void FileRequestHandler_VoucherRequest_FileAggregateNotCreated_RequestIsH
819831 VoucherRequest voucherRequest =
820832 new VoucherRequest ( TestData . FileId , TestData . FilePathWithName , TestData . FileProfileId ) ;
821833
822- Should . NotThrow ( async ( ) =>
834+ Should . Throw < InvalidOperationException > ( async ( ) =>
823835 {
824836 await this . FileRequestHandler . Handle ( voucherRequest , CancellationToken . None ) ;
825837 } ) ;
838+ this . VerifyFileProcessing ( "home/txnproc/bulkfiles/voucher/failed" ) ;
826839 }
827840
828841 [ Fact ]
@@ -869,7 +882,7 @@ public async Task FileRequestHandler_VoucherRequest_NoFileProfiles_RequestIsHand
869882 await this . FileRequestHandler . Handle ( voucherRequest , CancellationToken . None ) ;
870883 } ) ;
871884 }
872-
885+
873886 [ Fact ]
874887 public async Task FileRequestHandler_VoucherRequest_ProcessedDirectoryNotFound_RequestIsHandled ( )
875888 {
@@ -882,15 +895,14 @@ public async Task FileRequestHandler_VoucherRequest_ProcessedDirectoryNotFound_R
882895 this . FileSystem . AddDirectory ( "home/txnproc/bulkfiles/voucher/inprogress" ) ;
883896 this . FileSystem . AddDirectory ( "home/txnproc/bulkfiles/voucher/failed" ) ;
884897
885- Logger . Initialise ( NullLogger . Instance ) ;
886-
887898 VoucherRequest voucherRequest =
888899 new VoucherRequest ( TestData . FileId , TestData . FilePathWithName , TestData . FileProfileId ) ;
889900
890- Should . Throw < DirectoryNotFoundException > ( async ( ) =>
901+ Should . NotThrow ( async ( ) =>
891902 {
892903 await this . FileRequestHandler . Handle ( voucherRequest , CancellationToken . None ) ;
893904 } ) ;
905+ this . VerifyFileProcessing ( "home/txnproc/bulkfiles/voucher/processed" ) ;
894906 }
895907
896908 [ Fact ]
@@ -904,21 +916,22 @@ public async Task FileRequestHandler_VoucherRequest_FailedDirectoryNotFound_Requ
904916
905917 this . FileSystem . AddDirectory ( "home/txnproc/bulkfiles/voucher/inprogress" ) ;
906918 this . FileSystem . AddDirectory ( "home/txnproc/bulkfiles/voucher/processed" ) ;
907-
919+
908920 VoucherRequest voucherRequest =
909921 new VoucherRequest ( TestData . FileId , TestData . FilePathWithName , TestData . FileProfileId ) ;
910922
911- Should . Throw < DirectoryNotFoundException > ( async ( ) =>
923+ Should . NotThrow ( async ( ) =>
912924 {
913925 await this . FileRequestHandler . Handle ( voucherRequest , CancellationToken . None ) ;
914926 } ) ;
927+ this . VerifyFileProcessing ( "home/txnproc/bulkfiles/voucher/processed" ) ;
915928 }
916929
917930 [ Fact ]
918931 public void FileRequestHandler_VoucherRequest_FileIsEmpty_RequestIsHandled ( )
919932 {
920933 this . FileProcessorManager . Setup ( f => f . GetFileProfile ( It . IsAny < Guid > ( ) , It . IsAny < CancellationToken > ( ) ) ) . ReturnsAsync ( TestData . FileProfileVoucher ) ;
921-
934+
922935 this . FileAggregateRepository . Setup ( f => f . GetLatestVersion ( It . IsAny < Guid > ( ) , It . IsAny < CancellationToken > ( ) ) ) . ReturnsAsync ( TestData . GetCreatedFileAggregate ) ;
923936
924937 this . FileSystem . AddFile ( TestData . FilePathWithName , new MockFileData ( String . Empty ) ) ;
@@ -936,6 +949,13 @@ public void FileRequestHandler_VoucherRequest_FileIsEmpty_RequestIsHandled()
936949 } ) ;
937950
938951 this . FileAggregateRepository . Verify ( f => f . SaveChanges ( It . IsAny < FileAggregate > ( ) , It . IsAny < CancellationToken > ( ) ) , Times . Never ) ;
952+ this . VerifyFileProcessing ( "home/txnproc/bulkfiles/voucher/processed" ) ;
953+ }
954+
955+ private void VerifyFileProcessing ( String filePath )
956+ {
957+ IDirectoryInfo directoryInfo = this . FileSystem . DirectoryInfo . FromDirectoryName ( filePath ) ;
958+ directoryInfo . GetFiles ( "*.*" ) . Length . ShouldBe ( 1 ) ;
939959 }
940960 }
941961}
0 commit comments