Refactor AbstractDataBrokerTestCustomizer
[mdsal.git] / binding / mdsal-binding-dom-adapter / src / test / java / org / opendaylight / mdsal / binding / dom / adapter / test / util / MockSchemaService.java
index 32545a185476aff520e5808a6b9e101797916c53..4e69e938050e82f8c89cff1c555e1ad9795747bf 100644 (file)
@@ -7,8 +7,14 @@
  */
 package org.opendaylight.mdsal.binding.dom.adapter.test.util;
 
+import static com.google.common.base.Verify.verifyNotNull;
+
 import com.google.common.collect.ClassToInstanceMap;
 import com.google.common.collect.ImmutableClassToInstanceMap;
+import org.opendaylight.mdsal.binding.dom.adapter.AdapterContext;
+import org.opendaylight.mdsal.binding.dom.adapter.CurrentAdapterSerializer;
+import org.opendaylight.mdsal.binding.dom.codec.impl.BindingCodecContext;
+import org.opendaylight.mdsal.binding.runtime.api.BindingRuntimeContext;
 import org.opendaylight.mdsal.dom.api.DOMSchemaService;
 import org.opendaylight.mdsal.dom.api.DOMSchemaServiceExtension;
 import org.opendaylight.yangtools.concepts.ListenerRegistration;
@@ -17,9 +23,9 @@ import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext;
 import org.opendaylight.yangtools.yang.model.api.EffectiveModelContextListener;
 import org.opendaylight.yangtools.yang.model.api.EffectiveModelContextProvider;
 
-public final class MockSchemaService implements DOMSchemaService, EffectiveModelContextProvider {
-
+public final class MockSchemaService implements DOMSchemaService, EffectiveModelContextProvider, AdapterContext {
     private EffectiveModelContext schemaContext;
+    private CurrentAdapterSerializer serializer;
 
     final ListenerRegistry<EffectiveModelContextListener> listeners = ListenerRegistry.create();
 
@@ -44,8 +50,14 @@ public final class MockSchemaService implements DOMSchemaService, EffectiveModel
         return ImmutableClassToInstanceMap.of();
     }
 
-    public synchronized void changeSchema(final EffectiveModelContext newContext) {
-        schemaContext = newContext;
+    public synchronized void changeSchema(final BindingRuntimeContext newContext) {
+        serializer = new CurrentAdapterSerializer(new BindingCodecContext(newContext));
+        schemaContext = newContext.getEffectiveModelContext();
         listeners.streamListeners().forEach(listener -> listener.onModelContextUpdated(schemaContext));
     }
+
+    @Override
+    public synchronized CurrentAdapterSerializer currentSerializer() {
+        return verifyNotNull(serializer);
+    }
 }