@@ -48,7 +48,7 @@ class CsvReportServiceTest {
4848
4949 @ Mock
5050 private MailService mailService ;
51-
51+
5252 @ Mock
5353 private MessageSource messageSource ;
5454
@@ -91,7 +91,7 @@ void testProcessCsvReports() throws IOException {
9191 Mockito .verify (mailService ).sendCsvReportMail (Mockito .any (File .class ), Mockito .any (AssertionServiceUser .class ), Mockito .eq ("report subject" ), Mockito .eq ("report content" ));
9292 Mockito .verify (storedFileService , Mockito .times (3 )).markAsProcessed (Mockito .any (StoredFile .class ));
9393 }
94-
94+
9595 @ Test
9696 void testProcessCsvReportsWithError () throws IOException {
9797 Mockito .when (csvReportRepository .findAllUnprocessed ()).thenReturn (Arrays .asList (getCsvReport (CsvReport .PERMISSION_LINKS_TYPE )));
@@ -104,13 +104,32 @@ void testProcessCsvReportsWithError() throws IOException {
104104 Mockito .verify (mailService , Mockito .never ()).sendCsvReportMail (Mockito .any (File .class ), Mockito .any (AssertionServiceUser .class ), Mockito .eq ("links subject" ), Mockito .eq ("links content" ));
105105 Mockito .verify (storedFileService , Mockito .never ()).markAsProcessed (Mockito .any (StoredFile .class ));
106106 Mockito .verify (csvReportRepository ).save (csvReportCaptor .capture ());
107-
107+
108108 CsvReport updated = csvReportCaptor .getValue ();
109109 assertThat (updated .getError ()).isNotNull ();
110110 assertThat (updated .getError ()).contains ("IOException" );
111111 assertThat (updated .getError ()).contains ("some error" );
112112 }
113113
114+ @ Test
115+ void testProcessCsvReportsWithUnexpectedError () throws IOException {
116+ Mockito .when (csvReportRepository .findAllUnprocessed ()).thenReturn (Arrays .asList (getCsvReport (CsvReport .PERMISSION_LINKS_TYPE )));
117+ Mockito .when (userService .getUserById (Mockito .eq ("user" ))).thenReturn (getDummyUser ());
118+ Mockito .when (permissionLinksCsvWriter .writeCsv (Mockito .eq ("salesforce" ))).thenThrow (new IllegalArgumentException ("some error" ));
119+
120+ csvReportService .processCsvReports ();
121+
122+ Mockito .verify (permissionLinksCsvWriter ).writeCsv (Mockito .eq ("salesforce" ));
123+ Mockito .verify (mailService , Mockito .never ()).sendCsvReportMail (Mockito .any (File .class ), Mockito .any (AssertionServiceUser .class ), Mockito .eq ("links subject" ), Mockito .eq ("links content" ));
124+ Mockito .verify (storedFileService , Mockito .never ()).markAsProcessed (Mockito .any (StoredFile .class ));
125+ Mockito .verify (csvReportRepository ).save (csvReportCaptor .capture ());
126+
127+ CsvReport updated = csvReportCaptor .getValue ();
128+ assertThat (updated .getError ()).isNotNull ();
129+ assertThat (updated .getError ()).contains ("IllegalArgumentException" );
130+ assertThat (updated .getError ()).contains ("some error" );
131+ }
132+
114133 @ Test
115134 void testStoreCsvReportRequest () {
116135 Mockito .when (csvReportRepository .save (Mockito .any (CsvReport .class ))).thenReturn (new CsvReport ());
0 commit comments