From 5addf381274126c019fe89d9e68ab76a094b4194 Mon Sep 17 00:00:00 2001 From: Kuba Date: Wed, 11 Jun 2025 18:22:59 +0200 Subject: [PATCH] EmailControllerTest added --- .../EmailControllerTest.java | 73 +++++++++++++++++++ 1 file changed, 73 insertions(+) create mode 100644 src/test/java/_11/asktpk/artisanconnectbackend/EmailControllerTest.java diff --git a/src/test/java/_11/asktpk/artisanconnectbackend/EmailControllerTest.java b/src/test/java/_11/asktpk/artisanconnectbackend/EmailControllerTest.java new file mode 100644 index 0000000..9348add --- /dev/null +++ b/src/test/java/_11/asktpk/artisanconnectbackend/EmailControllerTest.java @@ -0,0 +1,73 @@ +package _11.asktpk.artisanconnectbackend; + +import _11.asktpk.artisanconnectbackend.security.JwtUtil; +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.http.MediaType; +import org.springframework.test.web.servlet.MockMvc; +import org.springframework.test.web.servlet.MvcResult; + +import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post; +import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; +import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content; + +@SpringBootTest +@AutoConfigureMockMvc +class EmailControllerIntegrationTest { + + @Autowired + private MockMvc mockMvc; + + @Autowired + private JwtUtil jwtUtil; + + @Test + void testSendEmailWithValidAuthToken() throws Exception { + System.out.println("Starting testSendEmailWithValidAuthToken"); + String jsonPayload = """ + { + "to": "test@example.com", + "subject": "Test Subject", + "body": "Test Body" + } + """; + System.out.println("Sending JSON payload: " + jsonPayload); + + String jwtToken = "Bearer " + jwtUtil.generateToken("test@example.com", "USER", 1L); + + MvcResult result = mockMvc.perform(post("/api/v1/email/send") + .header("Authorization", jwtToken) + .contentType(MediaType.APPLICATION_JSON) + .content(jsonPayload)) + .andExpect(status().isOk()) + .andExpect(content().string("Email wysłany pomyślnie")) + .andReturn(); + + System.out.println("Response status: " + result.getResponse().getStatus()); + System.out.println("Response content: " + result.getResponse().getContentAsString()); + } + + @Test + void testSendEmailWithoutAuthToken() throws Exception { + System.out.println("Starting testSendEmailWithoutAuthToken"); + String jsonPayload = """ + { + "to": "test@example.com", + "subject": "Test Subject", + "body": "Test Body" + } + """; + System.out.println("Sending JSON payload: " + jsonPayload); + + MvcResult result = mockMvc.perform(post("/api/v1/email/send") + .contentType(MediaType.APPLICATION_JSON) + .content(jsonPayload)) + .andExpect(status().isForbidden()) + .andReturn(); + + System.out.println("Response status: " + result.getResponse().getStatus()); + System.out.println("Response content: " + result.getResponse().getContentAsString()); + } +} \ No newline at end of file