Fix odl-mdsal-rfc8294-netty
[mdsal.git] / binding / mdsal-binding-dom-adapter / src / test / java / org / opendaylight / mdsal / binding / dom / adapter / CurrentAdapterSerializerTest.java
index 7b9eafcc14f56c14cd90e7a61a4572de7d99dca0..71d46450a22c8e3b05defd24c6f4e26253e8412c 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.mdsal.binding.dom.codec.impl.BindingCodecContext;
-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.binding.DataObject;
+import org.opendaylight.yangtools.binding.DataObjectReference;
+import org.opendaylight.yangtools.binding.data.codec.spi.BindingDOMCodecFactory;
+import org.opendaylight.yangtools.binding.generator.impl.DefaultBindingRuntimeGenerator;
+import org.opendaylight.yangtools.binding.runtime.api.DefaultBindingRuntimeContext;
+import org.opendaylight.yangtools.binding.runtime.api.ModuleInfoSnapshot;
 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.ContainerNode;
 import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
-import org.opendaylight.yangtools.yang.data.impl.schema.Builders;
+import org.opendaylight.yangtools.yang.data.spi.node.ImmutableNodes;
 import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext;
-import org.opendaylight.yangtools.yang.model.repo.api.SourceIdentifier;
-import org.opendaylight.yangtools.yang.model.repo.api.YangTextSchemaSource;
+import org.opendaylight.yangtools.yang.model.api.source.SourceIdentifier;
+import org.opendaylight.yangtools.yang.model.api.source.YangTextSource;
+import org.opendaylight.yangtools.yang.model.repo.api.MissingSchemaSourceException;
 import org.opendaylight.yangtools.yang.test.util.YangParserTestUtils;
 
 public class CurrentAdapterSerializerTest {
@@ -50,11 +51,11 @@ 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 Entry<InstanceIdentifier<?>, DataObject> fromNormalizedNode = fromNormalizedNode(data, schemaCtx);
+        final var schemaCtx = YangParserTestUtils.parseYangResource("/test.yang");
+        final var data = prepareData(schemaCtx, Uint16.valueOf(42));
+        final var fromNormalizedNode = fromNormalizedNode(data, schemaCtx);
 
-        final DataObject value = fromNormalizedNode.getValue();
+        final var value = fromNormalizedNode.getValue();
         assertNotNull(value);
         final Class<? extends DataObject> iface = value.implementedInterface();
         assertEquals("Cont", iface.getSimpleName());
@@ -81,11 +82,11 @@ public class CurrentAdapterSerializerTest {
      */
     @Test
     public void fromNormalizedNodeWithAnotherInputDataTest() throws Exception {
-        final EffectiveModelContext schemaCtx = YangParserTestUtils.parseYangResource("/test.yang");
-        final NormalizedNode data = prepareData(schemaCtx, "42");
+        final var schemaCtx = YangParserTestUtils.parseYangResource("/test.yang");
+        final var data = prepareData(schemaCtx, "42");
 
-        final Entry<InstanceIdentifier<?>, DataObject> fromNormalizedNode = fromNormalizedNode(data, schemaCtx);
-        final DataObject value = fromNormalizedNode.getValue();
+        final var fromNormalizedNode = fromNormalizedNode(data, schemaCtx);
+        final var value = fromNormalizedNode.getValue();
         assertNotNull(value);
         final Class<? extends DataObject> iface = value.implementedInterface();
         assertEquals("Cont", iface.getSimpleName());
@@ -97,18 +98,18 @@ public class CurrentAdapterSerializerTest {
     }
 
     private static ContainerNode prepareData(final EffectiveModelContext schemaCtx, final Object value) {
-        return Builders.containerBuilder()
+        return ImmutableNodes.newContainerBuilder()
             .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())
+            .withChild(ImmutableNodes.leafNode(QName.create("urn:test", "2017-01-01", "vlan-id"), value))
             .build();
     }
 
-    private static Entry<InstanceIdentifier<?>, DataObject> fromNormalizedNode(final NormalizedNode data,
+    private static Entry<DataObjectReference<?>, DataObject> fromNormalizedNode(final NormalizedNode data,
             final EffectiveModelContext schemaCtx) {
-        final CurrentAdapterSerializer codec = new CurrentAdapterSerializer(new BindingCodecContext(
-            new DefaultBindingRuntimeContext(new DefaultBindingRuntimeGenerator().generateTypeMapping(schemaCtx),
+        final var codec = new CurrentAdapterSerializer(
+            ServiceLoader.load(BindingDOMCodecFactory.class).findFirst().orElseThrow()
+                .createBindingDOMCodec(new DefaultBindingRuntimeContext(
+                    new DefaultBindingRuntimeGenerator().generateTypeMapping(schemaCtx),
                     TestingModuleInfoSnapshot.INSTANCE)));
 
         final YangInstanceIdentifier path = YangInstanceIdentifier.of(NodeIdentifier.create(QName.create(
@@ -124,19 +125,25 @@ public class CurrentAdapterSerializerTest {
         }
 
         @Override
-        public EffectiveModelContext getEffectiveModelContext() {
-            throw new UnsupportedOperationException();
+        @SuppressWarnings("unchecked")
+        public <T> Class<T> loadClass(final String fullyQualifiedName) throws ClassNotFoundException {
+            return (Class<T>) Class.forName(fullyQualifiedName);
         }
 
         @Override
-        public ListenableFuture<? extends YangTextSchemaSource> getSource(final SourceIdentifier sourceIdentifier) {
-            throw new UnsupportedOperationException();
+        public YangTextSource yangTextSource(final SourceIdentifier arg0) {
+            return null;
         }
 
         @Override
-        @SuppressWarnings("unchecked")
-        public <T> Class<T> loadClass(final String fullyQualifiedName) throws ClassNotFoundException {
-            return (Class<T>) Class.forName(fullyQualifiedName);
+        public YangTextSource getYangTextSource(final SourceIdentifier sourceId) throws MissingSchemaSourceException {
+            throw new MissingSchemaSourceException(sourceId, "no sources");
+        }
+
+        @Override
+        public EffectiveModelContext modelContext() {
+            throw new UnsupportedOperationException();
         }
+
     }
 }