Split STATIC_CODECS into per-type caches
[mdsal.git] / binding / mdsal-binding-dom-codec / src / test / java / org / opendaylight / mdsal / binding / dom / codec / impl / AbstractBindingCodecTest.java
index 8b8b46b1ba41f4b3c15e069ef9dd862716222317..9a711376078828da5052b643a9893c8c40f57c8c 100644 (file)
@@ -7,12 +7,19 @@
  */
 package org.opendaylight.mdsal.binding.dom.codec.impl;
 
+import static org.junit.Assert.assertEquals;
+
+import java.util.Map.Entry;
 import org.junit.AfterClass;
 import org.junit.Before;
 import org.junit.BeforeClass;
+import org.opendaylight.yangtools.yang.binding.DataObject;
+import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
+import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
+import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
 
 public abstract class AbstractBindingCodecTest extends AbstractBindingRuntimeTest {
-    protected BindingNormalizedNodeCodecRegistry registry;
+    protected BindingCodecContext codecContext;
 
     @BeforeClass
     public static void beforeClass() {
@@ -26,6 +33,15 @@ public abstract class AbstractBindingCodecTest extends AbstractBindingRuntimeTes
 
     @Before
     public void before() {
-        this.registry = new BindingNormalizedNodeCodecRegistry(getRuntimeContext());
+        this.codecContext = new BindingCodecContext(getRuntimeContext());
+    }
+
+    @SuppressWarnings("unchecked")
+    protected <T extends DataObject> T thereAndBackAgain(final InstanceIdentifier<T> path, final T data) {
+        final Entry<YangInstanceIdentifier, NormalizedNode> there = codecContext.toNormalizedNode(path, data);
+        final Entry<InstanceIdentifier<?>, DataObject> backAgain = codecContext.fromNormalizedNode(there.getKey(),
+            there.getValue());
+        assertEquals(path, backAgain.getKey());
+        return (T) backAgain.getValue();
     }
 }