Skip to content
Snippets Groups Projects
Commit 32bcd6c4 authored by OZGCloud's avatar OZGCloud
Browse files

OZG-532 OZG-587 trigger event when mail sent

parent 5444c8d0
No related branches found
No related tags found
No related merge requests found
......@@ -4,6 +4,7 @@ import javax.mail.MessagingException;
import javax.mail.internet.MimeMessage;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.ApplicationEventPublisher;
import org.springframework.core.io.InputStreamSource;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.mail.javamail.MimeMessageHelper;
......@@ -17,6 +18,9 @@ class EMailService {
@Autowired
private JavaMailSender sender;
@Autowired
private ApplicationEventPublisher publisher;
public void sendEmail(MailSendRequest request) {
MimeMessage message = sender.createMimeMessage();
MimeMessageHelper helper = buildMultipartHelper(message);
......@@ -24,7 +28,7 @@ class EMailService {
writeEmail(helper, request);
addAttachments(helper, request);
sender.send(message);
send(message, request);
}
void writeEmail(MimeMessageHelper helper, MailSendRequest request) {
......@@ -57,4 +61,10 @@ class EMailService {
throw new TechnicalException("Error creating multipart message helper.", e);
}
}
void send(MimeMessage message, MailSendRequest request) {
sender.send(message);
publisher.publishEvent(new MailSendEvent(request));
}
}
package de.itvsh.ozg.mail;
import org.springframework.context.ApplicationEvent;
public class MailSendEvent extends ApplicationEvent {
private static final long serialVersionUID = 1L;
public MailSendEvent(MailSendRequest source) {
super(source);
}
@Override
public MailSendRequest getSource() {
return (MailSendRequest) super.getSource();
}
}
......@@ -12,18 +12,21 @@ import org.junit.jupiter.api.Test;
import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.mockito.Spy;
import org.springframework.context.ApplicationEventPublisher;
import org.springframework.core.io.InputStreamSource;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.mail.javamail.MimeMessageHelper;
class EMailServiceTest {
@Spy
@Spy // NOSONAR
@InjectMocks
private EMailService service;
@Mock
private JavaMailSender sender;
@Mock
private ApplicationEventPublisher publisher;
@Nested
class TestSendingEmail {
......@@ -32,7 +35,7 @@ class EMailServiceTest {
class TestSendEmail {
private MailSendRequest request = MailSendRequestTestFactory.create();
@Mock
@Mock // NOSONAR
private MimeMessage message;
@BeforeEach
......@@ -58,14 +61,14 @@ class EMailServiceTest {
void shouldSendMessage() {
service.sendEmail(request);
sender.send(message);
verify(service).send(message, request);
}
}
@Nested
class TestWriteEmail {
@Mock
@Mock // NOSONAR
private MimeMessageHelper helper;
private MailSendRequest request = MailSendRequestTestFactory.create();
......@@ -102,7 +105,7 @@ class EMailServiceTest {
@Nested
class TestAddAttachments {
@Mock
@Mock // NOSONAR
private MimeMessageHelper helper;
private MailSendRequest request = MailSendRequestTestFactory.create();
......@@ -115,5 +118,26 @@ class EMailServiceTest {
}
}
@Nested
class TestSend {
@Mock // NOSONAR
private MimeMessage message;
private MailSendRequest request = MailSendRequestTestFactory.create();
@Test
void shouldCallSender() {
service.send(message, request);
verify(sender).send(message);
}
@Test
void shouldTriggerEvent() {
service.send(message, request);
verify(publisher).publishEvent(any(MailSendEvent.class));
}
}
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment