diff --git a/drivers/microsemi/src/test/java/org/onosproject/yang/MockYangRuntimeManager.java b/drivers/microsemi/src/test/java/org/onosproject/yang/MockYangRuntimeManager.java
index e2f4389..5a7db94 100644
--- a/drivers/microsemi/src/test/java/org/onosproject/yang/MockYangRuntimeManager.java
+++ b/drivers/microsemi/src/test/java/org/onosproject/yang/MockYangRuntimeManager.java
@@ -26,9 +26,12 @@
 import org.onosproject.yang.model.NodeKey;
 import org.onosproject.yang.model.ResourceData;
 import org.onosproject.yang.model.ResourceId;
+import org.onosproject.yang.model.RpcContext;
 import org.onosproject.yang.model.SchemaContext;
 import org.onosproject.yang.model.SchemaContextProvider;
 import org.onosproject.yang.model.YangModel;
+import org.onosproject.yang.model.YangModule;
+import org.onosproject.yang.model.YangModuleId;
 import org.onosproject.yang.runtime.CompositeData;
 import org.onosproject.yang.runtime.CompositeStream;
 import org.onosproject.yang.runtime.ModelRegistrationParam;
@@ -38,6 +41,7 @@
 import org.onosproject.yang.runtime.YangSerializer;
 import org.onosproject.yang.runtime.YangSerializerRegistry;
 import org.onosproject.yang.runtime.impl.DefaultModelConverter;
+import org.onosproject.yang.runtime.impl.DefaultSchemaContextProvider;
 import org.onosproject.yang.runtime.impl.DefaultYangModelRegistry;
 import org.onosproject.yang.runtime.impl.DefaultYangRuntimeHandler;
 import org.onosproject.yang.runtime.impl.DefaultYangSerializerRegistry;
@@ -64,6 +68,7 @@
         private DefaultYangSerializerRegistry serializerRegistry;
         private DefaultYangRuntimeHandler runtimeService;
         private DefaultModelConverter modelConverter;
+        private DefaultSchemaContextProvider schemaContextProvider;
 
         public void setModelRegistry(DefaultYangModelRegistry yReg) {
             this.modelRegistry = yReg;
@@ -79,6 +84,7 @@
             serializerRegistry.registerSerializer(new JsonSerializer());
             serializerRegistry.registerSerializer(new XmlSerializer());
             modelConverter = new DefaultModelConverter(modelRegistry);
+            schemaContextProvider = new DefaultSchemaContextProvider(modelRegistry);
             log.info("Started");
         }
 
@@ -103,7 +109,17 @@
             return modelRegistry.getModels();
         }
 
-        @Override
+    @Override
+    public YangModel getModel(String s) {
+        return modelRegistry.getModel(s);
+    }
+
+    @Override
+    public YangModule getModule(YangModuleId yangModuleId) {
+        return modelRegistry.getModule(yangModuleId);
+    }
+
+    @Override
         public void registerSerializer(YangSerializer ys) {
             serializerRegistry.registerSerializer(ys);
         }
@@ -149,4 +165,9 @@
             log.info("To be implemented.");
             return null;
         }
+
+    @Override
+    public RpcContext getRpcContext(ResourceId resourceId) {
+        return schemaContextProvider.getRpcContext(resourceId);
+    }
 }
