Browse Source

System razem z plikiem zawierającym to co trzeba poprawić

Adam Matuszewski 1 năm trước cách đây
mục cha
commit
5de487aa79

+ 25 - 0
NotificationSystem2/src/test/java/pl/dmcs/NotificationServiceTest.java

@@ -5,6 +5,7 @@ import org.junit.jupiter.api.Test;
 import java.util.Arrays;
 import java.util.List;
 
+import static org.junit.jupiter.api.Assertions.assertThrows;
 import static org.mockito.Mockito.*;
 
 public class NotificationServiceTest {
@@ -54,4 +55,28 @@ public class NotificationServiceTest {
             System.out.println("Content: " + expectedContent);
         }
     }
+    @Test
+    public void testSendNotificationsWithException() throws Exception {
+        MailService mailServiceMock = mock(MailService.class);
+        NotificationService notificationService = new NotificationServiceImpl(mailServiceMock);
+
+        User user = new User("Jan", "Kowalski", "jan.kowalski@example.com");
+        List<String> recipients = Arrays.asList("recipient1@example.com", "recipient2@example.com");
+        String subject = "Testowy temat";
+        String content = "Treść wiadomości";
+
+        doThrow(new RuntimeException("Email sending failed"))
+                .doNothing()
+                .when(mailServiceMock).sendEmail(anyString(), eq("recipient1@example.com"), anyString(), anyString());
+
+        assertThrows(RuntimeException.class, () -> {
+            notificationService.sendNotifications(user, recipients, subject, content);
+        });
+
+        String expectedSubject = "Powiadomienie: Testowy temat";
+        String expectedContent = "Powiadomienie od Jan Kowalski\nTreść wiadomości";
+        verify(mailServiceMock).sendEmail(user.getEmail(), "recipient1@example.com", expectedSubject, expectedContent);
+        verify(mailServiceMock, never()).sendEmail(user.getEmail(), "recipient2@example.com", expectedSubject, expectedContent);
+    }
+
 }

+ 9 - 0
NotificationSystem2/src/test/resources/DoPoprawy

@@ -0,0 +1,9 @@
+1. Drugi test na innych danych na sztywno.
+2. Odrębne testy dla każdej klasy.
+3. Test dla DataLoader.
+4. Test typu end to end.
+5. Wyrzucanie konkretnego wyjątku (To już na 5, więc można odpuścic).
+6. Sprawdzić jaka wiadomość została wysłana
+7. W przypadku niepowodzenie wysłania maila dla jednego odbiorcy, pozostali powinni otrzymać maile, sprawdzić ilość i treści.
+8. Ewentualnie można usunąć serwis dla Notification (zawrzeć to jako zwykłą klasę)
+9. Przeprowadzenie refaktoryzacji.