Bump yangtools to 13.0.0
[mdsal.git] / binding / mdsal-binding-dom-adapter / src / test / java / org / opendaylight / mdsal / binding / dom / adapter / CurrentAdapterSerializerTest.java
index 5b47b74520a505dc9627163f3af3151e5d23eb80..e677a8625edfd1ce2e85690b624a90b7bfe91fa3 100644 (file)
@@ -13,28 +13,29 @@ import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertThrows;
 
+import com.google.common.util.concurrent.ListenableFuture;
 import java.lang.reflect.Field;
 import java.lang.reflect.InvocationTargetException;
 import java.lang.reflect.Method;
 import java.util.Map.Entry;
+import java.util.ServiceLoader;
 import org.junit.Test;
-import org.opendaylight.binding.runtime.api.DefaultBindingRuntimeContext;
-import org.opendaylight.binding.runtime.spi.GeneratedClassLoadingStrategy;
-import org.opendaylight.mdsal.binding.dom.codec.impl.BindingCodecContext;
+import org.opendaylight.mdsal.binding.dom.codec.spi.BindingDOMCodecFactory;
 import org.opendaylight.mdsal.binding.generator.impl.DefaultBindingRuntimeGenerator;
+import org.opendaylight.mdsal.binding.runtime.api.DefaultBindingRuntimeContext;
+import org.opendaylight.mdsal.binding.runtime.api.ModuleInfoSnapshot;
 import org.opendaylight.yangtools.yang.binding.DataObject;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.common.Uint16;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier;
-import org.opendaylight.yangtools.yang.data.api.schema.DataContainerChild;
+import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode;
 import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
 import org.opendaylight.yangtools.yang.data.impl.schema.Builders;
-import org.opendaylight.yangtools.yang.model.api.ContainerSchemaNode;
-import org.opendaylight.yangtools.yang.model.api.DataSchemaNode;
 import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext;
-import org.opendaylight.yangtools.yang.model.api.LeafSchemaNode;
+import org.opendaylight.yangtools.yang.model.api.source.SourceIdentifier;
+import org.opendaylight.yangtools.yang.model.api.source.YangTextSource;
 import org.opendaylight.yangtools.yang.test.util.YangParserTestUtils;
 
 public class CurrentAdapterSerializerTest {
@@ -51,7 +52,7 @@ public class CurrentAdapterSerializerTest {
     @Test
     public void fromNormalizedNodeTest() throws Exception {
         final EffectiveModelContext schemaCtx = YangParserTestUtils.parseYangResource("/test.yang");
-        final NormalizedNode<?, ?> data = prepareData(schemaCtx, Uint16.valueOf(42));
+        final NormalizedNode data = prepareData(schemaCtx, Uint16.valueOf(42));
         final Entry<InstanceIdentifier<?>, DataObject> fromNormalizedNode = fromNormalizedNode(data, schemaCtx);
 
         final DataObject value = fromNormalizedNode.getValue();
@@ -82,7 +83,7 @@ public class CurrentAdapterSerializerTest {
     @Test
     public void fromNormalizedNodeWithAnotherInputDataTest() throws Exception {
         final EffectiveModelContext schemaCtx = YangParserTestUtils.parseYangResource("/test.yang");
-        final NormalizedNode<?, ?> data = prepareData(schemaCtx, "42");
+        final NormalizedNode data = prepareData(schemaCtx, "42");
 
         final Entry<InstanceIdentifier<?>, DataObject> fromNormalizedNode = fromNormalizedNode(data, schemaCtx);
         final DataObject value = fromNormalizedNode.getValue();
@@ -96,26 +97,48 @@ public class CurrentAdapterSerializerTest {
         assertThat(ex.getCause(), instanceOf(IllegalArgumentException.class));
     }
 
-    private static NormalizedNode<?, ?> prepareData(final EffectiveModelContext schemaCtx, final Object value) {
-        final DataSchemaNode dataChildByName =
-                schemaCtx.getDataChildByName(QName.create("urn:test", "2017-01-01", "cont"));
-        final DataSchemaNode leaf = ((ContainerSchemaNode) dataChildByName)
-                .getDataChildByName(QName.create("urn:test", "2017-01-01", "vlan-id"));
-
-        final DataContainerChild<?, ?> child = Builders.leafBuilder((LeafSchemaNode) leaf).withValue(value).build();
-        final NormalizedNode<?, ?> data =
-                Builders.containerBuilder((ContainerSchemaNode) dataChildByName).withChild(child).build();
-        return data;
+    private static ContainerNode prepareData(final EffectiveModelContext schemaCtx, final Object value) {
+        return Builders.containerBuilder()
+            .withNodeIdentifier(new NodeIdentifier(QName.create("urn:test", "2017-01-01", "cont")))
+            .withChild(Builders.leafBuilder()
+                .withNodeIdentifier(new NodeIdentifier(QName.create("urn:test", "2017-01-01", "vlan-id")))
+                .withValue(value).build())
+            .build();
     }
 
-    private static Entry<InstanceIdentifier<?>, DataObject> fromNormalizedNode(final NormalizedNode<?, ?> data,
+    private static Entry<InstanceIdentifier<?>, DataObject> fromNormalizedNode(final NormalizedNode data,
             final EffectiveModelContext schemaCtx) {
-        final CurrentAdapterSerializer codec = new CurrentAdapterSerializer(new BindingCodecContext(
-            DefaultBindingRuntimeContext.create(new DefaultBindingRuntimeGenerator().generateTypeMapping(schemaCtx),
-                GeneratedClassLoadingStrategy.getTCCLClassLoadingStrategy())));
+        final CurrentAdapterSerializer codec = new CurrentAdapterSerializer(
+                ServiceLoader.load(BindingDOMCodecFactory.class).findFirst().orElseThrow().createBindingDOMCodec(
+                        new DefaultBindingRuntimeContext(new DefaultBindingRuntimeGenerator()
+                                .generateTypeMapping(schemaCtx), TestingModuleInfoSnapshot.INSTANCE)));
 
-        final YangInstanceIdentifier path = YangInstanceIdentifier.create(NodeIdentifier.create(QName.create(
+        final YangInstanceIdentifier path = YangInstanceIdentifier.of(NodeIdentifier.create(QName.create(
             "urn:test", "2017-01-01", "cont")));
         return codec.fromNormalizedNode(path, data);
     }
+
+    private static final class TestingModuleInfoSnapshot implements ModuleInfoSnapshot {
+        static final TestingModuleInfoSnapshot INSTANCE = new TestingModuleInfoSnapshot();
+
+        private TestingModuleInfoSnapshot() {
+            // Hidden on purpose
+        }
+
+        @Override
+        public EffectiveModelContext modelContext() {
+            throw new UnsupportedOperationException();
+        }
+
+        @Override
+        public ListenableFuture<? extends YangTextSource> getSource(final SourceIdentifier sourceIdentifier) {
+            throw new UnsupportedOperationException();
+        }
+
+        @Override
+        @SuppressWarnings("unchecked")
+        public <T> Class<T> loadClass(final String fullyQualifiedName) throws ClassNotFoundException {
+            return (Class<T>) Class.forName(fullyQualifiedName);
+        }
+    }
 }