Files
ArtisanConnectBackend/src/test/java/_11/asktpk/artisanconnectbackend/EmailControllerTest.java
2025-06-11 18:22:59 +02:00

73 lines
2.8 KiB
Java

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());
}
}