diff --git a/application/module-mail/src/main/java/org/fuseri/modulemail/service/MailService.java b/application/module-mail/src/main/java/org/fuseri/modulemail/service/MailService.java index a2ee55394890d5c7d5d271005271f0ab76366299..06f5fb822a6b2b8757d8829456c38bdeb6bb0a8d 100644 --- a/application/module-mail/src/main/java/org/fuseri/modulemail/service/MailService.java +++ b/application/module-mail/src/main/java/org/fuseri/modulemail/service/MailService.java @@ -8,8 +8,12 @@ import org.springframework.mail.javamail.JavaMailSender; @Service public class MailService { + private final JavaMailSender emailSender; + @Autowired - private JavaMailSender emailSender; + public MailService(JavaMailSender emailSender) { + this.emailSender = emailSender; + } public String send(MailDto dto) { var message = new SimpleMailMessage(); diff --git a/application/module-mail/src/test/java/org/fuseri/modulemail/service/MailControllerTest.java b/application/module-mail/src/test/java/org/fuseri/modulemail/service/MailControllerTest.java new file mode 100644 index 0000000000000000000000000000000000000000..4105485fe7681bef0f4d9b91f1b0abec93356d78 --- /dev/null +++ b/application/module-mail/src/test/java/org/fuseri/modulemail/service/MailControllerTest.java @@ -0,0 +1,50 @@ +package org.fuseri.modulemail.service; + +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.ObjectMapper; +import org.fuseri.model.dto.mail.MailDto; +import org.junit.jupiter.api.Test; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.boot.test.mock.mockito.MockBean; +import org.springframework.http.MediaType; +import org.springframework.test.web.servlet.MockMvc; + +import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.*; +import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; + +@SpringBootTest +@AutoConfigureMockMvc +class MailControllerTest { + + @Autowired + private MockMvc mockMvc; + + @Test + void getEmail() throws Exception { + mockMvc.perform(get("/mail/{id}", 1)) + .andExpect(status().isOk()); + } + + @Test + void deleteMail() throws Exception { + mockMvc.perform(delete("/mail/delete/{id}", 1)) + .andExpect(status().isOk()); + } + + @Test + void sendMail() throws Exception { + // TODO use mocks + + mockMvc.perform(post("/mail") + .content(asJsonString(new MailDto("12marting02@gmail.com", "Hello"))) + .contentType(MediaType.APPLICATION_JSON)) + .andExpect(status().isOk()); + } + + private static String asJsonString(final Object obj) throws JsonProcessingException { + return new ObjectMapper().writeValueAsString(obj); + } + +} \ No newline at end of file