}
@Override
- public Mono<List<String>> getPolicyTypeIdentities() {
- return restClient.get("/policytypes/identities") //
+ public Mono<List<String>> getPolicyIdentities() {
+ return restClient.get("/policies") //
.flatMap(this::parseJsonArrayOfString);
}
@Override
- public Mono<List<String>> getPolicyIdentities() {
- return restClient.get("/policies/identities") //
- .flatMap(this::parseJsonArrayOfString);
+ public Mono<String> putPolicy(Policy policy) {
+ String url = "/policies/" + policy.id() + "?policyTypeId=" + policy.type().name();
+ return restClient.put(url, policy.json()) //
+ .flatMap(this::validateJson);
}
@Override
- public Mono<String> getPolicyTypeSchema(String policyTypeId) {
- Mono<String> response = restClient.get("/policytypes/" + policyTypeId);
- return response.flatMap(this::createMono);
+ public Mono<List<String>> getPolicyTypeIdentities() {
+ return restClient.get("/policytypes") //
+ .flatMap(this::parseJsonArrayOfString);
}
@Override
- public Mono<String> putPolicy(Policy policy) {
- // TODO update when simulator is updated to include policy type
- // Mono<String> response = client.put("/policies/" + policy.id() + "?policyTypeId=" + policy.type().name(),
- // policy.json());
- Mono<String> response = restClient.put("/policies/" + policy.id(), policy.json());
-
- return response.flatMap(this::createMono);
+ public Mono<String> getPolicyTypeSchema(String policyTypeId) {
+ return restClient.get("/policytypes/" + policyTypeId) //
+ .flatMap(this::extractPolicySchema);
}
@Override
}
}
- private Mono<String> createMono(String inputString) {
+ private Mono<String> extractPolicySchema(String inputString) {
try {
JSONObject jsonObject = new JSONObject(inputString);
- String jsonString = jsonObject.toString();
- logger.debug("A1 client: received string = {}", jsonString);
- return Mono.just(jsonString);
+ JSONObject schemaObject = jsonObject.getJSONObject("policySchema");
+ String schemaString = schemaObject.toString();
+ return Mono.just(schemaString);
+ } catch (JSONException ex) { // invalid json
+ return Mono.error(ex);
+ }
+ }
+
+ private Mono<String> validateJson(String inputString) {
+ try {
+ new JSONObject(inputString);
+ return Mono.just(inputString);
} catch (JSONException ex) { // invalid json
return Mono.error(ex);
}
package org.oransc.policyagent.clients;
import static org.mockito.ArgumentMatchers.anyString;
+import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.verify;
@RunWith(MockitoJUnitRunner.class)
public class StdA1ClientTest {
private static final String RIC_URL = "RicUrl";
- private static final String POLICYTYPES_IDENTITIES_URL = "/policytypes/identities";
- private static final String POLICIES_IDENTITIES_URL = "/policies/identities";
+ private static final String POLICYTYPES_IDENTITIES_URL = "/policytypes";
+ private static final String POLICIES_IDENTITIES_URL = "/policies";
private static final String POLICYTYPES_URL = "/policytypes/";
private static final String POLICIES_URL = "/policies/";
@Test
public void testGetValidPolicyType() {
- when(asyncRestClientMock.get(POLICYTYPES_URL + POLICY_TYPE_1_NAME))
- .thenReturn(Mono.just(POLICY_TYPE_SCHEMA_VALID));
+ Mono<?> policyTypeResp =
+ Mono.just("{\"policySchema\": " + POLICY_TYPE_SCHEMA_VALID + ", \"statusSchema\": {} }");
+
+ doReturn(policyTypeResp).when(asyncRestClientMock).get(POLICYTYPES_URL + POLICY_TYPE_1_NAME);
Mono<String> policyTypeMono = a1Client.getPolicyTypeSchema(POLICY_TYPE_1_NAME);
verify(asyncRestClientMock).get(POLICYTYPES_URL + POLICY_TYPE_1_NAME);
Mono<String> policyMono =
a1Client.putPolicy(createPolicy(RIC_URL, POLICY_1_ID, POLICY_JSON_VALID, POLICY_TYPE));
- verify(asyncRestClientMock).put(POLICIES_URL + POLICY_1_ID, POLICY_JSON_VALID);
+ verify(asyncRestClientMock).put(POLICIES_URL + POLICY_1_ID + "?policyTypeId=" + POLICY_TYPE, POLICY_JSON_VALID);
StepVerifier.create(policyMono).expectNext(POLICY_JSON_VALID).expectComplete().verify();
}