diff --git a/drivers/microsemi/src/test/java/org/onosproject/yang/serializers/xml/MockYangSerializerContext.java b/drivers/microsemi/src/test/java/org/onosproject/yang/serializers/xml/MockYangSerializerContext.java
index cfe7b9b..b6edbb4 100644
--- a/drivers/microsemi/src/test/java/org/onosproject/yang/serializers/xml/MockYangSerializerContext.java
+++ b/drivers/microsemi/src/test/java/org/onosproject/yang/serializers/xml/MockYangSerializerContext.java
@@ -15,6 +15,7 @@
  */
 package org.onosproject.yang.serializers.xml;
 
+import org.onosproject.yang.MockMicrosemiRegistrator;
 import org.onosproject.yang.model.SchemaContext;
 import org.onosproject.yang.runtime.Annotation;
 import org.onosproject.yang.runtime.DefaultAnnotation;
@@ -26,17 +27,19 @@
 
 public class MockYangSerializerContext implements YangSerializerContext {
 
-    private static MockYangSchemaNodeProvider schemaProvider =
-            new MockYangSchemaNodeProvider();
+    private static MockMicrosemiRegistrator schemaProvider =
+            new MockMicrosemiRegistrator();
     private static final String NETCONF_NS =
             "urn:ietf:params:xml:ns:netconf:base:1.0";
     private static final String XMNLS_NC = "xmlns:xc";
 
+    public MockYangSerializerContext() {
+        schemaProvider.activate();
+    }
 
     @Override
     public SchemaContext getContext() {
-        schemaProvider.processSchemaRegistry();
-        DefaultYangModelRegistry registry = schemaProvider.registry();
+        DefaultYangModelRegistry registry = (DefaultYangModelRegistry) schemaProvider.registry();
         return registry;
     }
 
