X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=policy-agent%2Fsrc%2Ftest%2Fjava%2Forg%2Foransc%2Fpolicyagent%2FApplicationTest.java;h=8bcd99aaeaef38e31cd98d6a931959dbc7bcc1fc;hb=3b5213d7ef998e3f76d58a767230013be0a7927f;hp=d22a9da8e826957346a5fe3e026f275d1ff146f9;hpb=3ed724aaef96d30347f9a60ca111627b28133721;p=nonrtric.git diff --git a/policy-agent/src/test/java/org/oransc/policyagent/ApplicationTest.java b/policy-agent/src/test/java/org/oransc/policyagent/ApplicationTest.java index d22a9da8..8bcd99aa 100644 --- a/policy-agent/src/test/java/org/oransc/policyagent/ApplicationTest.java +++ b/policy-agent/src/test/java/org/oransc/policyagent/ApplicationTest.java @@ -17,31 +17,36 @@ * limitations under the License. * ========================LICENSE_END=================================== */ + package org.oransc.policyagent; import static org.assertj.core.api.Assertions.assertThat; +import static org.junit.Assert.assertFalse; import java.net.URL; -import java.util.HashMap; -import java.util.Map; - +import java.util.Vector; import org.junit.Test; import org.junit.runner.RunWith; import org.oransc.policyagent.configuration.ApplicationConfig; +import org.oransc.policyagent.configuration.ImmutableRicConfig; +import org.oransc.policyagent.configuration.RicConfig; +import org.oransc.policyagent.exceptions.ServiceException; +import org.oransc.policyagent.repository.ImmutablePolicy; import org.oransc.policyagent.repository.ImmutablePolicyType; import org.oransc.policyagent.repository.Policies; import org.oransc.policyagent.repository.Policy; import org.oransc.policyagent.repository.PolicyType; import org.oransc.policyagent.repository.PolicyTypes; +import org.oransc.policyagent.repository.Ric; +import org.oransc.policyagent.repository.Rics; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.boot.test.context.SpringBootTest.WebEnvironment; import org.springframework.boot.test.context.TestConfiguration; import org.springframework.boot.web.server.LocalServerPort; import org.springframework.context.annotation.Bean; -import org.springframework.http.HttpEntity; -import org.springframework.http.HttpHeaders; -import org.springframework.http.MediaType; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; import org.springframework.test.context.junit4.SpringRunner; import org.springframework.web.client.RestTemplate; @@ -50,15 +55,10 @@ import org.springframework.web.client.RestTemplate; public class ApplicationTest { @Autowired - private Policies policies; - - @Autowired - private PolicyTypes policyTypes; - - @Autowired - ApplicationConfig appConfig; + private Beans beans; static class MockApplicationConfig extends ApplicationConfig { + @Override public void initialize() { URL url = MockApplicationConfig.class.getClassLoader().getResource("test_application_configuration.json"); loadConfigurationFromFile(url.getFile()); @@ -68,17 +68,22 @@ public class ApplicationTest { @TestConfiguration static class Beans { @Bean - Policies getPolicies() { + public Rics getRics() { + return new Rics(); + } + + @Bean + public Policies getPolicies() { return new Policies(); } @Bean - PolicyTypes getPolicyTypes() { + public PolicyTypes getPolicyTypes() { return new PolicyTypes(); } @Bean - ApplicationConfig getApplicationConfig() { + public ApplicationConfig getApplicationConfig() { return new MockApplicationConfig(); } } @@ -88,19 +93,10 @@ public class ApplicationTest { private RestTemplate restTemplate = new RestTemplate(); - @Test - public void getPolicy() throws Exception { - String cmd = "/policy?type=type3&instance=xxx"; - String rsp = this.restTemplate.getForObject("http://localhost:" + port + cmd, String.class); - System.out.println("*** rsp " + rsp); - assertThat(rsp).contains("type3"); - } - @Test public void getRics() throws Exception { String cmd = "/rics"; String rsp = this.restTemplate.getForObject("http://localhost:" + port + cmd, String.class); - System.out.println("*** rsp " + rsp); assertThat(rsp).contains("kista_1"); } @@ -115,36 +111,102 @@ public class ApplicationTest { @Test public void putPolicy() throws Exception { - // types.putType("type1", ImmutablePolicyType.builder().name("").jsonSchema("").build()); - - String url = "http://localhost:" + port + "/policy?type={type}&instance={instance}&ric={ric}&service={service}"; - - Map uriVariables = new HashMap(); - uriVariables.put("type", "type1"); - uriVariables.put("instance", "instance1"); - uriVariables.put("ric", "ric1"); - uriVariables.put("service", "service"); - HttpHeaders headers = new HttpHeaders(); - headers.setContentType(MediaType.APPLICATION_JSON); + String url = "http://localhost:" + port + "/policy?type=type1&instance=instance1&ric=ric1&service=service1"; String json = "{}"; - HttpEntity entity = new HttpEntity(json); + addPolicyType("type1"); + addRic(beans.getRics(), "ric1", url); + + this.restTemplate.put(url, json); - addPolicyType(policyTypes, "type1"); + Policy policy = beans.getPolicies().get("instance1"); - this.restTemplate.put(url, entity, uriVariables); - Policy policy = this.policies.get("instance1"); assertThat(policy).isNotNull(); assertThat(policy.id()).isEqualTo("instance1"); - assertThat(policy.ownerServiceName()).isEqualTo("service"); + assertThat(policy.ownerServiceName()).isEqualTo("service1"); } - private void addPolicyType(PolicyTypes policyTypes, String name) { + private void addRic(Rics rics, String ric, String url) { + Vector nodeNames = new Vector<>(1); + nodeNames.add("node1"); + RicConfig ricConfig = ImmutableRicConfig.builder() // + .name(ric) // + .baseUrl(url) // + .managedElementIds(nodeNames) // + .build(); + Ric ricObj = new Ric(ricConfig); + + rics.put(ricObj); + } + + private PolicyType addPolicyType(String name) { PolicyType type = ImmutablePolicyType.builder() // .jsonSchema("") // .name(name) // .build(); - policyTypes.putType(name, type); + beans.getPolicyTypes().put(type); + return type; + } + + private Policy addPolicy(String id, String typeName, String service) throws ServiceException { + Policy p = ImmutablePolicy.builder().id(id) // + .json("{}") // + .ownerServiceName(service) // + .ric(beans.getRics().getRic("ric1")) // + .type(addPolicyType(typeName)) // + .build(); + beans.getPolicies().put(p); + return p; + } + + @Test + public void getPolicy() throws Exception { + String url = "http://localhost:" + port + "/policy?instance=id"; + Policy policy = addPolicy("id", "typeName", "service1"); + { + String rsp = this.restTemplate.getForObject(url, String.class); + assertThat(rsp).isEqualTo(policy.json()); + } + { + beans.getPolicies().remove(policy); + ResponseEntity rsp = this.restTemplate.getForEntity(url, String.class); + assertThat(rsp.getStatusCodeValue()).isEqualTo(HttpStatus.NO_CONTENT.value()); + } + } + + @Test + public void getPolicies() throws Exception { + String url = "http://localhost:" + port + "/policies"; + addRic(beans.getRics(), "ric1", url); + addPolicy("id1", "type1", "service1"); + addPolicy("id2", "type2", "service2"); + + String rsp = this.restTemplate.getForObject(url, String.class); + System.out.println(rsp); + assertThat(rsp).contains("id1"); + assertThat(rsp).contains("id2"); + } + + @Test + public void getPoliciesFilter() throws Exception { + addPolicy("id1", "type1", "service1"); + addPolicy("id2", "type1", "service2"); + addPolicy("id3", "type2", "service1"); + + String url = "http://localhost:" + port + "/policies?type=type1"; + String rsp = this.restTemplate.getForObject(url, String.class); + System.out.println(rsp); + assertThat(rsp).contains("id1"); + assertThat(rsp).contains("id2"); + assertFalse(rsp.contains("id3")); + + url = "http://localhost:" + port + "/policies?type=type1&service=service2"; + rsp = this.restTemplate.getForObject(url, String.class); + System.out.println(rsp); + assertFalse(rsp.contains("id1")); + assertThat(rsp).contains("id2"); + assertFalse(rsp.contains("id3")); + } }