import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull;
import static org.junit.Assert.fail;
-
import com.google.common.collect.Maps;
import com.google.gson.stream.JsonReader;
import com.google.gson.stream.JsonToken;
import java.io.StringReader;
import java.util.Map;
import org.junit.BeforeClass;
-import org.junit.Test;
-import org.opendaylight.controller.sal.rest.impl.StructuredDataToJsonProvider;
-import org.opendaylight.controller.sal.rest.impl.XmlToCompositeNodeProvider;
-import org.opendaylight.controller.sal.restconf.impl.RestconfDocumentedException;
-import org.opendaylight.controller.sal.restconf.impl.RestconfError.ErrorTag;
-import org.opendaylight.controller.sal.restconf.impl.test.TestUtils;
import org.opendaylight.controller.sal.restconf.impl.test.YangAndXmlAndDataSchemaLoader;
-import org.opendaylight.yangtools.yang.data.api.CompositeNode;
public class CnSnToJsonBasicDataTypesTest extends YangAndXmlAndDataSchemaLoader {
Object expectedValue;
JsonToken expectedToken;
- LeafVerifier(Object expectedValue, JsonToken expectedToken) {
+ LeafVerifier(final Object expectedValue, final JsonToken expectedToken) {
this.expectedValue = expectedValue;
this.expectedToken = expectedToken;
}
abstract Object getActualValue(JsonReader reader) throws IOException;
- void verify(JsonReader reader, String keyName) throws IOException {
+ void verify(final JsonReader reader, final String keyName) throws IOException {
assertEquals("Json value for key " + keyName, expectedValue, getActualValue(reader));
}
static class BooleanVerifier extends LeafVerifier {
- public BooleanVerifier(boolean expected) {
+ public BooleanVerifier(final boolean expected) {
super(expected, JsonToken.BOOLEAN);
}
@Override
- Object getActualValue(JsonReader reader) throws IOException {
+ Object getActualValue(final JsonReader reader) throws IOException {
return reader.nextBoolean();
}
}
static class NumberVerifier extends LeafVerifier {
- public NumberVerifier(Number expected) {
+ public NumberVerifier(final Number expected) {
super(expected, JsonToken.NUMBER);
}
@Override
- Object getActualValue(JsonReader reader) throws IOException {
+ Object getActualValue(final JsonReader reader) throws IOException {
if (expectedValue instanceof Double) {
return reader.nextDouble();
} else if (expectedValue instanceof Long) {
static class StringVerifier extends LeafVerifier {
- StringVerifier(String expected) {
+ StringVerifier(final String expected) {
super(expected, JsonToken.STRING);
}
@Override
- Object getActualValue(JsonReader reader) throws IOException {
+ Object getActualValue(final JsonReader reader) throws IOException {
return reader.nextString();
}
}
}
@Override
- Object getActualValue(JsonReader reader) throws IOException {
+ Object getActualValue(final JsonReader reader) throws IOException {
reader.beginArray();
reader.nextNull();
reader.endArray();
}
@Override
- void verify(JsonReader reader, String keyName) throws IOException {
+ void verify(final JsonReader reader, final String keyName) throws IOException {
reader.beginObject();
- String innerKey = reader.nextName();
+ final String innerKey = reader.nextName();
assertEquals("Json reader child key for " + keyName, "data", innerKey);
assertEquals("Json token type for key " + innerKey, JsonToken.BEGIN_OBJECT, reader.peek());
reader.endObject();
}
- void verifyNestedLists(JsonReader reader, int leafNum) throws IOException {
+ void verifyNestedLists(final JsonReader reader, int leafNum) throws IOException {
reader.beginObject();
- String nextName = reader.nextName();
+ final String nextName = reader.nextName();
assertEquals("Json reader next name", "nested-list", nextName);
reader.beginArray();
reader.endObject();
}
- void verifyLeaf(JsonReader reader, String parent, String name, String value) throws IOException {
- String nextName = reader.nextName();
+ void verifyLeaf(final JsonReader reader, final String parent, final String name, final String value) throws IOException {
+ final String nextName = reader.nextName();
assertEquals("Json reader child key for " + parent, name, nextName);
assertEquals("Json token type for key " + parent, JsonToken.STRING, reader.peek());
assertEquals("Json value for key " + nextName, value, reader.nextString());
}
@Override
- Object getActualValue(JsonReader reader) throws IOException {
+ Object getActualValue(final JsonReader reader) throws IOException {
return null;
}
}
dataLoad("/cnsn-to-json/simple-data-types");
}
- @Test
- public void simpleYangDataTest() throws Exception {
-
- CompositeNode compositeNode = TestUtils.readInputToCnSn("/cnsn-to-json/simple-data-types/xml/data.xml",
- XmlToCompositeNodeProvider.INSTANCE);
-
- TestUtils.normalizeCompositeNode(compositeNode, modules, "simple-data-types:cont");
-
- String jsonOutput = TestUtils.writeCompNodeWithSchemaContextToOutput(compositeNode, modules, dataSchemaNode,
- StructuredDataToJsonProvider.INSTANCE);
-
- assertNotNull(jsonOutput);
-
- verifyJsonOutput(jsonOutput);
- }
-
- private void verifyJsonOutput(String jsonOutput) {
- StringReader strReader = new StringReader(jsonOutput);
- JsonReader jReader = new JsonReader(strReader);
+ private void verifyJsonOutput(final String jsonOutput) {
+ final StringReader strReader = new StringReader(jsonOutput);
+ final JsonReader jReader = new JsonReader(strReader);
String exception = null;
try {
jsonReadCont(jReader);
- } catch (IOException e) {
+ } catch (final IOException e) {
exception = e.getMessage();
}
assertNull("Error during reading Json output: " + exception, exception);
}
- private void jsonReadCont(JsonReader jReader) throws IOException {
+ private void jsonReadCont(final JsonReader jReader) throws IOException {
jReader.beginObject();
assertNotNull("cont1 is missing.", jReader.hasNext());
// return dataFromJson;
}
- private void jsonReadContElements(JsonReader jReader) throws IOException {
+ private void jsonReadContElements(final JsonReader jReader) throws IOException {
jReader.beginObject();
- Map<String, LeafVerifier> expectedMap = Maps.newHashMap();
+ final Map<String, LeafVerifier> expectedMap = Maps.newHashMap();
expectedMap.put("lfnint8Min", new NumberVerifier(Integer.valueOf(-128)));
expectedMap.put("lfnint8Max", new NumberVerifier(Integer.valueOf(127)));
expectedMap.put("lfnint16Min", new NumberVerifier(Integer.valueOf(-32768)));
expectedMap.put("empty-any", new StringVerifier(""));
while (jReader.hasNext()) {
- String keyName = jReader.nextName();
- JsonToken peek = jReader.peek();
+ final String keyName = jReader.nextName();
+ final JsonToken peek = jReader.peek();
- LeafVerifier verifier = expectedMap.remove(keyName);
+ final LeafVerifier verifier = expectedMap.remove(keyName);
assertNotNull("Found unexpected leaf: " + keyName, verifier);
- JsonToken expToken = verifier.expectedTokenType();
+ final JsonToken expToken = verifier.expectedTokenType();
if (expToken != null) {
assertEquals("Json token type for key " + keyName, expToken, peek);
}
jReader.endObject();
}
- @Test
- public void testBadData() throws Exception {
-
- try {
- CompositeNode compositeNode = TestUtils.readInputToCnSn("/cnsn-to-json/simple-data-types/xml/bad-data.xml",
- XmlToCompositeNodeProvider.INSTANCE);
-
- TestUtils.normalizeCompositeNode(compositeNode, modules, "simple-data-types:cont");
- fail("Expected RestconfDocumentedException");
- } catch (RestconfDocumentedException e) {
- assertEquals("getErrorTag", ErrorTag.INVALID_VALUE, e.getErrors().get(0).getErrorTag());
- }
- }
}