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 {
*/
@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());
*/
@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());
}
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(
}
@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();
}
+
}
}