Expose EffectiveStatementInference from NormalizedAnyData
[yangtools.git] / yang / yang-data-codec-xml / src / test / java / org / opendaylight / yangtools / yang / data / codec / xml / AnydataNormalizeToContainerTest.java
index b65b22b71e7f178d73b8e1b5e3b13c695ba572c3..726e7abb0ec772d0872753aeeaea4f2f08656e40 100644 (file)
@@ -7,17 +7,14 @@
  */
 package org.opendaylight.yangtools.yang.data.codec.xml;
 
+import static org.hamcrest.CoreMatchers.instanceOf;
+import static org.hamcrest.MatcherAssert.assertThat;
 import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertTrue;
 
-import java.io.IOException;
-import java.net.URISyntaxException;
-import javax.xml.stream.XMLStreamException;
 import javax.xml.stream.XMLStreamReader;
 import org.junit.Test;
 import org.opendaylight.yangtools.util.xml.UntrustedXML;
 import org.opendaylight.yangtools.yang.data.api.schema.AnydataNode;
-import org.opendaylight.yangtools.yang.data.api.schema.AnydataNormalizationException;
 import org.opendaylight.yangtools.yang.data.api.schema.NormalizedAnydata;
 import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
 import org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStreamWriter;
@@ -26,24 +23,19 @@ import org.opendaylight.yangtools.yang.data.impl.schema.NormalizedNodeResult;
 import org.opendaylight.yangtools.yang.model.api.AnydataSchemaNode;
 import org.opendaylight.yangtools.yang.model.api.ContainerSchemaNode;
 import org.opendaylight.yangtools.yang.model.api.SchemaNode;
-import org.opendaylight.yangtools.yang.model.api.SchemaPath;
-import org.opendaylight.yangtools.yang.model.util.SchemaContextUtil;
-import org.xml.sax.SAXException;
+import org.opendaylight.yangtools.yang.model.api.stmt.SchemaNodeIdentifier.Absolute;
+import org.opendaylight.yangtools.yang.model.spi.DefaultSchemaTreeInference;
 
 public class AnydataNormalizeToContainerTest extends AbstractAnydataTest {
-
     @Test
-    public void testAnydataNormalizeToContainer()
-            throws XMLStreamException, SAXException, IOException, URISyntaxException, AnydataNormalizationException {
+    public void testAnydataNormalizeToContainer() throws Exception {
         //Create Data Scheme from yang file
-        SchemaPath anydataPath = SchemaPath.create(true, FOO_QNAME);
-        final SchemaNode fooSchemaNode = SchemaContextUtil.findDataSchemaNode(SCHEMA_CONTEXT, anydataPath);
-        assertTrue(fooSchemaNode instanceof AnydataSchemaNode);
+        final SchemaNode fooSchemaNode = SCHEMA_CONTEXT.findDataTreeChild(FOO_QNAME).orElse(null);
+        assertThat(fooSchemaNode, instanceOf(AnydataSchemaNode.class));
         final AnydataSchemaNode anyDataSchemaNode = (AnydataSchemaNode) fooSchemaNode;
 
-        SchemaPath containerPath = SchemaPath.create(true, CONT_QNAME);
-        final SchemaNode barSchemaNode = SchemaContextUtil.findDataSchemaNode(SCHEMA_CONTEXT, containerPath);
-        assertTrue(barSchemaNode instanceof ContainerSchemaNode);
+        final SchemaNode barSchemaNode = SCHEMA_CONTEXT.findDataTreeChild(CONT_QNAME).orElse(null);
+        assertThat(barSchemaNode, instanceOf(ContainerSchemaNode.class));
         final ContainerSchemaNode containerSchemaNode = (ContainerSchemaNode) barSchemaNode;
 
         // deserialization
@@ -59,14 +51,14 @@ public class AnydataNormalizeToContainerTest extends AbstractAnydataTest {
         final XmlParserStream xmlParser = XmlParserStream.create(streamWriter, SCHEMA_CONTEXT, anyDataSchemaNode);
         xmlParser.parse(reader);
 
-        final NormalizedNode<?, ?> transformedInput = result.getResult();
-        assertNotNull(transformedInput);
-        assertTrue(transformedInput instanceof AnydataNode);
+        final NormalizedNode transformedInput = result.getResult();
+        assertThat(transformedInput, instanceOf(AnydataNode.class));
         AnydataNode<?> anydataNode = (AnydataNode<?>) transformedInput;
 
         //Normalize anydata content to specific container element
-        DOMSourceAnydata domSourceAnydata = (DOMSourceAnydata) anydataNode.getValue();
-        NormalizedAnydata normalizedAnydata = domSourceAnydata.normalizeTo(SCHEMA_CONTEXT, containerSchemaNode);
+        DOMSourceAnydata domSourceAnydata = (DOMSourceAnydata) anydataNode.body();
+        NormalizedAnydata normalizedAnydata = domSourceAnydata.normalizeTo(
+            DefaultSchemaTreeInference.of(SCHEMA_CONTEXT, Absolute.of(CONT_QNAME)));
         assertNotNull(normalizedAnydata);
     }
 }