InstanceIdentifierContext does not take generics
[netconf.git] / restconf / restconf-nb-rfc8040 / src / test / java / org / opendaylight / restconf / nb / rfc8040 / TestRestconfUtils.java
index 9fd81a2f394add87c8f03602f16f17e2e9fbd82d..dfdd73620e3037714a33af4b54b245036a685609 100644 (file)
@@ -14,16 +14,16 @@ import java.io.IOException;
 import java.io.InputStream;
 import java.net.URISyntaxException;
 import java.util.ArrayList;
-import java.util.Collection;
 import java.util.List;
 import java.util.Optional;
 import javax.xml.parsers.ParserConfigurationException;
 import javax.xml.stream.XMLStreamException;
 import javax.xml.transform.dom.DOMSource;
 import org.opendaylight.restconf.common.context.InstanceIdentifierContext;
-import org.opendaylight.restconf.common.context.NormalizedNodeContext;
+import org.opendaylight.restconf.nb.rfc8040.legacy.NormalizedNodePayload;
 import org.opendaylight.restconf.nb.rfc8040.utils.parser.ParserIdentifier;
 import org.opendaylight.yangtools.util.xml.UntrustedXML;
+import org.opendaylight.yangtools.yang.common.YangConstants;
 import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
 import org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStreamWriter;
 import org.opendaylight.yangtools.yang.data.codec.xml.XmlParserStream;
@@ -36,6 +36,7 @@ import org.opendaylight.yangtools.yang.model.api.EffectiveModelContext;
 import org.opendaylight.yangtools.yang.model.api.ListSchemaNode;
 import org.opendaylight.yangtools.yang.model.api.RpcDefinition;
 import org.opendaylight.yangtools.yang.model.api.SchemaNode;
+import org.opendaylight.yangtools.yang.model.util.SchemaInferenceStack;
 import org.opendaylight.yangtools.yang.test.util.YangParserTestUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -67,27 +68,23 @@ public final class TestRestconfUtils {
         return schemaContext;
     }
 
-    public static NormalizedNodeContext loadNormalizedContextFromJsonFile() {
-        throw new AbstractMethodError("Not implemented yet");
-    }
-
     @SuppressWarnings("checkstyle:IllegalCatch")
-    public static NormalizedNodeContext loadNormalizedContextFromXmlFile(final String pathToInputFile,
+    public static NormalizedNodePayload loadNormalizedContextFromXmlFile(final String pathToInputFile,
             final String uri, final EffectiveModelContext schemaContext) {
-        final InstanceIdentifierContext<?> iiContext =
+        final InstanceIdentifierContext iiContext =
                 ParserIdentifier.toInstanceIdentifier(uri, schemaContext, Optional.empty());
         final InputStream inputStream = TestRestconfUtils.class.getResourceAsStream(pathToInputFile);
         try {
             final Document doc = UntrustedXML.newDocumentBuilder().parse(inputStream);
-            final NormalizedNode<?, ?> nn = parse(iiContext, doc);
-            return new NormalizedNodeContext(iiContext, nn);
+            final NormalizedNode nn = parse(iiContext, doc);
+            return NormalizedNodePayload.of(iiContext, nn);
         } catch (final Exception e) {
-            LOG.error("Load xml file " + pathToInputFile + " fail.", e);
+            LOG.error("Load xml file {} fail.", pathToInputFile, e);
         }
         return null;
     }
 
-    private static NormalizedNode<?, ?> parse(final InstanceIdentifierContext<?> iiContext, final Document doc)
+    private static NormalizedNode parse(final InstanceIdentifierContext iiContext, final Document doc)
             throws XMLStreamException, IOException, ParserConfigurationException, SAXException, URISyntaxException {
         final SchemaNode schemaNodeContext = iiContext.getSchemaNode();
         DataSchemaNode schemaNode = null;
@@ -120,7 +117,8 @@ public final class TestRestconfUtils {
 
         final NormalizedNodeResult resultHolder = new NormalizedNodeResult();
         final NormalizedNodeStreamWriter writer = ImmutableNormalizedNodeStreamWriter.from(resultHolder);
-        final XmlParserStream xmlParser = XmlParserStream.create(writer, iiContext.getSchemaContext(), schemaNode);
+        final XmlParserStream xmlParser = XmlParserStream.create(writer,
+            SchemaInferenceStack.ofInstantiatedPath(iiContext.getSchemaContext(), schemaNode.getPath()).toInference());
 
         if (schemaNode instanceof ContainerSchemaNode || schemaNode instanceof ListSchemaNode) {
             xmlParser.traverse(new DOMSource(doc.getDocumentElement()));
@@ -130,7 +128,7 @@ public final class TestRestconfUtils {
         return null;
     }
 
-    public static Collection<File> loadFiles(final String resourceDirectory) throws FileNotFoundException {
+    public static List<File> loadFiles(final String resourceDirectory) throws FileNotFoundException {
         final String path = TestRestconfUtils.class.getResource(resourceDirectory).getPath();
         final File testDir = new File(path);
         final String[] fileList = testDir.list();
@@ -139,7 +137,8 @@ public final class TestRestconfUtils {
             throw new FileNotFoundException(resourceDirectory);
         }
         for (final String fileName : fileList) {
-            if (new File(testDir, fileName).isDirectory() == false) {
+            if (fileName.endsWith(YangConstants.RFC6020_YANG_FILE_EXTENSION)
+                && !new File(testDir, fileName).isDirectory()) {
                 testFiles.add(new File(testDir, fileName));
             }
         }