Change DOM invokeRpc to FluentFuture
[mdsal.git] / binding / mdsal-binding-dom-adapter / src / test / java / org / opendaylight / mdsal / binding / dom / adapter / test / util / BindingTestContext.java
index 9eb9df47df15a1ac8e571ce9860fd4f4f922f907..710dd065c133bca3af22df7da5cc44721f89b5be 100644 (file)
@@ -14,12 +14,14 @@ import com.google.common.collect.ImmutableMap;
 import com.google.common.collect.ImmutableSet;
 import com.google.common.util.concurrent.ListeningExecutorService;
 import com.google.common.util.concurrent.MoreExecutors;
+import java.util.Set;
 import javassist.ClassPool;
 import org.opendaylight.mdsal.binding.api.DataBroker;
 import org.opendaylight.mdsal.binding.api.MountPointService;
 import org.opendaylight.mdsal.binding.api.NotificationPublishService;
 import org.opendaylight.mdsal.binding.api.NotificationService;
 import org.opendaylight.mdsal.binding.api.RpcConsumerRegistry;
+import org.opendaylight.mdsal.binding.api.RpcProviderService;
 import org.opendaylight.mdsal.binding.dom.adapter.BindingDOMDataBrokerAdapter;
 import org.opendaylight.mdsal.binding.dom.adapter.BindingDOMMountPointServiceAdapter;
 import org.opendaylight.mdsal.binding.dom.adapter.BindingDOMNotificationPublishServiceAdapter;
@@ -84,7 +86,7 @@ public class BindingTestContext implements AutoCloseable {
 
     private DOMNotificationService domListenService;
 
-
+    private Set<YangModuleInfo> schemaModuleInfos;
 
     public DOMDataBroker getDomAsyncDataBroker() {
         return newDOMDataBroker;
@@ -154,11 +156,11 @@ public class BindingTestContext implements AutoCloseable {
         mockSchemaService.registerSchemaContextListener(codec);
     }
 
-    private void updateYangSchema(final ImmutableSet<YangModuleInfo> moduleInfos) {
+    private void updateYangSchema(final Set<YangModuleInfo> moduleInfos) {
         mockSchemaService.changeSchema(getContext(moduleInfos));
     }
 
-    private static SchemaContext getContext(final ImmutableSet<YangModuleInfo> moduleInfos) {
+    private static SchemaContext getContext(final Set<YangModuleInfo> moduleInfos) {
         final ModuleInfoBackedContext ctx = ModuleInfoBackedContext.create();
         ctx.addModuleInfos(moduleInfos);
         return ctx.tryToCreateSchemaContext().get();
@@ -179,7 +181,10 @@ public class BindingTestContext implements AutoCloseable {
         startBindingBroker();
 
         startForwarding();
-        if (startWithSchema) {
+
+        if (schemaModuleInfos != null) {
+            updateYangSchema(schemaModuleInfos);
+        } else if (this.startWithSchema) {
             loadYangSchemaFromClasspath();
         }
     }
@@ -217,6 +222,14 @@ public class BindingTestContext implements AutoCloseable {
         return domRouter.getRpcService();
     }
 
+    public RpcProviderService getBindingRpcProviderRegistry() {
+        return baProviderRpc;
+    }
+
+    public RpcConsumerRegistry getBindingRpcConsumerRegistry() {
+        return baConsumerRpc;
+    }
+
     @Override
     public void close() throws Exception {
 
@@ -229,4 +242,8 @@ public class BindingTestContext implements AutoCloseable {
     public DataBroker getDataBroker() {
         return dataBroker;
     }
+
+    public void setSchemaModuleInfos(Set<YangModuleInfo> moduleInfos) {
+        this.schemaModuleInfos = moduleInfos;
+    }
 }