X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=policy-agent%2Fsrc%2Ftest%2Fjava%2Forg%2Foransc%2Fpolicyagent%2FMockPolicyAgent.java;h=cdf614c2a31f671a925168bf8c70c3dad927603d;hb=e2a037745508a3c1ada650ea3571ca57f0a90851;hp=dd57710cd02f37ea1b1f5434989fc02a6c012d82;hpb=b47a7130c10bef2bf812366ca971e4eaa938b152;p=nonrtric.git diff --git a/policy-agent/src/test/java/org/oransc/policyagent/MockPolicyAgent.java b/policy-agent/src/test/java/org/oransc/policyagent/MockPolicyAgent.java index dd57710c..cdf614c2 100644 --- a/policy-agent/src/test/java/org/oransc/policyagent/MockPolicyAgent.java +++ b/policy-agent/src/test/java/org/oransc/policyagent/MockPolicyAgent.java @@ -27,20 +27,18 @@ import java.io.File; import java.io.IOException; import java.net.URL; import java.nio.file.Files; -import java.util.Collection; -import java.util.HashMap; -import java.util.Map; -import java.util.Vector; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; -import org.oransc.policyagent.clients.A1Client; import org.oransc.policyagent.configuration.ApplicationConfig; import org.oransc.policyagent.repository.ImmutablePolicyType; import org.oransc.policyagent.repository.Policies; import org.oransc.policyagent.repository.PolicyType; import org.oransc.policyagent.repository.PolicyTypes; import org.oransc.policyagent.repository.Rics; +import org.oransc.policyagent.utils.MockA1ClientFactory; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.boot.test.context.SpringBootTest.WebEnvironment; @@ -48,96 +46,58 @@ import org.springframework.boot.test.context.TestConfiguration; import org.springframework.boot.web.server.LocalServerPort; import org.springframework.context.annotation.Bean; import org.springframework.test.context.junit.jupiter.SpringExtension; -import reactor.core.publisher.Mono; @ExtendWith(SpringExtension.class) @SpringBootTest(webEnvironment = WebEnvironment.DEFINED_PORT) public class MockPolicyAgent { + private static final Logger logger = LoggerFactory.getLogger(MockPolicyAgent.class); @Autowired - private Rics rics; - - @Autowired - private Policies policies; - - @Autowired - private PolicyTypes policyTypes; + Rics rics; static class MockApplicationConfig extends ApplicationConfig { - @Override - public void initialize() { + public String getLocalConfigurationFilePath() { URL url = MockApplicationConfig.class.getClassLoader().getResource("test_application_configuration.json"); - loadConfigurationFromFile(url.getFile()); - } - } - - private static class RicPolicyDatabase { - private Map> policies = new HashMap<>(); - - public void putPolicy(String nearRtRicUrl, String policyId, String policyString) { - getPolicies(nearRtRicUrl).put(policyId, policyString); - } - - public Collection getPolicyIdentities(String nearRtRicUrl) { - return getPolicies(nearRtRicUrl).keySet(); - } - - public void deletePolicy(String nearRtRicUrl, String policyId) { - getPolicies(nearRtRicUrl).remove(policyId); - } - - private Map getPolicies(String nearRtRicUrl) { - if (!policies.containsKey(nearRtRicUrl)) { - policies.put(nearRtRicUrl, new HashMap<>()); - } - return policies.get(nearRtRicUrl); + return url.getFile(); } } - static class A1ClientMock implements A1Client { + /** + * Overrides the BeanFactory. + */ + @TestConfiguration + static class TestBeanFactory { - private final RicPolicyDatabase policies = new RicPolicyDatabase(); + private final Rics rics = new Rics(); + private final Policies policies = new Policies(); private final PolicyTypes policyTypes = new PolicyTypes(); - A1ClientMock() { - loadTypes(this.policyTypes); - } - - @Override - public Mono> getPolicyTypeIdentities(String nearRtRicUrl) { - Vector result = new Vector<>(); - for (PolicyType p : this.policyTypes.getAll()) { - result.add(p.name()); - } - return Mono.just(result); + @Bean + public ApplicationConfig getApplicationConfig() { + return new MockApplicationConfig(); } - @Override - public Mono> getPolicyIdentities(String nearRtRicUrl) { - Collection result = policies.getPolicyIdentities(nearRtRicUrl); - return Mono.just(result); + @Bean + public MockA1ClientFactory getA1ClientFactory() { + PolicyTypes ricTypes = new PolicyTypes(); + loadTypes(ricTypes); + return new MockA1ClientFactory(ricTypes); } - @Override - public Mono getPolicyType(String nearRtRicUrl, String policyTypeId) { - try { - return Mono.just(this.policyTypes.getType(policyTypeId).schema()); - } catch (Exception e) { - return Mono.error(e); - } + @Bean + public Policies getPolicies() { + return this.policies; } - @Override - public Mono putPolicy(String nearRtRicUrl, String policyId, String policyString) { - policies.putPolicy(nearRtRicUrl, policyId, policyString); - return Mono.just("OK"); + @Bean + public PolicyTypes getPolicyTypes() { + return this.policyTypes; } - @Override - public Mono deletePolicy(String nearRtRicUrl, String policyId) { - policies.deletePolicy(nearRtRicUrl, policyId); - return Mono.just("OK"); + @Bean + public Rics getRics() { + return this.rics; } private static File[] getResourceFolderFiles(String folder) { @@ -160,69 +120,33 @@ public class MockPolicyAgent { PolicyType type = ImmutablePolicyType.builder().name(typeName).schema(schema).build(); policyTypes.put(type); } catch (Exception e) { - System.out.println("Could not load json schema " + e); + logger.error("Could not load json schema ", e); } } - } - } - - /** - * overrides the BeanFactory - */ - @TestConfiguration - static class TestBeanFactory { - - private final Rics rics = new Rics(); - private final Policies policies = new Policies(); - private final PolicyTypes policyTypes = new PolicyTypes(); - - @Bean - public ApplicationConfig getApplicationConfig() { - return new MockApplicationConfig(); - } - - @Bean - A1Client getA1Client() { - return new A1ClientMock(); - } - - @Bean - public Policies getPolicies() { - return this.policies; - } - - @Bean - public PolicyTypes getPolicyTypes() { - return this.policyTypes; - } - - @Bean - public Rics getRics() { - return this.rics; + policyTypes.put(ImmutablePolicyType.builder().name("").schema("{}").build()); } } @LocalServerPort private int port; - private void keepServerAlive() { - System.out.println("Keeping server alive!"); - try { - synchronized (this) { - this.wait(); - } - } catch (Exception ex) { - System.out.println("Unexpected: " + ex.toString()); + private void keepServerAlive() throws InterruptedException { + logger.info("Keeping server alive!"); + synchronized (this) { + this.wait(); } } private static String title(String jsonSchema) { - JsonObject parsedSchema = (JsonObject) new JsonParser().parse(jsonSchema); + JsonObject parsedSchema = (JsonObject) JsonParser.parseString(jsonSchema); String title = parsedSchema.get("title").getAsString(); return title; } @Test + @SuppressWarnings("squid:S2699") // Tests should include assertions. This test is only for keeping the server + // alive, + // so it will only be confusing to add an assertion. public void runMock() throws Exception { keepServerAlive(); }