import org.junit.jupiter.api.extension.ExtendWith;
import org.mockito.junit.jupiter.MockitoExtension;
import org.mockito.stubbing.OngoingStubbing;
+import org.oransc.policyagent.clients.A1Client.A1ProtocolType;
import org.oransc.policyagent.clients.SdncOscA1Client.AdapterRequest;
import org.oransc.policyagent.clients.SdncOscA1Client.AdapterResponse;
+import org.oransc.policyagent.configuration.ControllerConfig;
+import org.oransc.policyagent.configuration.ImmutableControllerConfig;
import org.oransc.policyagent.repository.Policy;
+import org.oransc.policyagent.repository.Ric;
import org.springframework.web.reactive.function.client.WebClientResponseException;
import reactor.core.publisher.Mono;
AsyncRestClient asyncRestClientMock;
+ private ControllerConfig controllerConfig() {
+ return ImmutableControllerConfig.builder() //
+ .name("name") //
+ .baseUrl("baseUrl") //
+ .password(CONTROLLER_PASSWORD) //
+ .userName(CONTROLLER_USERNAME) //
+ .build();
+ }
+
@BeforeEach
public void init() {
asyncRestClientMock = mock(AsyncRestClient.class);
- clientUnderTest = new SdncOscA1Client(A1ClientHelper.createRic(RIC_1_URL).getConfig(), CONTROLLER_USERNAME,
- CONTROLLER_PASSWORD, asyncRestClientMock);
+ Ric ric = A1ClientHelper.createRic(RIC_1_URL);
+
+ clientUnderTest = new SdncOscA1Client(A1ProtocolType.SDNC_OSC_STD_V1_1, ric.getConfig(), controllerConfig(),
+ asyncRestClientMock);
}
@Test
- public void testGetPolicyTypeIdentities() {
+ public void testGetPolicyTypeIdentities_STD() {
List<String> policyTypeIds = clientUnderTest.getPolicyTypeIdentities().block();
assertEquals(1, policyTypeIds.size(), "should hardcoded to one");
assertEquals("", policyTypeIds.get(0), "should hardcoded to empty");
}
+ @Test
+ public void testGetPolicyTypeIdentities_OSC() {
+ clientUnderTest = new SdncOscA1Client(A1ProtocolType.SDNC_OSC_OSC_V1, //
+ A1ClientHelper.createRic(RIC_1_URL).getConfig(), //
+ controllerConfig(), asyncRestClientMock);
+
+ String response = createResponse(Arrays.asList(POLICY_TYPE_1_ID));
+ whenAsyncPostThenReturn(Mono.just(response));
+
+ List<String> policyTypeIds = clientUnderTest.getPolicyTypeIdentities().block();
+ assertEquals(1, policyTypeIds.size(), "");
+ assertEquals(POLICY_TYPE_1_ID, policyTypeIds.get(0), "");
+
+ String expUrl = RIC_1_URL + "/a1-p/policytypes";
+ AdapterRequest expectedParams = ImmutableAdapterRequest.builder() //
+ .nearRtRicUrl(expUrl) //
+ .build();
+ String expInput = SdncJsonHelper.createInputJsonString(expectedParams);
+ verify(asyncRestClientMock).postWithAuthHeader(GET_A1_POLICY_URL, expInput, CONTROLLER_USERNAME,
+ CONTROLLER_PASSWORD);
+
+ }
+
private String policiesUrl() {
return RIC_1_URL + "/A1-P/v1/policies";
}
return SdncOscA1Client.gson;
}
- @Test
- public void testGetPolicyIdentities() {
-
- List<String> policyIds = Arrays.asList(POLICY_1_ID, POLICY_2_ID);
+ private String createResponse(Object obj) {
AdapterResponse output = ImmutableAdapterResponse.builder() //
- .body(gson().toJson(policyIds)) //
+ .body(gson().toJson(obj)) //
.httpStatus(200) //
.build();
- String policyIdsResp = gson().toJson(output);
+ return gson().toJson(output);
+ }
+
+ @Test
+ public void testGetPolicyIdentities() {
+
+ String policyIdsResp = createResponse(Arrays.asList(POLICY_1_ID, POLICY_2_ID));
whenAsyncPostThenReturn(Mono.just(policyIdsResp));
List<String> returned = clientUnderTest.getPolicyIdentities().block();
AdapterRequest expectedParams = ImmutableAdapterRequest.builder() //
.nearRtRicUrl(policiesUrl()) //
.build();
- String expInput = A1ClientHelper.createInputJsonString(expectedParams);
+ String expInput = SdncJsonHelper.createInputJsonString(expectedParams);
verify(asyncRestClientMock).postWithAuthHeader(GET_A1_POLICY_URL, expInput, CONTROLLER_USERNAME,
CONTROLLER_PASSWORD);
.nearRtRicUrl(expUrl) //
.body(POLICY_JSON_VALID) //
.build();
- String expInput = A1ClientHelper.createInputJsonString(expectedInputParams);
+ String expInput = SdncJsonHelper.createInputJsonString(expectedInputParams);
verify(asyncRestClientMock).postWithAuthHeader(PUT_A1_URL, expInput, CONTROLLER_USERNAME, CONTROLLER_PASSWORD);
}
.nearRtRicUrl(expUrl) //
.body(policyJson) //
.build();
- String expRequest = A1ClientHelper.createInputJsonString(expRequestParams);
+ String expRequest = SdncJsonHelper.createInputJsonString(expRequestParams);
verify(asyncRestClientMock).postWithAuthHeader(PUT_A1_URL, expRequest, CONTROLLER_USERNAME,
CONTROLLER_PASSWORD);
StepVerifier.create(returnedMono)
AdapterRequest expectedInputParams = ImmutableAdapterRequest.builder() //
.nearRtRicUrl(expUrl) //
.build();
- String expInput = A1ClientHelper.createInputJsonString(expectedInputParams);
+ String expInput = SdncJsonHelper.createInputJsonString(expectedInputParams);
verify(asyncRestClientMock).postWithAuthHeader(DELETE_A1_URL, expInput, CONTROLLER_USERNAME,
CONTROLLER_PASSWORD);
String returnedStatus = clientUnderTest.getPolicyStatus(policy).block();
- assertEquals("OK", returnedStatus, "unexpeted status");
+ assertEquals("OK", returnedStatus, "unexpected status");
final String expUrl = policiesUrl() + "/" + POLICY_1_ID + "/status";
AdapterRequest expectedInputParams = ImmutableAdapterRequest.builder() //
.nearRtRicUrl(expUrl) //
.build();
- String expInput = A1ClientHelper.createInputJsonString(expectedInputParams);
+ String expInput = SdncJsonHelper.createInputJsonString(expectedInputParams);
verify(asyncRestClientMock).postWithAuthHeader(GET_A1_POLICY_STATUS_URL, expInput, CONTROLLER_USERNAME,
CONTROLLER_PASSWORD);
}
+ @Test
+ public void testGetVersion() {
+ whenPostReturnOkResponse();
+ A1ProtocolType returnedVersion = clientUnderTest.getProtocolVersion().block();
+ assertEquals(A1ProtocolType.SDNC_OSC_STD_V1_1, returnedVersion, "");
+ }
+
private void whenPostReturnOkResponse() {
AdapterResponse adapterResponse = ImmutableAdapterResponse.builder() //
.body("OK") //