KevanSoon
Updated Springboot stuff
0d186b4
raw
history blame
2.77 kB
package com.cs102.attendance.controller;
import com.cs102.attendance.entity.TestConnection;
import com.cs102.attendance.repository.TestConnectionRepository;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.autoconfigure.web.servlet.WebMvcTest;
import org.springframework.test.context.bean.override.mockito.MockitoBean;
import org.springframework.http.MediaType;
import org.springframework.test.web.servlet.MockMvc;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.Mockito.when;
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.*;
@WebMvcTest(TestController.class)
public class TestControllerTest {
@Autowired
private MockMvc mockMvc;
@MockitoBean
private TestConnectionRepository testConnectionRepository;
@Test
public void testInsertTestDataWithDefaultMessage() throws Exception {
// Given
TestConnection mockSavedEntity = new TestConnection("Test message");
mockSavedEntity.setId(1L);
when(testConnectionRepository.save(any(TestConnection.class))).thenReturn(mockSavedEntity);
// When & Then
mockMvc.perform(post("/api/test/insert-test-data")
.contentType(MediaType.APPLICATION_JSON))
.andExpect(status().isOk())
.andExpect(jsonPath("$.id").value(1L))
.andExpect(jsonPath("$.message").value("Test message"));
}
@Test
public void testInsertTestDataWithCustomMessage() throws Exception {
// Given
String customMessage = "Custom test message";
TestConnection mockSavedEntity = new TestConnection(customMessage);
mockSavedEntity.setId(2L);
when(testConnectionRepository.save(any(TestConnection.class))).thenReturn(mockSavedEntity);
// When & Then
mockMvc.perform(post("/api/test/insert-test-data")
.param("message", customMessage)
.contentType(MediaType.APPLICATION_JSON))
.andExpect(status().isOk())
.andExpect(jsonPath("$.id").value(2L))
.andExpect(jsonPath("$.message").value(customMessage));
}
@Test
public void testInsertTestDataWithException() throws Exception {
// Given
when(testConnectionRepository.save(any(TestConnection.class)))
.thenThrow(new RuntimeException("Database error"));
// When & Then
mockMvc.perform(post("/api/test/insert-test-data")
.contentType(MediaType.APPLICATION_JSON))
.andExpect(status().isInternalServerError());
}
}