Move RefreshConfigTask under tasks
[nonrtric.git] / policy-agent / src / test / java / org / oransc / policyagent / MockPolicyAgent.java
index d7b9fec..8adc79a 100644 (file)
@@ -27,96 +27,34 @@ 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.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.Policy;
 import org.oransc.policyagent.repository.PolicyType;
 import org.oransc.policyagent.repository.PolicyTypes;
 import org.oransc.policyagent.repository.Rics;
-import org.springframework.beans.factory.annotation.Autowired;
+import org.oransc.policyagent.utils.MockA1Client;
 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;
-
     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<String> getPolicyTypeIdentities(String nearRtRicUrl) {
-            Vector<String> result = new Vector<>();
-            for (PolicyType p : this.policyTypes.getAll()) {
-                result.add(p.name());
-            }
-            return Flux.fromIterable(result);
-        }
-
-        @Override
-        public Flux<String> getPolicyIdentities(String nearRtRicUrl) {
-            Vector<String> result = new Vector<>();
-            for (Policy p : this.policies.getAll()) {
-                result.add(p.id());
-            }
-            return Flux.fromIterable(result);
-        }
-
-        @Override
-        public Mono<String> getPolicyType(String nearRtRicUrl, String policyTypeId) {
-            try {
-                return Mono.just(this.policyTypes.getType(policyTypeId).toString());
-            } catch (Exception e) {
-                return Mono.error(e);
-            }
-        }
-
-        @Override
-        public Mono<String> putPolicy(String nearRtRicUrl, String policyId, String policyString) {
-            return Mono.just("OK");
-        }
-
-        @Override
-        public Mono<Void> deletePolicy(String nearRtRicUrl, String policyId) {
-            return Mono.error(new Exception("TODO We cannot use Void like this")); // TODO We cannot use Void like this
+            return url.getFile();
         }
-
     }
 
     /**
@@ -135,8 +73,11 @@ public class MockPolicyAgent {
         }
 
         @Bean
-        A1Client getA1Client() {
-            return new A1ClientMock(this.policies, this.policyTypes);
+        public A1Client getA1Client() {
+            PolicyTypes ricTypes = new PolicyTypes();
+            loadTypes(ricTypes);
+            A1Client client = new MockA1Client(ricTypes);
+            return client;
         }
 
         @Bean
@@ -154,12 +95,37 @@ 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 +136,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);
         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();
     }