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=1ea677cab2f85712a189b4ea5d8774aa65c94376;hb=9013ed7ad46ce6927fbf69890487e8df61b7d7ee;hp=d7b9fec0290d9a2d2d31c8dbb0d2fbbbd7640c6b;hpb=805681f9c4f555fd905af4ecd4f0beea8d657327;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 d7b9fec0..1ea677ca 100644 --- a/policy-agent/src/test/java/org/oransc/policyagent/MockPolicyAgent.java +++ b/policy-agent/src/test/java/org/oransc/policyagent/MockPolicyAgent.java @@ -27,100 +27,41 @@ import java.io.File; import java.io.IOException; import java.net.URL; import java.nio.file.Files; -import java.util.Vector; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.oransc.policyagent.clients.A1Client; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; import org.oransc.policyagent.configuration.ApplicationConfig; 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.Rics; +import org.oransc.policyagent.utils.MockA1ClientFactory; 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.test.context.junit4.SpringRunner; +import org.springframework.test.context.junit.jupiter.SpringExtension; -import reactor.core.publisher.Flux; -import reactor.core.publisher.Mono; - -@RunWith(SpringRunner.class) +@ExtendWith(SpringExtension.class) @SpringBootTest(webEnvironment = WebEnvironment.DEFINED_PORT) public class MockPolicyAgent { @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()); - } - } - - static class A1ClientMock implements A1Client { - private final Policies policies; - private final PolicyTypes policyTypes; - - A1ClientMock(Policies policies, PolicyTypes policyTypes) { - this.policies = policies; - this.policyTypes = policyTypes; - } - - @Override - public Flux getPolicyTypeIdentities(String nearRtRicUrl) { - Vector result = new Vector<>(); - for (PolicyType p : this.policyTypes.getAll()) { - result.add(p.name()); - } - return Flux.fromIterable(result); - } - - @Override - public Flux getPolicyIdentities(String nearRtRicUrl) { - Vector result = new Vector<>(); - for (Policy p : this.policies.getAll()) { - result.add(p.id()); - } - return Flux.fromIterable(result); - } - - @Override - public Mono getPolicyType(String nearRtRicUrl, String policyTypeId) { - try { - return Mono.just(this.policyTypes.getType(policyTypeId).toString()); - } catch (Exception e) { - return Mono.error(e); - } + return url.getFile(); } - - @Override - public Mono putPolicy(String nearRtRicUrl, String policyId, String policyString) { - return Mono.just("OK"); - } - - @Override - public Mono deletePolicy(String nearRtRicUrl, String policyId) { - return Mono.error(new Exception("TODO We cannot use Void like this")); // TODO We cannot use Void like this - } - } /** - * overrides the BeanFactory + * Overrides the BeanFactory. */ @TestConfiguration static class TestBeanFactory { @@ -135,8 +76,10 @@ public class MockPolicyAgent { } @Bean - A1Client getA1Client() { - return new A1ClientMock(this.policies, this.policyTypes); + public MockA1ClientFactory getA1ClientFactory() { + PolicyTypes ricTypes = new PolicyTypes(); + loadTypes(ricTypes); + return new MockA1ClientFactory(ricTypes); } @Bean @@ -154,12 +97,36 @@ public class MockPolicyAgent { return this.rics; } + private static File[] getResourceFolderFiles(String folder) { + ClassLoader loader = Thread.currentThread().getContextClassLoader(); + URL url = loader.getResource(folder); + String path = url.getPath(); + return new File(path).listFiles(); + } + + private static String readFile(File file) throws IOException { + return new String(Files.readAllBytes(file.toPath())); + } + + private void loadTypes(PolicyTypes policyTypes) { + File[] files = getResourceFolderFiles("policy_types/"); + for (File file : files) { + try { + String schema = readFile(file); + String typeName = title(schema); + PolicyType type = ImmutablePolicyType.builder().name(typeName).schema(schema).build(); + policyTypes.put(type); + } catch (Exception e) { + System.out.println("Could not load json schema " + e); + } + } + } } @LocalServerPort private int port; - public void keepServerAlive() { + private void keepServerAlive() { System.out.println("Keeping server alive!"); try { synchronized (this) { @@ -170,40 +137,14 @@ public class MockPolicyAgent { } } - private static File[] getResourceFolderFiles(String folder) { - ClassLoader loader = Thread.currentThread().getContextClassLoader(); - URL url = loader.getResource(folder); - String path = url.getPath(); - return new File(path).listFiles(); - } - - private static String readFile(File file) throws IOException { - return new String(Files.readAllBytes(file.toPath())); - } - 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; } - private static void loadTypes(PolicyTypes policyTypes) { - File[] files = getResourceFolderFiles("policy_types/"); - for (File file : files) { - try { - String schema = readFile(file); - String typeName = title(schema); - PolicyType type = ImmutablePolicyType.builder().name(typeName).build(); - policyTypes.put(type); - } catch (Exception e) { - System.out.println("Could not load json schema " + e); - } - } - } - @Test public void runMock() throws Exception { - loadTypes(this.policyTypes); keepServerAlive(); }