From ff2ff5e39c3d3124fbea9ddb35804a4318f5e407 Mon Sep 17 00:00:00 2001 From: Romuald Lemesle Date: Wed, 23 Oct 2024 16:35:05 +0200 Subject: [PATCH] Mock JavaMailSender --- .../java/io/openbas/rest/InjectApiTest.java | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/openbas-api/src/test/java/io/openbas/rest/InjectApiTest.java b/openbas-api/src/test/java/io/openbas/rest/InjectApiTest.java index 63202b97c..7c121edae 100644 --- a/openbas-api/src/test/java/io/openbas/rest/InjectApiTest.java +++ b/openbas-api/src/test/java/io/openbas/rest/InjectApiTest.java @@ -5,7 +5,6 @@ import com.fasterxml.jackson.databind.node.ObjectNode; import com.jayway.jsonpath.JsonPath; import io.openbas.IntegrationTest; -import io.openbas.database.model.InjectorContract; import io.openbas.database.model.*; import io.openbas.database.repository.*; import io.openbas.rest.exercise.service.ExerciseService; @@ -16,10 +15,17 @@ import io.openbas.utils.mockUser.WithMockObserverUser; import io.openbas.utils.mockUser.WithMockPlannerUser; import jakarta.annotation.Resource; +import jakarta.mail.internet.MimeMessage; import jakarta.servlet.ServletException; import org.junit.jupiter.api.*; +import org.junit.jupiter.api.extension.ExtendWith; +import org.mockito.ArgumentMatchers; +import org.mockito.junit.jupiter.MockitoExtension; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.mock.mockito.MockBean; import org.springframework.http.MediaType; +import org.springframework.mail.SimpleMailMessage; +import org.springframework.mail.javamail.JavaMailSender; import org.springframework.mock.web.MockMultipartFile; import org.springframework.test.web.servlet.MockMvc; import org.springframework.util.ResourceUtils; @@ -40,11 +46,13 @@ import static io.openbas.utils.fixtures.InjectFixture.getInjectForEmailContract; import static org.junit.jupiter.api.Assertions.*; import static org.junit.jupiter.api.TestInstance.Lifecycle.PER_CLASS; +import static org.mockito.Mockito.*; import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.*; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; @TestMethodOrder(MethodOrderer.OrderAnnotation.class) @TestInstance(PER_CLASS) +@ExtendWith(MockitoExtension.class) class InjectApiTest extends IntegrationTest { static Exercise EXERCISE; @@ -80,6 +88,8 @@ class InjectApiTest extends IntegrationTest { private UserRepository userRepository; @Resource private ObjectMapper objectMapper; + @MockBean + private JavaMailSender javaMailSender; @BeforeAll void beforeAll() { @@ -374,6 +384,11 @@ void executeEmailInjectForExerciseTest() throws Exception { "application/xlsx", in.readAllBytes()); + // Mock the behavior of JavaMailSender + doNothing().when(javaMailSender).send(ArgumentMatchers.any(SimpleMailMessage.class)); + MimeMessage mimeMessage = mock(MimeMessage.class); + when(javaMailSender.createMimeMessage()).thenReturn(mimeMessage); + // -- EXECUTE -- String response = mvc.perform(multipart(EXERCISE_URI + "/" + EXERCISE.getId() + "/inject") .file(inputJson)