Removed support for the non used A1 1.0 standard 31/2831/3
authorPatrikBuhr <patrik.buhr@est.tech>
Tue, 17 Mar 2020 15:15:01 +0000 (16:15 +0100)
committerPatrikBuhr <patrik.buhr@est.tech>
Wed, 18 Mar 2020 11:27:36 +0000 (12:27 +0100)
Change-Id: I85001d6c6bcff641db15de0bce27b99008dd74e9
Issue-ID: NONRTRIC-155
Signed-off-by: PatrikBuhr <patrik.buhr@est.tech>
policy-agent/src/main/java/org/oransc/policyagent/clients/A1Client.java
policy-agent/src/main/java/org/oransc/policyagent/clients/A1ClientFactory.java
policy-agent/src/main/java/org/oransc/policyagent/clients/SdncOscA1Client.java
policy-agent/src/main/java/org/oransc/policyagent/clients/StdA1ClientVersion1.java
policy-agent/src/main/java/org/oransc/policyagent/clients/StdA1ClientVersion2.java [deleted file]
policy-agent/src/test/java/org/oransc/policyagent/clients/A1ClientFactoryTest.java
policy-agent/src/test/java/org/oransc/policyagent/clients/SdncOscA1ClientTest.java
policy-agent/src/test/java/org/oransc/policyagent/clients/StdA1ClientTest.java
policy-agent/src/test/java/org/oransc/policyagent/utils/MockA1Client.java
sdnc-a1-controller/northbound/nonrt-ric-api/provider/src/main/java/org/onap/sdnc/northbound/restadapter/NearRicUrlProvider.java

index 4936893..8715e88 100644 (file)
@@ -31,7 +31,6 @@ public interface A1Client {
 
     public enum A1ProtocolType {
         UNKNOWN, //
-        STD_V1, //
         STD_V1_1, // version 1.1
         OSC_V1, //
         SDNC_OSC, //
index 8f9169d..22dba54 100644 (file)
@@ -66,10 +66,8 @@ public class A1ClientFactory {
     }
 
     A1Client createClient(Ric ric, A1ProtocolType version) {
-        if (version == A1ProtocolType.STD_V1) {
+        if (version == A1ProtocolType.STD_V1_1) {
             return new StdA1ClientVersion1(ric.getConfig());
-        } else if (version == A1ProtocolType.STD_V1_1) {
-            return new StdA1ClientVersion2(ric.getConfig());
         } else if (version == A1ProtocolType.OSC_V1) {
             return new OscA1Client(ric.getConfig());
         } else if (version == A1ProtocolType.SDNC_OSC) {
@@ -91,8 +89,7 @@ public class A1ClientFactory {
 
     private Mono<A1Client.A1ProtocolType> getProtocolVersion(Ric ric) {
         if (ric.getProtocolVersion() == A1ProtocolType.UNKNOWN) {
-            return fetchVersion(createClient(ric, A1ProtocolType.STD_V1)) //
-                .onErrorResume(notUsed -> fetchVersion(createClient(ric, A1ProtocolType.STD_V1_1))) //
+            return fetchVersion(createClient(ric, A1ProtocolType.STD_V1_1)) //
                 .onErrorResume(notUsed -> fetchVersion(createClient(ric, A1ProtocolType.OSC_V1))) //
                 .onErrorResume(notUsed -> fetchVersion(createClient(ric, A1ProtocolType.SDNC_OSC))) //
                 .onErrorResume(notUsed -> fetchVersion(createClient(ric, A1ProtocolType.SDNC_ONAP))) //
index 06259c7..804513a 100644 (file)
@@ -21,6 +21,7 @@
 package org.oransc.policyagent.clients;
 
 import java.lang.invoke.MethodHandles;
+import java.util.Arrays;
 import java.util.List;
 
 import org.oransc.policyagent.configuration.RicConfig;
@@ -31,11 +32,11 @@ import org.slf4j.LoggerFactory;
 import reactor.core.publisher.Flux;
 import reactor.core.publisher.Mono;
 
+@SuppressWarnings("squid:S2629") // Invoke method(s) only conditionally
 public class SdncOscA1Client implements A1Client {
-    private static final String URL_PREFIX = "/A1-ADAPTER-API:";
 
+    private static final String URL_PREFIX = "/A1-ADAPTER-API:";
     private static final Logger logger = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass());
-
     private final String a1ControllerUsername;
     private final String a1ControllerPassword;
     private final RicConfig ricConfig;
@@ -43,9 +44,7 @@ public class SdncOscA1Client implements A1Client {
 
     public SdncOscA1Client(RicConfig ricConfig, String baseUrl, String username, String password) {
         this(ricConfig, username, password, new AsyncRestClient(baseUrl + "/restconf/operations"));
-        if (logger.isDebugEnabled()) {
-            logger.debug("SdncOscA1Client for ric: {}, a1ControllerBaseUrl: {}", ricConfig.name(), baseUrl);
-        }
+        logger.debug("SdncOscA1Client for ric: {}, a1ControllerBaseUrl: {}", ricConfig.name(), baseUrl);
     }
 
     public SdncOscA1Client(RicConfig ricConfig, String username, String password, AsyncRestClient restClient) {
@@ -57,18 +56,7 @@ public class SdncOscA1Client implements A1Client {
 
     @Override
     public Mono<List<String>> getPolicyTypeIdentities() {
-        SdncOscAdapterInput inputParams = ImmutableSdncOscAdapterInput.builder() //
-            .nearRtRicUrl(ricConfig.baseUrl()) //
-            .build();
-        String inputJsonString = JsonHelper.createInputJsonString(inputParams);
-        logger.debug("POST getPolicyTypeIdentities inputJsonString = {}", inputJsonString);
-
-        return restClient
-            .postWithAuthHeader(URL_PREFIX + "getPolicyTypeIdentities", inputJsonString, a1ControllerUsername,
-                a1ControllerPassword) //
-            .flatMap(response -> JsonHelper.getValueFromResponse(response, "policy-type-id-list")) //
-            .flatMapMany(JsonHelper::parseJsonArrayOfString) //
-            .collectList();
+        return Mono.just(Arrays.asList(""));
     }
 
     @Override
@@ -79,18 +67,7 @@ public class SdncOscA1Client implements A1Client {
 
     @Override
     public Mono<String> getPolicyTypeSchema(String policyTypeId) {
-        SdncOscAdapterInput inputParams = ImmutableSdncOscAdapterInput.builder() //
-            .nearRtRicUrl(ricConfig.baseUrl()) //
-            .policyTypeId(policyTypeId) //
-            .build();
-        String inputJsonString = JsonHelper.createInputJsonString(inputParams);
-        logger.debug("POST getPolicyType inputJsonString = {}", inputJsonString);
-
-        return restClient
-            .postWithAuthHeader(URL_PREFIX + "getPolicyType", inputJsonString, a1ControllerUsername,
-                a1ControllerPassword) //
-            .flatMap(response -> JsonHelper.getValueFromResponse(response, "policy-type")) //
-            .flatMap(JsonHelper::extractPolicySchema);
+        return Mono.just("{}");
     }
 
     @Override
@@ -102,8 +79,6 @@ public class SdncOscA1Client implements A1Client {
             .policy(policy.json()) //
             .build();
         String inputJsonString = JsonHelper.createInputJsonString(inputParams);
-        logger.debug("POST putPolicy inputJsonString = {}", inputJsonString);
-
         return restClient
             .postWithAuthHeader(URL_PREFIX + "putPolicy", inputJsonString, a1ControllerUsername, a1ControllerPassword)
             .flatMap(response -> JsonHelper.getValueFromResponse(response, "returned-policy")) //
@@ -123,7 +98,7 @@ public class SdncOscA1Client implements A1Client {
 
     @Override
     public Mono<A1ProtocolType> getProtocolVersion() {
-        return getPolicyTypeIdentities() //
+        return getPolicyIdentities() //
             .flatMap(x -> Mono.just(A1ProtocolType.SDNC_OSC));
     }
 
@@ -147,8 +122,6 @@ public class SdncOscA1Client implements A1Client {
             .nearRtRicUrl(ricConfig.baseUrl()) //
             .build();
         String inputJsonString = JsonHelper.createInputJsonString(inputParams);
-        logger.debug("POST getPolicyIdentities inputJsonString = {}", inputJsonString);
-
         return restClient
             .postWithAuthHeader(URL_PREFIX + "getPolicyIdentities", inputJsonString, a1ControllerUsername,
                 a1ControllerPassword) //
@@ -163,8 +136,6 @@ public class SdncOscA1Client implements A1Client {
             .build();
 
         String inputJsonString = JsonHelper.createInputJsonString(inputParams);
-        logger.debug("POST deletePolicy inputJsonString = {}", inputJsonString);
-
         return restClient.postWithAuthHeader(URL_PREFIX + "deletePolicy", inputJsonString, a1ControllerUsername,
             a1ControllerPassword);
     }
index f8ea2ee..7b194b4 100644 (file)
@@ -20,6 +20,7 @@
 
 package org.oransc.policyagent.clients;
 
+import java.util.Arrays;
 import java.util.List;
 
 import org.oransc.policyagent.configuration.RicConfig;
@@ -30,29 +31,11 @@ import reactor.core.publisher.Flux;
 import reactor.core.publisher.Mono;
 
 public class StdA1ClientVersion1 implements A1Client {
-    private static final String URL_PREFIX = "/A1-P/v1";
-
-    private static final String POLICY_TYPES_URI = "/policytypes";
-    private static final String POLICY_TYPE_ID = "policyTypeId";
-
-    private static final String POLICIES_URI = "/policies";
-
-    private static final UriComponentsBuilder POLICY_TYPE_SCHEMA_URI =
-        UriComponentsBuilder.fromPath("/policytypes/{policy-type-name}");
-
-    private static final UriComponentsBuilder POLICY_URI =
-        UriComponentsBuilder.fromPath("/policies/{policy-id}").queryParam(POLICY_TYPE_ID, "{policy-type-name}");
-
-    private static final UriComponentsBuilder POLICY_DELETE_URI =
-        UriComponentsBuilder.fromPath("/policies/{policy-id}");
-
-    private static final UriComponentsBuilder POLICY_STATUS_URI =
-        UriComponentsBuilder.fromPath("/policies/{policy-id}/status");
-
     private final AsyncRestClient restClient;
 
     public StdA1ClientVersion1(RicConfig ricConfig) {
-        String baseUrl = ricConfig.baseUrl() + URL_PREFIX;
+        final String urlPrefix = "/A1-P/v1";
+        String baseUrl = ricConfig.baseUrl() + urlPrefix;
         this.restClient = new AsyncRestClient(baseUrl);
     }
 
@@ -68,23 +51,20 @@ public class StdA1ClientVersion1 implements A1Client {
 
     @Override
     public Mono<String> putPolicy(Policy policy) {
-        String uri = POLICY_URI.buildAndExpand(policy.id(), policy.type().name()).toUriString();
+        final UriComponentsBuilder policyUri = UriComponentsBuilder.fromPath("/policies/{policy-id}");
+        final String uri = policyUri.buildAndExpand(policy.id()).toUriString();
         return restClient.put(uri, policy.json()) //
             .flatMap(JsonHelper::validateJson);
     }
 
     @Override
     public Mono<List<String>> getPolicyTypeIdentities() {
-        return restClient.get(POLICY_TYPES_URI) //
-            .flatMapMany(JsonHelper::parseJsonArrayOfString) //
-            .collectList();
+        return Mono.just(Arrays.asList(""));
     }
 
     @Override
     public Mono<String> getPolicyTypeSchema(String policyTypeId) {
-        String uri = POLICY_TYPE_SCHEMA_URI.buildAndExpand(policyTypeId).toUriString();
-        return restClient.get(uri) //
-            .flatMap(JsonHelper::extractPolicySchema);
+        return Mono.just("{}");
     }
 
     @Override
@@ -101,22 +81,25 @@ public class StdA1ClientVersion1 implements A1Client {
     @Override
     public Mono<A1ProtocolType> getProtocolVersion() {
         return getPolicyTypeIdentities() //
-            .flatMap(x -> Mono.just(A1ProtocolType.STD_V1));
+            .flatMap(x -> Mono.just(A1ProtocolType.STD_V1_1));
     }
 
     @Override
     public Mono<String> getPolicyStatus(Policy policy) {
-        String uri = POLICY_STATUS_URI.buildAndExpand(policy.id()).toUriString();
+        final UriComponentsBuilder builder = UriComponentsBuilder.fromPath("/policies/{policy-id}/status");
+        String uri = builder.buildAndExpand(policy.id()).toUriString();
         return restClient.get(uri);
     }
 
     private Flux<String> getPolicyIds() {
-        return restClient.get(POLICIES_URI) //
+        final String uri = "/policies";
+        return restClient.get(uri) //
             .flatMapMany(JsonHelper::parseJsonArrayOfString);
     }
 
     private Mono<String> deletePolicyById(String policyId) {
-        String uri = POLICY_DELETE_URI.buildAndExpand(policyId).toUriString();
+        final UriComponentsBuilder builder = UriComponentsBuilder.fromPath("/policies/{policy-id}");
+        String uri = builder.buildAndExpand(policyId).toUriString();
         return restClient.delete(uri);
     }
 }
diff --git a/policy-agent/src/main/java/org/oransc/policyagent/clients/StdA1ClientVersion2.java b/policy-agent/src/main/java/org/oransc/policyagent/clients/StdA1ClientVersion2.java
deleted file mode 100644 (file)
index cd8c684..0000000
+++ /dev/null
@@ -1,54 +0,0 @@
-/*-
- * ========================LICENSE_START=================================
- * O-RAN-SC
- * %%
- * Copyright (C) 2019 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.
- * ========================LICENSE_END===================================
- */
-
-package org.oransc.policyagent.clients;
-
-import java.util.Arrays;
-import java.util.List;
-
-import org.oransc.policyagent.configuration.RicConfig;
-import reactor.core.publisher.Mono;
-
-public class StdA1ClientVersion2 extends StdA1ClientVersion1 {
-
-    public StdA1ClientVersion2(RicConfig ricConfig) {
-        super(ricConfig);
-    }
-
-    public StdA1ClientVersion2(AsyncRestClient restClient) {
-        super(restClient);
-    }
-
-    @Override
-    public Mono<List<String>> getPolicyTypeIdentities() {
-        return Mono.just(Arrays.asList(""));
-    }
-
-    @Override
-    public Mono<String> getPolicyTypeSchema(String policyTypeId) {
-        return Mono.just("{}");
-    }
-
-    @Override
-    public Mono<A1ProtocolType> getProtocolVersion() {
-        return getPolicyIdentities() //
-            .flatMap(x -> Mono.just(A1ProtocolType.STD_V1_1));
-    }
-}
index a7495b9..df26d27 100644 (file)
@@ -62,9 +62,6 @@ public class A1ClientFactoryTest {
     @Mock
     A1Client clientMock4;
 
-    @Mock
-    A1Client clientMock5;
-
     private ImmutableRicConfig ricConfig =
         ImmutableRicConfig.builder().name(RIC_NAME).baseUrl("baseUrl").managedElementIds(new Vector<>()).build();
     private Ric ric = new Ric(ricConfig);
@@ -79,33 +76,31 @@ public class A1ClientFactoryTest {
     @Test
     public void getProtocolVersion_ok() {
         whenGetProtocolVersionThrowException(clientMock1);
-        whenGetProtocolVersionReturn(clientMock2, A1ProtocolType.STD_V1);
+        whenGetProtocolVersionReturn(clientMock2, A1ProtocolType.STD_V1_1);
         doReturn(clientMock1, clientMock2).when(factoryUnderTest).createClient(any(), any());
 
         A1Client client = factoryUnderTest.createA1Client(ric).block();
 
         assertEquals(clientMock2, client, "Not correct client returned");
-        assertEquals(A1ProtocolType.STD_V1, ric.getProtocolVersion(), "Not correct protocol");
+        assertEquals(A1ProtocolType.STD_V1_1, ric.getProtocolVersion(), "Not correct protocol");
     }
 
     @Test
     public void getProtocolVersion_ok_Last() {
-        whenGetProtocolVersionThrowException(clientMock1, clientMock2, clientMock3, clientMock4);
-        whenGetProtocolVersionReturn(clientMock5, A1ProtocolType.STD_V1_1);
-        doReturn(clientMock1, clientMock2, clientMock3, clientMock4, clientMock5).when(factoryUnderTest)
-            .createClient(any(), any());
+        whenGetProtocolVersionThrowException(clientMock1, clientMock2, clientMock3);
+        whenGetProtocolVersionReturn(clientMock4, A1ProtocolType.STD_V1_1);
+        doReturn(clientMock1, clientMock2, clientMock3, clientMock4).when(factoryUnderTest).createClient(any(), any());
 
         A1Client client = factoryUnderTest.createA1Client(ric).block();
 
-        assertEquals(clientMock5, client, "Not correct client returned");
+        assertEquals(clientMock4, client, "Not correct client returned");
         assertEquals(A1ProtocolType.STD_V1_1, ric.getProtocolVersion(), "Not correct protocol");
     }
 
     @Test
     public void getProtocolVersion_error() {
-        whenGetProtocolVersionThrowException(clientMock1, clientMock2, clientMock3, clientMock4, clientMock5);
-        doReturn(clientMock1, clientMock2, clientMock3, clientMock4, clientMock5).when(factoryUnderTest)
-            .createClient(any(), any());
+        whenGetProtocolVersionThrowException(clientMock1, clientMock2, clientMock3, clientMock4);
+        doReturn(clientMock1, clientMock2, clientMock3, clientMock4).when(factoryUnderTest).createClient(any(), any());
 
         StepVerifier.create(factoryUnderTest.createA1Client(ric)) //
             .expectSubscription() //
@@ -121,8 +116,7 @@ public class A1ClientFactoryTest {
 
     @Test
     public void create_check_types() {
-        assertTrue(createClient(A1ProtocolType.STD_V1) instanceof StdA1ClientVersion1);
-        assertTrue(createClient(A1ProtocolType.STD_V1_1) instanceof StdA1ClientVersion2);
+        assertTrue(createClient(A1ProtocolType.STD_V1_1) instanceof StdA1ClientVersion1);
         assertTrue(createClient(A1ProtocolType.OSC_V1) instanceof OscA1Client);
         assertTrue(createClient(A1ProtocolType.SDNC_ONAP) instanceof SdncOnapA1Client);
         assertTrue(createClient(A1ProtocolType.SDNC_OSC) instanceof SdncOscA1Client);
index 885db0f..2ccd3b3 100644 (file)
@@ -46,16 +46,10 @@ public class SdncOscA1ClientTest {
     private static final String CONTROLLER_USERNAME = "username";
     private static final String CONTROLLER_PASSWORD = "password";
     private static final String RIC_1_URL = "RicUrl";
-    private static final String POLICY_TYPES_IDENTITIES_URL = "/A1-ADAPTER-API:getPolicyTypeIdentities";
     private static final String POLICY_IDENTITIES_URL = "/A1-ADAPTER-API:getPolicyIdentities";
-    private static final String POLICY_TYPES_URL = "/A1-ADAPTER-API:getPolicyType";
     private static final String PUT_POLICY_URL = "/A1-ADAPTER-API:putPolicy";
     private static final String DELETE_POLICY_URL = "/A1-ADAPTER-API:deletePolicy";
-
     private static final String POLICY_TYPE_1_ID = "type1";
-    private static final String POLICY_TYPE_2_ID = "type2";
-    private static final String POLICY_TYPE_SCHEMA_VALID = "{\"type\":\"type1\"}";
-    private static final String POLICY_TYPE_SCHEMA_INVALID = "\"type\":\"type1\"}";
     private static final String POLICY_1_ID = "policy1";
     private static final String POLICY_2_ID = "policy2";
     private static final String POLICY_JSON_VALID = "{\"scope\":{\"ueId\":\"ue1\"}}";
@@ -74,21 +68,9 @@ public class SdncOscA1ClientTest {
 
     @Test
     public void testGetPolicyTypeIdentities() {
-        SdncOscAdapterInput inputParams = ImmutableSdncOscAdapterInput.builder() //
-            .nearRtRicUrl(RIC_1_URL) //
-            .build();
-        String inputJsonString = A1ClientHelper.createInputJsonString(inputParams);
-
-        List<String> policyTypeIds = Arrays.asList(POLICY_TYPE_1_ID, POLICY_TYPE_2_ID);
-        Mono<String> policyTypeIdsResp =
-            A1ClientHelper.createOutputJsonResponse("policy-type-id-list", policyTypeIds.toString());
-        whenAsyncPostThenReturn(policyTypeIdsResp);
-
-        Mono<List<String>> returnedMono = clientUnderTest.getPolicyTypeIdentities();
-
-        verify(asyncRestClientMock).postWithAuthHeader(POLICY_TYPES_IDENTITIES_URL, inputJsonString,
-            CONTROLLER_USERNAME, CONTROLLER_PASSWORD);
-        StepVerifier.create(returnedMono).expectNext(policyTypeIds).expectComplete().verify();
+        List<String> policyTypeIds = clientUnderTest.getPolicyTypeIdentities().block();
+        assertEquals(1, policyTypeIds.size(), "should hardcoded to one");
+        assertEquals("", policyTypeIds.get(0), "should hardcoded to empty");
     }
 
     @Test
@@ -111,40 +93,8 @@ public class SdncOscA1ClientTest {
 
     @Test
     public void testGetValidPolicyType() {
-        SdncOscAdapterInput inputParams = ImmutableSdncOscAdapterInput.builder() //
-            .nearRtRicUrl(RIC_1_URL) //
-            .policyTypeId(POLICY_TYPE_1_ID) //
-            .build();
-        String inputJsonString = A1ClientHelper.createInputJsonString(inputParams);
-
-        String policyType = "{\"policySchema\": " + POLICY_TYPE_SCHEMA_VALID + ", \"statusSchema\": {} }";
-        Mono<String> policyTypeResp = A1ClientHelper.createOutputJsonResponse("policy-type", policyType);
-        whenAsyncPostThenReturn(policyTypeResp);
-
-        Mono<String> returnedMono = clientUnderTest.getPolicyTypeSchema(POLICY_TYPE_1_ID);
-
-        verify(asyncRestClientMock).postWithAuthHeader(POLICY_TYPES_URL, inputJsonString, CONTROLLER_USERNAME,
-            CONTROLLER_PASSWORD);
-        StepVerifier.create(returnedMono).expectNext(POLICY_TYPE_SCHEMA_VALID).expectComplete().verify();
-    }
-
-    @Test
-    public void testGetInvalidPolicyType() {
-        SdncOscAdapterInput inputParams = ImmutableSdncOscAdapterInput.builder() //
-            .nearRtRicUrl(RIC_1_URL) //
-            .policyTypeId(POLICY_TYPE_1_ID) //
-            .build();
-        String inputJsonString = A1ClientHelper.createInputJsonString(inputParams);
-
-        String policyType = "{\"policySchema\": " + POLICY_TYPE_SCHEMA_INVALID + ", \"statusSchema\": {} }";
-        Mono<String> policyTypeResp = A1ClientHelper.createOutputJsonResponse("policy-type", policyType);
-        whenAsyncPostThenReturn(policyTypeResp);
-
-        Mono<String> returnedMono = clientUnderTest.getPolicyTypeSchema(POLICY_TYPE_1_ID);
-
-        verify(asyncRestClientMock).postWithAuthHeader(POLICY_TYPES_URL, inputJsonString, CONTROLLER_USERNAME,
-            CONTROLLER_PASSWORD);
-        StepVerifier.create(returnedMono).expectErrorMatches(throwable -> throwable instanceof JSONException).verify();
+        String policyType = clientUnderTest.getPolicyTypeSchema("").block();
+        assertEquals("{}", policyType, "");
     }
 
     @Test
index 68b56f3..90e0ed8 100644 (file)
 
 package org.oransc.policyagent.clients;
 
+import static org.junit.jupiter.api.Assertions.assertEquals;
 import static org.mockito.ArgumentMatchers.anyString;
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
 
 import java.util.Arrays;
+import java.util.List;
 
 import org.json.JSONException;
 import org.junit.jupiter.api.BeforeEach;
@@ -41,15 +43,9 @@ import reactor.test.StepVerifier;
 @ExtendWith(MockitoExtension.class)
 public class StdA1ClientTest {
     private static final String RIC_URL = "RicUrl";
-    private static final String POLICY_TYPES_IDENTITIES_URL = "/policytypes";
     private static final String POLICIES_IDENTITIES_URL = "/policies";
-    private static final String POLICY_TYPES_URL = "/policytypes/";
     private static final String POLICIES_URL = "/policies/";
-
     private static final String POLICY_TYPE_1_NAME = "type1";
-    private static final String POLICY_TYPE_2_NAME = "type2";
-    private static final String POLICY_TYPE_SCHEMA_VALID = "{\"type\":\"type1\"}";
-    private static final String POLICY_TYPE_SCHEMA_INVALID = "\"type\":\"type1\"}";
     private static final String POLICY_1_ID = "policy1";
     private static final String POLICY_2_ID = "policy2";
     private static final String POLICY_JSON_VALID = "{\"policyId\":\"policy1\"}";
@@ -68,13 +64,9 @@ public class StdA1ClientTest {
 
     @Test
     public void testGetPolicyTypeIdentities() {
-        Mono<String> policyTypeIds = Mono.just(Arrays.asList(POLICY_TYPE_1_NAME, POLICY_TYPE_2_NAME).toString());
-        when(asyncRestClientMock.get(anyString())).thenReturn(policyTypeIds);
-
-        Mono<?> policyTypeIdsFlux = clientUnderTest.getPolicyTypeIdentities();
-
-        verify(asyncRestClientMock).get(POLICY_TYPES_IDENTITIES_URL);
-        StepVerifier.create(policyTypeIdsFlux).expectNextCount(1).expectComplete().verify();
+        List<String> policyTypeIds = clientUnderTest.getPolicyTypeIdentities().block();
+        assertEquals(1, policyTypeIds.size(), "should hardcoded to one");
+        assertEquals("", policyTypeIds.get(0), "should hardcoded to empty");
     }
 
     @Test
@@ -82,34 +74,16 @@ public class StdA1ClientTest {
         Mono<String> policyIds = Mono.just(Arrays.asList(POLICY_1_ID, POLICY_2_ID).toString());
         when(asyncRestClientMock.get(anyString())).thenReturn(policyIds);
 
-        Mono<?> policyIdsFlux = clientUnderTest.getPolicyIdentities();
+        List<String> result = clientUnderTest.getPolicyIdentities().block();
+        assertEquals(2, result.size(), "");
 
         verify(asyncRestClientMock).get(POLICIES_IDENTITIES_URL);
-        StepVerifier.create(policyIdsFlux).expectNextCount(1).expectComplete().verify();
     }
 
     @Test
     public void testGetValidPolicyType() {
-        Mono<String> policyTypeResp =
-            Mono.just("{\"policySchema\": " + POLICY_TYPE_SCHEMA_VALID + ", \"statusSchema\": {} }");
-
-        when(asyncRestClientMock.get(anyString())).thenReturn(policyTypeResp);
-
-        Mono<String> policyTypeMono = clientUnderTest.getPolicyTypeSchema(POLICY_TYPE_1_NAME);
-
-        verify(asyncRestClientMock).get(POLICY_TYPES_URL + POLICY_TYPE_1_NAME);
-        StepVerifier.create(policyTypeMono).expectNext(POLICY_TYPE_SCHEMA_VALID).expectComplete().verify();
-    }
-
-    @Test
-    public void testGetInvalidPolicyType() {
-        when(asyncRestClientMock.get(anyString())).thenReturn(Mono.just(POLICY_TYPE_SCHEMA_INVALID));
-
-        Mono<String> policyTypeMono = clientUnderTest.getPolicyTypeSchema(POLICY_TYPE_1_NAME);
-
-        verify(asyncRestClientMock).get(POLICY_TYPES_URL + POLICY_TYPE_1_NAME);
-        StepVerifier.create(policyTypeMono).expectErrorMatches(throwable -> throwable instanceof JSONException)
-            .verify();
+        String policyType = clientUnderTest.getPolicyTypeSchema(POLICY_TYPE_1_NAME).block();
+        assertEquals("{}", policyType, "");
     }
 
     @Test
@@ -119,7 +93,7 @@ public class StdA1ClientTest {
         Mono<String> policyMono = clientUnderTest
             .putPolicy(A1ClientHelper.createPolicy(RIC_URL, POLICY_1_ID, POLICY_JSON_VALID, POLICY_TYPE));
 
-        verify(asyncRestClientMock).put(POLICIES_URL + POLICY_1_ID + "?policyTypeId=" + POLICY_TYPE, POLICY_JSON_VALID);
+        verify(asyncRestClientMock).put(POLICIES_URL + POLICY_1_ID, POLICY_JSON_VALID);
         StepVerifier.create(policyMono).expectNext(POLICY_JSON_VALID).expectComplete().verify();
     }
 
index b765f57..af8ecd4 100644 (file)
@@ -90,7 +90,7 @@ public class MockA1Client implements A1Client {
 
     @Override
     public Mono<A1ProtocolType> getProtocolVersion() {
-        return Mono.just(A1ProtocolType.STD_V1);
+        return Mono.just(A1ProtocolType.STD_V1_1);
     }
 
     @Override
index c4ca335..df83226 100644 (file)
@@ -38,8 +38,7 @@ public class NearRicUrlProvider {
    * @return the base url
    */
   public String getBaseUrl(final String nearRtRicUrl) {
-    String baseUrl = nearRtRicUrl + "/A1-P/v1";
-    return UriComponentsBuilder.fromUriString(baseUrl).build().toString();
+    return nearRtRicUrl + "/A1-P/v1";
   }
 
   /**
@@ -59,7 +58,7 @@ public class NearRicUrlProvider {
    * @return the policies url
    */
   public String policiesUrl(final String nearRtRicUrl) {
-    return UriComponentsBuilder.fromUriString(getBaseUrl(nearRtRicUrl)).pathSegment("policies").build().toString();
+    return getBaseUrl(nearRtRicUrl) + "/policies";
   }
 
   /**
@@ -83,8 +82,12 @@ public class NearRicUrlProvider {
    * @return the putPolicy url
    */
   public String putPolicyUrl(final String nearRtRicUrl, final String policyId, final String policyTypeId) {
-    return UriComponentsBuilder.fromUriString(policiesUrl(nearRtRicUrl))
-        .pathSegment(policyId + "?policyTypeId=" + policyTypeId).build().toString();
+    UriComponentsBuilder builder = UriComponentsBuilder.fromUriString(policiesUrl(nearRtRicUrl)).pathSegment(policyId);
+
+    if (!policyTypeId.isEmpty()) {
+      builder.queryParam("policyTypeId", policyTypeId);
+    }
+    return builder.build().toString();
   }
 
   /**