X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=yang%2Fyang-data-codec-gson%2Fsrc%2Ftest%2Fjava%2Forg%2Fopendaylight%2Fyangtools%2Fyang%2Fdata%2Fcodec%2Fgson%2FStreamToNormalizedNodeTest.java;h=7af0cb752a8ea2f41b0e956d2c40a516c797e387;hb=21b3fb1ea12d1e28115f6c216bbbfd9c80b2216f;hp=e38c63bbf5ce375a175d5eaa667fbcbc3d49d9dc;hpb=d38f557d544ef96a3a379c652248c6812ca35a13;p=yangtools.git diff --git a/yang/yang-data-codec-gson/src/test/java/org/opendaylight/yangtools/yang/data/codec/gson/StreamToNormalizedNodeTest.java b/yang/yang-data-codec-gson/src/test/java/org/opendaylight/yangtools/yang/data/codec/gson/StreamToNormalizedNodeTest.java index e38c63bbf5..7af0cb752a 100644 --- a/yang/yang-data-codec-gson/src/test/java/org/opendaylight/yangtools/yang/data/codec/gson/StreamToNormalizedNodeTest.java +++ b/yang/yang-data-codec-gson/src/test/java/org/opendaylight/yangtools/yang/data/codec/gson/StreamToNormalizedNodeTest.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2014 Cisco Systems, Inc. and others. All rights reserved. + * Copyright (c) 2016 Cisco Systems, Inc. and others. All rights reserved. * * This program and the accompanying materials are made available under the * terms of the Eclipse Public License v1.0 which accompanies this distribution, @@ -7,34 +7,30 @@ */ package org.opendaylight.yangtools.yang.data.codec.gson; +import static org.opendaylight.yangtools.yang.data.codec.gson.TestUtils.loadTextFile; + +import org.opendaylight.yangtools.yang.model.api.SchemaPath; + import com.google.gson.stream.JsonReader; -import java.io.BufferedReader; import java.io.File; -import java.io.FileNotFoundException; -import java.io.FileReader; import java.io.IOException; import java.io.StringReader; import java.io.StringWriter; import java.net.URISyntaxException; -import java.util.ArrayList; -import java.util.List; import org.junit.BeforeClass; +import org.junit.Ignore; import org.junit.Test; -import org.opendaylight.yangtools.yang.common.QName; -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; import org.opendaylight.yangtools.yang.data.api.schema.DataContainerChild; import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode; import org.opendaylight.yangtools.yang.data.api.schema.stream.LoggingNormalizedNodeStreamWriter; import org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStreamWriter; import org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeWriter; -import org.opendaylight.yangtools.yang.data.impl.schema.Builders; import org.opendaylight.yangtools.yang.data.impl.schema.ImmutableNormalizedNodeStreamWriter; -import org.opendaylight.yangtools.yang.data.impl.schema.builder.api.NormalizedNodeContainerBuilder; +import org.opendaylight.yangtools.yang.data.impl.schema.NormalizedNodeResult; import org.opendaylight.yangtools.yang.model.api.SchemaContext; -import org.opendaylight.yangtools.yang.model.parser.api.YangContextParser; -import org.opendaylight.yangtools.yang.parser.impl.YangParserImpl; +import org.opendaylight.yangtools.yang.parser.spi.meta.ReactorException; +import org.opendaylight.yangtools.yang.test.util.YangParserTestUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -44,8 +40,8 @@ public class StreamToNormalizedNodeTest { private static String streamAsString; @BeforeClass - public static void initialization() throws IOException, URISyntaxException { - schemaContext = loadModules("/complexjson/yang"); + public static void initialization() throws IOException, URISyntaxException, ReactorException { + schemaContext = YangParserTestUtils.parseYangSources("/complexjson/yang"); streamAsString = loadTextFile(new File(StreamToNormalizedNodeTest.class.getResource( "/complexjson/complex-json.json").toURI())); } @@ -76,17 +72,17 @@ public class StreamToNormalizedNodeTest { * * @throws IOException */ + @Ignore @Test public void immutableNormalizedNodeStreamWriterDemonstration() throws IOException { /* * This is the parsing part */ // This is where we will output the nodes - final NormalizedNodeContainerBuilder> parent = - Builders.containerBuilder().withNodeIdentifier(new NodeIdentifier(QName.create("dummy", "2014-12-31", "dummy"))); + NormalizedNodeResult result = new NormalizedNodeResult(); // StreamWriter which attaches NormalizedNode under parent - final NormalizedNodeStreamWriter streamWriter = ImmutableNormalizedNodeStreamWriter.from(parent); + final NormalizedNodeStreamWriter streamWriter = ImmutableNormalizedNodeStreamWriter.from(result); // JSON -> StreamWriter parser try (JsonParserStream handler = JsonParserStream.create(streamWriter, schemaContext)) { @@ -94,21 +90,24 @@ public class StreamToNormalizedNodeTest { } // Finally build the node - final NormalizedNode parsedData = parent.build(); + final NormalizedNode parsedData = result.getResult(); LOG.debug("Parsed NormalizedNodes: {}", parsedData); /* * This is the serialization part. */ // We want to write the first child out - final DataContainerChild firstChild = ((ContainerNode) parsedData).getValue().iterator().next(); + final DataContainerChild firstChild = (DataContainerChild) parsedData; LOG.debug("Serializing first child: {}", firstChild); // String holder final StringWriter writer = new StringWriter(); // StreamWriter which outputs JSON strings - final NormalizedNodeStreamWriter jsonStream = JSONNormalizedNodeStreamWriter.create(schemaContext, writer, 2); + // StreamWriter which outputs JSON strings + final NormalizedNodeStreamWriter jsonStream = JSONNormalizedNodeStreamWriter. + createExclusiveWriter(JSONCodecFactory.create(schemaContext), SchemaPath.ROOT, null, + JsonWriterFactory.createJsonWriter(writer, 2)); // NormalizedNode -> StreamWriter final NormalizedNodeWriter nodeWriter = NormalizedNodeWriter.forStreamWriter(jsonStream); @@ -120,33 +119,4 @@ public class StreamToNormalizedNodeTest { LOG.debug("Serialized JSON: {}", writer.toString()); } - private static SchemaContext loadModules(final String resourceDirectory) throws IOException { - YangContextParser parser = new YangParserImpl(); - String path = StreamToNormalizedNodeTest.class.getResource(resourceDirectory).getPath(); - final File testDir = new File(path); - final String[] fileList = testDir.list(); - final List testFiles = new ArrayList(); - if (fileList == null) { - throw new FileNotFoundException(resourceDirectory); - } - for (String fileName : fileList) { - if (new File(testDir, fileName).isDirectory() == false) { - testFiles.add(new File(testDir, fileName)); - } - } - return parser.parseFiles(testFiles); - } - - private static String loadTextFile(final File file) throws IOException { - FileReader fileReader = new FileReader(file); - BufferedReader bufReader = new BufferedReader(fileReader); - - String line = null; - StringBuilder result = new StringBuilder(); - while ((line = bufReader.readLine()) != null) { - result.append(line); - } - bufReader.close(); - return result.toString(); - } }