From 06914c8a4f7aac9deef60c05d318765c4cd2a282 Mon Sep 17 00:00:00 2001 From: Ludy87 Date: Thu, 1 May 2025 12:19:08 +0200 Subject: [PATCH] Create EmailServiceTest.java --- .../security/mail/EmailServiceTest.java | 64 +++++++++++++++++++ 1 file changed, 64 insertions(+) create mode 100644 src/test/java/stirling/software/SPDF/config/security/mail/EmailServiceTest.java diff --git a/src/test/java/stirling/software/SPDF/config/security/mail/EmailServiceTest.java b/src/test/java/stirling/software/SPDF/config/security/mail/EmailServiceTest.java new file mode 100644 index 000000000..63c38e9c3 --- /dev/null +++ b/src/test/java/stirling/software/SPDF/config/security/mail/EmailServiceTest.java @@ -0,0 +1,64 @@ +package stirling.software.SPDF.config.security.mail; + +import static org.mockito.Mockito.*; + +import jakarta.mail.MessagingException; +import jakarta.mail.internet.MimeMessage; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; +import org.mockito.InjectMocks; +import org.mockito.Mock; +import org.mockito.junit.jupiter.MockitoExtension; +import org.springframework.mail.javamail.JavaMailSender; +import org.springframework.mail.javamail.MimeMessageHelper; +import org.springframework.web.multipart.MultipartFile; +import stirling.software.SPDF.model.ApplicationProperties; +import stirling.software.SPDF.model.api.Email; + +@ExtendWith(MockitoExtension.class) +public class EmailServiceTest { + + @Mock + private JavaMailSender mailSender; + + @Mock + private ApplicationProperties applicationProperties; + + @Mock + private ApplicationProperties.Mail mailProperties; + + @Mock + private MultipartFile fileInput; + + @InjectMocks + private EmailService emailService; + + @Test + void testSendEmailWithAttachment() throws MessagingException { + // Mock the values returned by ApplicationProperties + when(applicationProperties.getMail()).thenReturn(mailProperties); + when(mailProperties.getFrom()).thenReturn("no-reply@stirling-software.com"); + + // Create a mock Email object + Email email = new Email(); + email.setTo("test@example.com"); + email.setSubject("Test Email"); + email.setBody("This is a test email."); + email.setFileInput(fileInput); + + // Mock MultipartFile behavior + when(fileInput.getOriginalFilename()).thenReturn("testFile.txt"); + + // Mock MimeMessage + MimeMessage mimeMessage = mock(MimeMessage.class); + + // Configure mailSender to return the mocked MimeMessage + when(mailSender.createMimeMessage()).thenReturn(mimeMessage); + + // Call the service method + emailService.sendEmailWithAttachment(email); + + // Verify that the email was sent using mailSender + verify(mailSender).send(mimeMessage); + } +}