BUG-4688: eliminate SimpleDateFormatUtil.DEFAULT_DATE_REV
[yangtools.git] / yang / yang-data-codec-xml / src / test / java / org / opendaylight / yangtools / yang / data / codec / xml / YangModeledAnyXMLDeserializationTest.java
index 1aa608eefe24faac5f6183679af2974b23a7a1bc..2922c3875d5c686d380a641d72404ffbd53c7dde 100644 (file)
@@ -11,11 +11,11 @@ package org.opendaylight.yangtools.yang.data.codec.xml;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertTrue;
 
-import com.google.common.base.Optional;
 import java.io.InputStream;
 import java.net.URI;
 import java.util.Collection;
 import java.util.List;
+import java.util.Optional;
 import javax.annotation.Nonnull;
 import javax.xml.stream.XMLInputFactory;
 import javax.xml.stream.XMLStreamReader;
@@ -23,7 +23,6 @@ import org.junit.Before;
 import org.junit.Test;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.common.QNameModule;
-import org.opendaylight.yangtools.yang.common.SimpleDateFormatUtil;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.PathArgument;
 import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode;
@@ -33,11 +32,11 @@ import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
 import org.opendaylight.yangtools.yang.data.api.schema.YangModeledAnyXmlNode;
 import org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStreamWriter;
 import org.opendaylight.yangtools.yang.data.impl.schema.ImmutableNormalizedNodeStreamWriter;
-import org.opendaylight.yangtools.yang.data.impl.schema.builder.impl.ImmutableContainerNodeBuilder;
-import org.opendaylight.yangtools.yang.data.impl.schema.builder.impl.ImmutableContainerNodeSchemaAwareBuilder;
+import org.opendaylight.yangtools.yang.data.impl.schema.NormalizedNodeResult;
 import org.opendaylight.yangtools.yang.model.api.ConstraintDefinition;
 import org.opendaylight.yangtools.yang.model.api.ContainerSchemaNode;
 import org.opendaylight.yangtools.yang.model.api.DataSchemaNode;
+import org.opendaylight.yangtools.yang.model.api.Module;
 import org.opendaylight.yangtools.yang.model.api.SchemaContext;
 import org.opendaylight.yangtools.yang.model.api.SchemaPath;
 import org.opendaylight.yangtools.yang.model.api.Status;
@@ -60,27 +59,25 @@ public class YangModeledAnyXMLDeserializationTest {
     private SchemaContext schemaContext;
 
     @Before
-    public void Init() throws Exception {
-        barModuleQName = QNameModule.create(new URI("bar"), SimpleDateFormatUtil.getRevisionFormat()
-                .parse("1970-01-01"));
+    public void setUp() {
+        barModuleQName = QNameModule.create(URI.create("bar"), null);
         myContainer1 = QName.create(barModuleQName, "my-container-1");
         myLeaf1 = QName.create(barModuleQName, "my-leaf-1");
         myAnyXMLDataBar = QName.create(barModuleQName, "my-anyxml-data");
 
-        fooModuleQName = QNameModule.create(new URI("foo"), SimpleDateFormatUtil.getRevisionFormat()
-                .parse("1970-01-01"));
+        fooModuleQName = QNameModule.create(URI.create("foo"), null);
         myContainer2 = QName.create(fooModuleQName, "my-container-2");
         innerContainer = QName.create(fooModuleQName, "inner-container");
         myLeaf3 = QName.create(fooModuleQName, "my-leaf-3");
         myLeaf2 = QName.create(fooModuleQName, "my-leaf-2");
         myAnyXMLDataFoo = QName.create(fooModuleQName, "my-anyxml-data");
 
-        schemaContext = YangParserTestUtils.parseYangSources("/anyxml-support/yang");
+        schemaContext = YangParserTestUtils.parseYangResourceDirectory("/anyxml-support/yang");
     }
 
     @Test
     public void testRawAnyXMLFromBar() throws Exception {
-        DataSchemaNode barContainer = schemaContext.getDataChildByName(QName.create(barModuleQName, "bar"));;
+        DataSchemaNode barContainer = schemaContext.getDataChildByName(QName.create(barModuleQName, "bar"));
         assertTrue(barContainer instanceof ContainerSchemaNode);
         final YangModeledAnyXmlSchemaNode yangModeledAnyXML = new YangModeledAnyXMLSchemaNodeImplTest(myAnyXMLDataBar,
                 (ContainerSchemaNode) barContainer);
@@ -90,31 +87,31 @@ public class YangModeledAnyXMLDeserializationTest {
 
         final XMLInputFactory factory = XMLInputFactory.newInstance();
         final XMLStreamReader reader = factory.createXMLStreamReader(resourceAsStream);
-
-        final ImmutableContainerNodeBuilder result = (ImmutableContainerNodeBuilder) ImmutableContainerNodeSchemaAwareBuilder
-                        .create(yangModeledAnyXML.getSchemaOfAnyXmlData());
+        final NormalizedNodeResult result = new NormalizedNodeResult();
 
         final NormalizedNodeStreamWriter streamWriter = ImmutableNormalizedNodeStreamWriter.from(result);
 
         final XmlParserStream xmlParser = XmlParserStream.create(streamWriter, schemaContext, yangModeledAnyXML);
         xmlParser.parse(reader);
 
-        final NormalizedNode<?, ?> output = result.build();
+        final NormalizedNode<?, ?> output = result.getResult();
+        assertTrue(output instanceof YangModeledAnyXmlNode);
+        final YangModeledAnyXmlNode yangModeledAnyXmlNode = (YangModeledAnyXmlNode) output;
 
-        Collection<DataContainerChild<? extends PathArgument, ?>> value = ((ContainerNode) output).getValue();
+        Collection<DataContainerChild<? extends PathArgument, ?>> value = yangModeledAnyXmlNode.getValue();
         assertEquals(2, value.size());
 
-        Optional<DataContainerChild<? extends PathArgument, ?>> child = ((ContainerNode) output)
+        Optional<DataContainerChild<? extends PathArgument, ?>> child = yangModeledAnyXmlNode
                 .getChild(new NodeIdentifier(myContainer1));
-        assertTrue(child.orNull() instanceof ContainerNode);
+        assertTrue(child.orElse(null) instanceof ContainerNode);
         ContainerNode myContainerNode1 = (ContainerNode) child.get();
 
         Optional<DataContainerChild<? extends PathArgument, ?>> child2 = myContainerNode1.getChild(new NodeIdentifier(
                 myLeaf1));
-        assertTrue(child2.orNull() instanceof LeafNode);
-        LeafNode<?> LeafNode1 = (LeafNode<?>) child2.get();
+        assertTrue(child2.orElse(null) instanceof LeafNode);
+        LeafNode<?> leafNode1 = (LeafNode<?>) child2.get();
 
-        Object leafNode1Value = LeafNode1.getValue();
+        Object leafNode1Value = leafNode1.getValue();
         assertEquals("value1", leafNode1Value);
     }
 
@@ -122,24 +119,22 @@ public class YangModeledAnyXMLDeserializationTest {
     public void testRealSchemaContextFromFoo() throws Exception {
         final InputStream resourceAsStream = YangModeledAnyXMLDeserializationTest.class.getResourceAsStream(
                 "/anyxml-support/xml/foo.xml");
+        final Module foo = schemaContext.findModules("foo").iterator().next();
+        final YangModeledAnyXmlSchemaNode myAnyXmlData = (YangModeledAnyXmlSchemaNode) foo.getDataChildByName(
+                QName.create(foo.getQNameModule(), "my-anyxml-data"));
 
         final XMLInputFactory factory = XMLInputFactory.newInstance();
         final XMLStreamReader reader = factory.createXMLStreamReader(resourceAsStream);
-
-        final ImmutableContainerNodeBuilder result = (ImmutableContainerNodeBuilder) ImmutableContainerNodeSchemaAwareBuilder
-                .create(schemaContext);
+        final NormalizedNodeResult result = new NormalizedNodeResult();
 
         final NormalizedNodeStreamWriter streamWriter = ImmutableNormalizedNodeStreamWriter.from(result);
 
-        final XmlParserStream xmlParser = XmlParserStream.create(streamWriter, schemaContext);
+        final XmlParserStream xmlParser = XmlParserStream.create(streamWriter, schemaContext, myAnyXmlData);
         xmlParser.parse(reader);
 
-        final NormalizedNode<?, ?> output = result.build();
-
-        Optional<DataContainerChild<? extends PathArgument, ?>> child = ((ContainerNode) output).getChild(
-                new NodeIdentifier(myAnyXMLDataFoo));
-        assertTrue(child.orNull() instanceof YangModeledAnyXmlNode);
-        YangModeledAnyXmlNode yangModeledAnyXmlNode = (YangModeledAnyXmlNode) child.get();
+        final NormalizedNode<?, ?> output = result.getResult();
+        assertTrue(output instanceof YangModeledAnyXmlNode);
+        final YangModeledAnyXmlNode yangModeledAnyXmlNode = (YangModeledAnyXmlNode) output;
 
         DataSchemaNode schemaOfAnyXmlData = yangModeledAnyXmlNode.getSchemaOfAnyXmlData();
         DataSchemaNode expectedSchemaOfAnyXmlData = schemaContext.getDataChildByName(myContainer2);
@@ -150,32 +145,32 @@ public class YangModeledAnyXMLDeserializationTest {
 
         Optional<DataContainerChild<? extends PathArgument, ?>> child2 = yangModeledAnyXmlNode
                 .getChild(new NodeIdentifier(innerContainer));
-        assertTrue(child2.orNull() instanceof ContainerNode);
+        assertTrue(child2.orElse(null) instanceof ContainerNode);
         ContainerNode innerContainerNode = (ContainerNode) child2.get();
 
         Optional<DataContainerChild<? extends PathArgument, ?>> child3 = innerContainerNode
                 .getChild(new NodeIdentifier(myLeaf2));
-        assertTrue(child3.orNull() instanceof LeafNode);
-        LeafNode<?> LeafNode2 = (LeafNode<?>) child3.get();
+        assertTrue(child3.orElse(null) instanceof LeafNode);
+        LeafNode<?> leafNode2 = (LeafNode<?>) child3.get();
 
-        Object leafNode2Value = LeafNode2.getValue();
+        Object leafNode2Value = leafNode2.getValue();
         assertEquals("any-xml-leaf-2-value", leafNode2Value);
 
         Optional<DataContainerChild<? extends PathArgument, ?>> child4 = yangModeledAnyXmlNode
                 .getChild(new NodeIdentifier(myLeaf3));
-        assertTrue(child4.orNull() instanceof LeafNode);
-        LeafNode<?> LeafNode3 = (LeafNode<?>) child4.get();
+        assertTrue(child4.orElse(null) instanceof LeafNode);
+        LeafNode<?> leafNode3 = (LeafNode<?>) child4.get();
 
-        Object leafNode3Value = LeafNode3.getValue();
+        Object leafNode3Value = leafNode3.getValue();
         assertEquals("any-xml-leaf-3-value", leafNode3Value);
     }
 
-    private static class YangModeledAnyXMLSchemaNodeImplTest implements YangModeledAnyXmlSchemaNode {
-        private final QName qName;
+    private static final class YangModeledAnyXMLSchemaNodeImplTest implements YangModeledAnyXmlSchemaNode {
+        private final QName qname;
         private final ContainerSchemaNode contentSchema;
 
-        private YangModeledAnyXMLSchemaNodeImplTest(QName qName, ContainerSchemaNode contentSchema) {
-            this.qName = qName;
+        YangModeledAnyXMLSchemaNodeImplTest(final QName qname, final ContainerSchemaNode contentSchema) {
+            this.qname = qname;
             this.contentSchema = contentSchema;
         }
 
@@ -202,7 +197,7 @@ public class YangModeledAnyXMLDeserializationTest {
         @Nonnull
         @Override
         public QName getQName() {
-            return qName;
+            return qname;
         }
 
         @Nonnull