1 package org.onap.ccsdk.oran.a1policymanagementservice.utils.v3;
 
   3 import org.junit.jupiter.api.AfterAll;
 
   4 import org.junit.jupiter.api.BeforeEach;
 
   5 import org.junit.jupiter.api.DisplayName;
 
   6 import org.junit.jupiter.api.Test;
 
   7 import org.junit.jupiter.api.extension.ExtendWith;
 
   8 import org.onap.ccsdk.oran.a1policymanagementservice.configuration.ApplicationConfig;
 
   9 import org.onap.ccsdk.oran.a1policymanagementservice.controllers.OpenPolicyAgentSimulatorController;
 
  10 import org.slf4j.Logger;
 
  11 import org.slf4j.LoggerFactory;
 
  12 import org.springframework.beans.factory.annotation.Autowired;
 
  13 import org.springframework.boot.test.context.SpringBootTest;
 
  14 import org.springframework.boot.test.system.CapturedOutput;
 
  15 import org.springframework.boot.test.system.OutputCaptureExtension;
 
  16 import org.springframework.boot.test.web.server.LocalServerPort;
 
  17 import org.springframework.http.HttpStatus;
 
  18 import org.springframework.http.ResponseEntity;
 
  19 import org.springframework.test.context.TestPropertySource;
 
  20 import org.springframework.util.FileSystemUtils;
 
  21 import reactor.core.publisher.Mono;
 
  23 import java.lang.invoke.MethodHandles;
 
  24 import java.nio.file.Path;
 
  26 import static org.junit.jupiter.api.Assertions.assertTrue;
 
  28 @SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
 
  29 @ExtendWith({OutputCaptureExtension.class})
 
  30 @TestPropertySource(properties = {
 
  31         "server.ssl.key-store=./config/keystore.jks",
 
  32         "app.webclient.trust-store=./config/truststore.jks",
 
  33         "app.vardata-directory=./target",
 
  34         "app.config-file-schema-path=/application_configuration_schema.json",
 
  35         "logging.reactive-entry-exit-filter-enabled=true",
 
  36         "logging.level.org.onap.ccsdk.oran.a1policymanagementservice=TRACE"
 
  38 class ReactiveEntryExitFilterTest {
 
  40     private static final Logger logger = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
 
  43     private ApplicationConfig applicationConfig;
 
  46     private TestHelperTest testHelperTest;
 
  53         testHelperTest.port = port;
 
  54         this.applicationConfig.setAuthProviderUrl(testHelperTest.baseUrl() + OpenPolicyAgentSimulatorController.ACCESS_CONTROL_URL);
 
  58     static void clearTestDir() {
 
  60             FileSystemUtils.deleteRecursively(Path.of("/tmp/pmstestv3"));
 
  61         } catch (Exception e) {
 
  62             logger.warn("Could test directory : {}", e.getMessage());
 
  67     @DisplayName("test verify entry exit log")
 
  68     void testPostPolicy(CapturedOutput capturedOutput) throws Exception {
 
  69         String nonRtRicId = "ric.1";
 
  70         String policyTypeName = "type1_1.2.3";
 
  71         String url = "/policies";
 
  72         testHelperTest.addPolicyType(policyTypeName, nonRtRicId);
 
  73         String policyBody = testHelperTest.postPolicyBody(nonRtRicId, policyTypeName, "");
 
  74         Mono<ResponseEntity<String>> responseMono = testHelperTest.restClientV3().postForEntity(url, policyBody);
 
  75         testHelperTest.testSuccessResponse(responseMono, HttpStatus.CREATED, responseBody ->
 
  76                 responseBody.contains("{\"scope\":{\"ueId\":\"ue5100\",\"qosId\":\"qos5100\"},\"qosObjectives\":{\"priorityLevel\":5100.0}}"));
 
  77         testHelperTest.testSuccessHeader(responseMono, "location", headerValue -> headerValue.contains("https://localhost:" + port + "/a1-policy-management/v1/policies/"));
 
  78         assertTrue(capturedOutput.getOut().contains("Request received with path: /a1-policy-management/v1/policies"));
 
  79         assertTrue(capturedOutput.getOut().contains("the Status code of the response: 201 CREATED"));
 
  80         assertTrue(capturedOutput.getOut().contains("the response is:"));