diff options
Diffstat (limited to 'main/src/test/java/org/onap/policy/pap/main/rest/TestActuatorEndpoints.java')
-rw-r--r-- | main/src/test/java/org/onap/policy/pap/main/rest/TestActuatorEndpoints.java | 99 |
1 files changed, 99 insertions, 0 deletions
diff --git a/main/src/test/java/org/onap/policy/pap/main/rest/TestActuatorEndpoints.java b/main/src/test/java/org/onap/policy/pap/main/rest/TestActuatorEndpoints.java new file mode 100644 index 00000000..967da6c3 --- /dev/null +++ b/main/src/test/java/org/onap/policy/pap/main/rest/TestActuatorEndpoints.java @@ -0,0 +1,99 @@ +/* + * ============LICENSE_START======================================================= + * Copyright (C) 2022 Nordix Foundation. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * SPDX-License-Identifier: Apache-2.0 + * ============LICENSE_END========================================================= + */ + +package org.onap.policy.pap.main.rest; + +import static org.springframework.boot.test.context.SpringBootTest.WebEnvironment.RANDOM_PORT; +import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get; +import static org.springframework.test.web.servlet.result.MockMvcResultHandlers.print; +import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.jsonPath; +import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; + +import org.junit.BeforeClass; +import org.junit.Test; +import org.junit.jupiter.api.BeforeEach; +import org.junit.runner.RunWith; +import org.onap.policy.common.utils.services.Registry; +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.context.TestConfiguration; +import org.springframework.core.annotation.Order; +import org.springframework.security.config.annotation.web.builders.HttpSecurity; +import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter; +import org.springframework.test.annotation.DirtiesContext; +import org.springframework.test.context.ActiveProfiles; +import org.springframework.test.context.ContextConfiguration; +import org.springframework.test.context.junit4.SpringRunner; +import org.springframework.test.web.servlet.MockMvc; +import org.springframework.test.web.servlet.setup.MockMvcBuilders; +import org.springframework.web.context.WebApplicationContext; + +@RunWith(SpringRunner.class) +@SpringBootTest(webEnvironment = RANDOM_PORT) +@ActiveProfiles("test") +@AutoConfigureMockMvc +@ContextConfiguration +@DirtiesContext(classMode = DirtiesContext.ClassMode.AFTER_EACH_TEST_METHOD) +public class TestActuatorEndpoints { + + @Autowired + private WebApplicationContext context; + + @Autowired + private TestSecurityConfig securityConfig; + + @Autowired + private MockMvc mock; + + @BeforeClass + public static void setupClass() { + Registry.newRegistry(); + } + + @BeforeEach + void setup() { + mock = MockMvcBuilders.webAppContextSetup(context).build(); + } + + @Test + public void testMetricsEndpoint() throws Exception { + mock.perform(get("/plain-metrics")).andDo(print()) + .andExpect(status().isOk()) + .andExpect(jsonPath("$").isNotEmpty()); + } + + @Test + public void testPrometheusEndpoint() throws Exception { + mock.perform(get("/metrics")).andDo(print()) + .andExpect(status().isOk()) + .andExpect(jsonPath("$").isNotEmpty()); + } + + @TestConfiguration + @Order(1) + public static class TestSecurityConfig extends WebSecurityConfigurerAdapter { + @Override + protected void configure(HttpSecurity httpSecurity) throws Exception { + httpSecurity.csrf().disable() + .authorizeRequests().anyRequest().permitAll(); + } + } +} |