X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=dashboard%2Fwebapp-backend%2Fsrc%2Ftest%2Fjava%2Forg%2Foransc%2Fric%2Fportal%2Fdashboard%2Fconfig%2FPolicyControllerMockConfiguration.java;h=9c6d40ccddb2afbb27a3e64ed1b4725ba085f380;hb=refs%2Fchanges%2F39%2F2639%2F4;hp=4213488e71e09758f16c77b1514e8d31febce571;hpb=9de32bd6e23b01413d1319e668235568068b3699;p=nonrtric.git diff --git a/dashboard/webapp-backend/src/test/java/org/oransc/ric/portal/dashboard/config/PolicyControllerMockConfiguration.java b/dashboard/webapp-backend/src/test/java/org/oransc/ric/portal/dashboard/config/PolicyControllerMockConfiguration.java index 4213488e..9c6d40cc 100644 --- a/dashboard/webapp-backend/src/test/java/org/oransc/ric/portal/dashboard/config/PolicyControllerMockConfiguration.java +++ b/dashboard/webapp-backend/src/test/java/org/oransc/ric/portal/dashboard/config/PolicyControllerMockConfiguration.java @@ -19,6 +19,8 @@ */ package org.oransc.ric.portal.dashboard.config; +import com.google.gson.GsonBuilder; + import java.io.BufferedReader; import java.io.InputStream; import java.io.InputStreamReader; @@ -29,6 +31,7 @@ import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Optional; +import java.util.Vector; import java.util.stream.Collectors; import org.oransc.ric.portal.dashboard.model.ImmutablePolicyInfo; @@ -41,6 +44,8 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.boot.test.context.TestConfiguration; import org.springframework.context.annotation.Bean; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; import org.springframework.web.client.RestClientException; /** @@ -49,134 +54,139 @@ import org.springframework.web.client.RestClientException; @TestConfiguration public class PolicyControllerMockConfiguration { - private static final Logger logger = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass()); - - @Bean - public PolicyAgentApi policyAgentApi() { - MockPolicyAgentApi apiClient = new MockPolicyAgentApi(); - return apiClient; - } - - class MockPolicyAgentApi implements PolicyAgentApi { - private final Database database = new Database(); - - @Override - public String getPolicyInstance(String id) throws RestClientException { - return database.getInstance(id); - } - - @Override - public void putPolicy(String policyTypeIdString, String policyInstanceId, String json) - throws RestClientException { - database.putInstance(policyTypeIdString, policyInstanceId, json); - } - - @Override - public void deletePolicy(String policyInstanceId) throws RestClientException { - database.deleteInstance(policyInstanceId); - } - - @Override - public PolicyTypes getAllPolicyTypes() throws RestClientException { - PolicyTypes result = new PolicyTypes(); - result.addAll(database.getTypes()); - return result; - } - - @Override - public PolicyInstances getPolicyInstancesForType(String type) { - PolicyInstances result = new PolicyInstances(); - List inst = database.getInstances(Optional.of(type)); - result.addAll(inst); - return result; - } - - } - - class Database { - - Database() { - String schema = getStringFromFile("anr-policy-schema.json"); - PolicyType policy = new PolicyType("ANR", schema); - types.put("ANR", policy); - - schema = getStringFromFile("demo-policy-schema-1.json"); - policy = new PolicyType("type2", schema); - types.put("type2", policy); - - schema = getStringFromFile("demo-policy-schema-2.json"); - policy = new PolicyType("type3", schema); - types.put("type3", policy); - - schema = getStringFromFile("demo-policy-schema-3.json"); - policy = new PolicyType("type4", schema); - types.put("type4", policy); - try { - putInstance("ANR", "ANR-1", getStringFromFile("anr-policy-instance.json")); - } catch (Exception e) { - // Nothing - } - } - - private String getStringFromFile(String path) { - try { - InputStream inputStream = MethodHandles.lookup().lookupClass().getClassLoader() - .getResourceAsStream(path); - return new BufferedReader(new InputStreamReader(inputStream)).lines().collect(Collectors.joining("\n")); - } catch (Exception e) { - logger.error("Cannot read file :" + path, e); - return ""; - } - } - - String normalize(String str) { - return str.replace('\n', ' '); - } - - private String getTimeStampUTC() { - return java.time.Instant.now().toString(); - } - - void putInstance(String typeId, String instanceId, String instanceData) { - PolicyInfo i = ImmutablePolicyInfo.builder().json(instanceData).lastModified(getTimeStampUTC()) - .id(instanceId).ric("ricXX").service("service").type(typeId).build(); - instances.put(instanceId, i); - } - - public void deleteInstance(String instanceId) { - instances.remove(instanceId); - } - - String getInstance(String id) throws RestClientException { - PolicyInfo i = instances.get(id); - if (i == null) { - throw new RestClientException("Type not found: " + id); - } - return i.json(); - } - - public Collection getTypes() { - return types.values(); - } - - public List getInstances(Optional typeId) { - ArrayList result = new ArrayList<>(); - for (PolicyInfo i : instances.values()) { - if (typeId.isPresent()) { - if (i.type().equals(typeId.get())) { - result.add(i); - } - - } else { - result.add(i); - } - } - return result; - } - - private Map types = new HashMap<>(); - private Map instances = new HashMap<>(); - - } + private static final Logger logger = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass()); + + private static com.google.gson.Gson gson = new GsonBuilder() // + .serializeNulls() // + .create(); // + + @Bean + public PolicyAgentApi policyAgentApi() { + MockPolicyAgentApi apiClient = new MockPolicyAgentApi(); + return apiClient; + } + + class MockPolicyAgentApi implements PolicyAgentApi { + private final Database database = new Database(); + + @Override + public ResponseEntity getPolicyInstance(String id) { + return new ResponseEntity<>(database.getInstance(id), HttpStatus.OK); + } + + @Override + public ResponseEntity putPolicy(String policyTypeIdString, String policyInstanceId, Object json, + String ric) { + database.putInstance(policyTypeIdString, policyInstanceId, json, ric); + return new ResponseEntity<>("Policy was put successfully", HttpStatus.OK); + } + + @Override + public ResponseEntity deletePolicy(String policyInstanceId) { + database.deleteInstance(policyInstanceId); + return new ResponseEntity<>("Policy was deleted successfully", HttpStatus.NO_CONTENT); + } + + @Override + public ResponseEntity getAllPolicyTypes() { + PolicyTypes result = new PolicyTypes(); + result.addAll(database.getTypes()); + return new ResponseEntity<>(gson.toJson(result), HttpStatus.OK); + } + + @Override + public ResponseEntity getPolicyInstancesForType(String type) { + PolicyInstances result = new PolicyInstances(); + List inst = database.getInstances(Optional.of(type)); + result.addAll(inst); + return new ResponseEntity<>(gson.toJson(result), HttpStatus.OK); + } + + @Override + public ResponseEntity getRicsSupportingType(String typeName) { + Vector res = new Vector<>(); + res.add("ric_1"); + res.add("ric_2"); + res.add("ric_3"); + return new ResponseEntity<>(gson.toJson(res), HttpStatus.OK); + } + } + + class Database { + + Database() { + String schema = getStringFromFile("demo-policy-schema-1.json"); + PolicyType policyType = new PolicyType("type2", schema); + types.put("type2", policyType); + + schema = getStringFromFile("demo-policy-schema-2.json"); + policyType = new PolicyType("type3", schema); + types.put("type3", policyType); + + schema = getStringFromFile("demo-policy-schema-3.json"); + policyType = new PolicyType("type4", schema); + types.put("type4", policyType); + } + + private String getStringFromFile(String path) { + try { + InputStream inputStream = + MethodHandles.lookup().lookupClass().getClassLoader().getResourceAsStream(path); + return new BufferedReader(new InputStreamReader(inputStream)).lines().collect(Collectors.joining("\n")); + } catch (Exception e) { + logger.error("Cannot read file :" + path, e); + return ""; + } + } + + String normalize(String str) { + return str.replace('\n', ' '); + } + + private String getTimeStampUTC() { + return java.time.Instant.now().toString(); + } + + void putInstance(String typeId, String instanceId, Object instanceData, String ric) { + PolicyInfo i = ImmutablePolicyInfo.builder().json(instanceData).lastModified(getTimeStampUTC()) + .id(instanceId).ric(ric).service("service").type(typeId).build(); + instances.put(instanceId, i); + } + + public void deleteInstance(String instanceId) { + instances.remove(instanceId); + } + + Object getInstance(String id) throws RestClientException { + PolicyInfo i = instances.get(id); + if (i == null) { + throw new RestClientException("Type not found: " + id); + } + return i.json(); + } + + public Collection getTypes() { + return types.values(); + } + + public List getInstances(Optional typeId) { + ArrayList result = new ArrayList<>(); + for (PolicyInfo i : instances.values()) { + if (typeId.isPresent()) { + if (i.type().equals(typeId.get())) { + result.add(i); + } + + } else { + result.add(i); + } + } + return result; + } + + private Map types = new HashMap<>(); + private Map instances = new HashMap<>(); + + } }