File size: 2,779 Bytes
442299c
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
package com.dalab.discovery.client.rest;

import static org.mockito.Mockito.*;
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.AutoConfigureMockMvc;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.boot.test.mock.mockito.MockBean;
import org.springframework.context.annotation.Import;
import org.springframework.security.test.context.support.WithMockUser;
import org.springframework.test.context.ActiveProfiles;
import org.springframework.test.web.servlet.MockMvc;

import com.dalab.discovery.config.dto.ConnectionDiscoveryConfigDTO;
import com.dalab.discovery.config.dto.GlobalDiscoveryConfigDTO;
import com.dalab.discovery.config.service.IDiscoveryConfigService;
import com.dalab.discovery.sd.config.TestDatabaseConfiguration;
import com.fasterxml.jackson.databind.ObjectMapper;

@SpringBootTest(
    classes = com.dalab.discovery.application.DADiscoveryAgent.class,
    properties = {
        "spring.autoconfigure.exclude=com.google.cloud.spring.autoconfigure.secretmanager.GcpSecretManagerAutoConfiguration,com.google.cloud.spring.autoconfigure.core.GcpAutoConfiguration",
        "server.port=0"
    }
)
@AutoConfigureMockMvc
@ActiveProfiles("test")
@Import({TestWebSecurityConfiguration.class, TestDatabaseConfiguration.class})
class DiscoveryConfigControllerIntegrationTest {

    @Autowired
    private MockMvc mockMvc;

    @MockBean
    private IDiscoveryConfigService configService;

    @Autowired
    private ObjectMapper objectMapper;

    private GlobalDiscoveryConfigDTO globalConfigDTO;
    private ConnectionDiscoveryConfigDTO connectionConfigDTO;
    private final String testConnectionId = "conn-123";

    @BeforeEach
    void setUp() {
        globalConfigDTO = new GlobalDiscoveryConfigDTO();
        globalConfigDTO.setDefaultScanIntervalMinutes(60);
        globalConfigDTO.setEnableAutoRemediation(false);

        connectionConfigDTO = new ConnectionDiscoveryConfigDTO();
        connectionConfigDTO.setIsEnabled(true);
        connectionConfigDTO.setScanIntervalHours(2);
    }

    @Test
    @WithMockUser(authorities = "ROLE_ADMIN")
    void getGlobalConfig_AsAdmin_ShouldReturnConfig() throws Exception {
        when(configService.getGlobalDiscoveryConfig()).thenReturn(globalConfigDTO);
        mockMvc.perform(get("/api/v1/discovery/config/global"))
                .andExpect(status().isOk())
                .andExpect(jsonPath("$.defaultScanIntervalMinutes").value(60));
    }
}