Spaces:
Build error
Build error
da-autolabel-dev
/
src
/test
/java
/com
/dalab
/autolabel
/controller
/LabelingConfigControllerTest.java
| package com.dalab.autolabel.controller; | |
| import static org.mockito.ArgumentMatchers.*; | |
| import static org.mockito.Mockito.*; | |
| import static org.springframework.security.test.web.servlet.request.SecurityMockMvcRequestPostProcessors.*; | |
| import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.*; | |
| import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.*; | |
| import org.junit.jupiter.api.BeforeEach; | |
| 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.boot.test.mock.mockito.MockBean; | |
| import org.springframework.http.MediaType; | |
| import org.springframework.security.test.context.support.WithMockUser; | |
| import org.springframework.test.web.servlet.MockMvc; | |
| import com.dalab.autolabel.client.rest.dto.MLConfigRequest; | |
| import com.dalab.autolabel.service.IMLConfigService; | |
| import com.fasterxml.jackson.databind.ObjectMapper; | |
| class LabelingConfigControllerTest { | |
| private MockMvc mockMvc; | |
| private IMLConfigService mlConfigService; | |
| private ObjectMapper objectMapper; | |
| private MLConfigRequest mlConfigRequest; | |
| void setUp() { | |
| mlConfigRequest = MLConfigRequest.builder() | |
| .providerType("TEST_PROVIDER") | |
| .modelName("test-model") | |
| .baseUrl("http://localhost/test") | |
| .apiKey("test-key") | |
| .build(); | |
| } | |
| void updateMlConfiguration_AdminRole_ShouldSucceed() throws Exception { | |
| doNothing().when(mlConfigService).updateMlConfig(any(MLConfigRequest.class)); | |
| mockMvc.perform(put("/api/v1/labeling/config/ml") | |
| .with(csrf()) // Add CSRF token for PUT requests if CSRF is enabled | |
| .contentType(MediaType.APPLICATION_JSON) | |
| .content(objectMapper.writeValueAsString(mlConfigRequest))) | |
| .andExpect(status().isOk()); | |
| } | |
| // Non-admin role | |
| void updateMlConfiguration_UserRole_ShouldBeForbidden() throws Exception { | |
| mockMvc.perform(put("/api/v1/labeling/config/ml") | |
| .with(csrf()) | |
| .contentType(MediaType.APPLICATION_JSON) | |
| .content(objectMapper.writeValueAsString(mlConfigRequest))) | |
| .andExpect(status().isForbidden()); | |
| } | |
| void getMlConfiguration_AdminRole_ShouldReturnConfig() throws Exception { | |
| when(mlConfigService.getMlConfig()).thenReturn(mlConfigRequest); | |
| mockMvc.perform(get("/api/v1/labeling/config/ml")) | |
| .andExpect(status().isOk()) | |
| .andExpect(jsonPath("$.providerType").value("TEST_PROVIDER")) | |
| .andExpect(jsonPath("$.modelName").value("test-model")); | |
| } | |
| void getMlConfiguration_AdminRole_NoConfigFound_ShouldReturnNotFound() throws Exception { | |
| when(mlConfigService.getMlConfig()).thenReturn(null); | |
| mockMvc.perform(get("/api/v1/labeling/config/ml")) | |
| .andExpect(status().isNotFound()); | |
| } | |
| // Non-admin role | |
| void getMlConfiguration_UserRole_ShouldBeForbidden() throws Exception { | |
| mockMvc.perform(get("/api/v1/labeling/config/ml")) | |
| .andExpect(status().isForbidden()); | |
| } | |
| } |