X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=policy-agent%2Fsrc%2Ftest%2Fjava%2Forg%2Foransc%2Fpolicyagent%2Futils%2FMockA1ClientFactory.java;h=c1fd8c3148223043de0575072e22e91b0c1ba026;hb=f717be406eb84bfcd42d844e4791cfd74dd2ad02;hp=b635cb735cd8d56684e456b7780412517b408ac0;hpb=ff56d2600d074ac0a4473c81b8193004a316c2f8;p=nonrtric.git diff --git a/policy-agent/src/test/java/org/oransc/policyagent/utils/MockA1ClientFactory.java b/policy-agent/src/test/java/org/oransc/policyagent/utils/MockA1ClientFactory.java index b635cb73..c1fd8c31 100644 --- a/policy-agent/src/test/java/org/oransc/policyagent/utils/MockA1ClientFactory.java +++ b/policy-agent/src/test/java/org/oransc/policyagent/utils/MockA1ClientFactory.java @@ -20,43 +20,56 @@ package org.oransc.policyagent.utils; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.spy; + import java.lang.invoke.MethodHandles; +import java.time.Duration; import java.util.HashMap; import java.util.Map; import org.oransc.policyagent.clients.A1Client; import org.oransc.policyagent.clients.A1ClientFactory; +import org.oransc.policyagent.configuration.ApplicationConfig; import org.oransc.policyagent.repository.PolicyTypes; import org.oransc.policyagent.repository.Ric; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import reactor.core.publisher.Mono; public class MockA1ClientFactory extends A1ClientFactory { private static final Logger logger = LoggerFactory.getLogger(MethodHandles.lookup().lookupClass()); private final Map clients = new HashMap<>(); private final PolicyTypes policyTypes; + private Duration asynchDelay = Duration.ofSeconds(0); public MockA1ClientFactory(PolicyTypes policyTypes) { + super(mock(ApplicationConfig.class)); this.policyTypes = policyTypes; } @Override - protected A1Client createStdA1ClientImpl(Ric ric) { - return getOrCreateA1Client(ric.name()); - } - - @Override - protected A1Client createControllerA1Client(Ric ric) { - return getOrCreateA1Client(ric.name()); + public Mono createA1Client(Ric ric) { + return Mono.just(getOrCreateA1Client(ric.name())); } public MockA1Client getOrCreateA1Client(String ricName) { if (!clients.containsKey(ricName)) { logger.debug("Creating client for RIC: {}", ricName); - MockA1Client client = new MockA1Client(policyTypes); + MockA1Client client = spy(new MockA1Client(policyTypes, asynchDelay)); clients.put(ricName, client); } return clients.get(ricName); } + /** + * Simulate network latency. The REST responses will be generated by separate + * threads + * + * @param delay the delay between the request and the response + */ + public void setResponseDelay(Duration delay) { + this.asynchDelay = delay; + } + }