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=dda6426978139b328fa0f11f0d51d43fa20f7d9d;hb=d901722a4ebc68c78df8a2643a46287497d3ac81;hp=d02522c527a061597207e44d6c8ebb50b9328836;hpb=f0273617b916cdc8633382291b9986e33cc13fa1;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 d02522c5..dda64269 100644 --- a/policy-agent/src/test/java/org/oransc/policyagent/MockPolicyAgent.java +++ b/policy-agent/src/test/java/org/oransc/policyagent/MockPolicyAgent.java @@ -17,6 +17,7 @@ * limitations under the License. * ========================LICENSE_END=================================== */ + package org.oransc.policyagent; import com.google.gson.JsonObject; @@ -26,9 +27,11 @@ 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.oransc.policyagent.configuration.ApplicationConfig; import org.oransc.policyagent.repository.ImmutablePolicyType; import org.oransc.policyagent.repository.Policies; @@ -43,6 +46,9 @@ import org.springframework.boot.web.server.LocalServerPort; import org.springframework.context.annotation.Bean; import org.springframework.test.context.junit4.SpringRunner; +import reactor.core.publisher.Flux; +import reactor.core.publisher.Mono; + @RunWith(SpringRunner.class) @SpringBootTest(webEnvironment = WebEnvironment.DEFINED_PORT) public class MockPolicyAgent { @@ -64,16 +70,85 @@ public class MockPolicyAgent { } } + 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 getAllPolicyTypes(String nearRtRicUrl) { + Vector result = new Vector<>(); + for (PolicyType p : this.policyTypes.getAll()) { + result.add(p.name()); + } + return Flux.fromIterable(result); + } + + @Override + public Flux getPoliciesForType(String nearRtRicUrl, String policyTypeId) { + return Flux.empty(); + } + + @Override + public Mono getPolicy(String nearRtRicUrl, String policyId) { + try { + return Mono.just(this.policies.get(policyId).json()); + } catch (Exception e) { + return Mono.error(e); + } + } + + @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 */ @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(this.policies, this.policyTypes); + } + + @Bean + public Policies getPolicies() { + return this.policies; + } + + @Bean + public PolicyTypes getPolicyTypes() { + return this.policyTypes; + } + + @Bean + public Rics getRics() { + return this.rics; + } + } @LocalServerPort