X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=opendaylight%2Fmd-sal%2Fsal-rest-connector%2Fsrc%2Ftest%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fsal%2Frestconf%2Fimpl%2Fjson%2Fto%2Fcnsn%2Ftest%2FJsonToCnSnTest.java;h=3699e4924fe25ca2c8a4b1399fe005376de3a86d;hb=48daeb11697dbb83f554b64fe8702e21de3e0a12;hp=3c70cca0f87806d28b73273423fa7b546b1631c6;hpb=ec82a960337ba51c2e896863a668dcf8fbcfcb6b;p=controller.git
diff --git a/opendaylight/md-sal/sal-rest-connector/src/test/java/org/opendaylight/controller/sal/restconf/impl/json/to/cnsn/test/JsonToCnSnTest.java b/opendaylight/md-sal/sal-rest-connector/src/test/java/org/opendaylight/controller/sal/restconf/impl/json/to/cnsn/test/JsonToCnSnTest.java
index 3c70cca0f8..3699e4924f 100644
--- a/opendaylight/md-sal/sal-rest-connector/src/test/java/org/opendaylight/controller/sal/restconf/impl/json/to/cnsn/test/JsonToCnSnTest.java
+++ b/opendaylight/md-sal/sal-rest-connector/src/test/java/org/opendaylight/controller/sal/restconf/impl/json/to/cnsn/test/JsonToCnSnTest.java
@@ -9,12 +9,15 @@ package org.opendaylight.controller.sal.restconf.impl.json.to.cnsn.test;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.fail;
+import java.io.ByteArrayInputStream;
+import java.io.InputStream;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
-
import org.junit.Ignore;
import org.junit.Test;
import org.opendaylight.controller.sal.rest.impl.JsonToCompositeNodeProvider;
@@ -50,19 +53,21 @@ public class JsonToCnSnTest {
*/
@Test
public void multipleItemsInLeafList() {
- CompositeNode compositeNode = TestUtils.readInputToCnSn("/json-to-cnsn/multiple-leaflist-items.json", true,
+ Node> node = TestUtils.readInputToCnSn("/json-to-cnsn/multiple-leaflist-items.json", true,
JsonToCompositeNodeProvider.INSTANCE);
- assertNotNull(compositeNode);
+ assertNotNull(node);
+ assertTrue(node instanceof CompositeNode);
+ CompositeNode compositeNode = (CompositeNode)node;
assertEquals(3, compositeNode.getValue().size());
boolean lflst1_1 = false;
boolean lflst1_2 = false;
boolean lflst1_3 = false;
- for (Node> node : compositeNode.getValue()) {
- assertEquals("lflst1", node.getNodeType().getLocalName());
- assertTrue(node instanceof SimpleNode>);
- SimpleNode> simpleNode = (SimpleNode>) node;
+ for (Node> nd : compositeNode.getValue()) {
+ assertEquals("lflst1", nd.getNodeType().getLocalName());
+ assertTrue(nd instanceof SimpleNode>);
+ SimpleNode> simpleNode = (SimpleNode>) nd;
if (simpleNode.getValue().equals("45")) {
lflst1_1 = true;
} else if (simpleNode.getValue().equals("55")) {
@@ -79,14 +84,17 @@ public class JsonToCnSnTest {
}
/**
- * List contains 4 items and in every item are other elements. It is
- * supposed that there should be: lf11, lflst11, cont11, lst11
+ * List contains 4 items and in every item are other elements. It is supposed that there should be: lf11, lflst11,
+ * cont11, lst11
*/
@Test
public void multipleItemsInListTest() {
- CompositeNode compositeNode = TestUtils.readInputToCnSn("/json-to-cnsn/multiple-items-in-list.json", true,
+ Node> node = TestUtils.readInputToCnSn("/json-to-cnsn/multiple-items-in-list.json", true,
JsonToCompositeNodeProvider.INSTANCE);
+ assertTrue(node instanceof CompositeNode);
+ CompositeNode compositeNode = (CompositeNode)node;
+
assertNotNull(compositeNode);
assertEquals("lst", compositeNode.getNodeType().getLocalName());
@@ -95,9 +103,10 @@ public class JsonToCnSnTest {
@Test
public void nullArrayToSimpleNodeWithNullValueTest() {
- CompositeNode compositeNode = TestUtils.readInputToCnSn("/json-to-cnsn/array-with-null.json", true,
+ Node> node = TestUtils.readInputToCnSn("/json-to-cnsn/array-with-null.json", true,
JsonToCompositeNodeProvider.INSTANCE);
- assertNotNull(compositeNode);
+ assertTrue(node instanceof CompositeNode);
+ CompositeNode compositeNode = (CompositeNode)node;
assertEquals("cont", compositeNode.getNodeType().getLocalName());
assertNotNull(compositeNode.getValue());
@@ -113,14 +122,19 @@ public class JsonToCnSnTest {
public void incorrectTopLevelElementsTest() {
RestconfDocumentedException cause1 = null;
try {
- TestUtils.readInputToCnSn("/json-to-cnsn/wrong-top-level1.json", true, JsonToCompositeNodeProvider.INSTANCE);
+ TestUtils
+ .readInputToCnSn("/json-to-cnsn/wrong-top-level1.json", true, JsonToCompositeNodeProvider.INSTANCE);
} catch (RestconfDocumentedException e) {
cause1 = e;
}
assertNotNull(cause1);
- assertTrue(cause1.getErrors().get( 0 ).getErrorMessage().contains(
- "First element in Json Object has to be \"Object\" or \"Array with one Object element\". Other scenarios are not supported yet."));
+ assertTrue(cause1
+ .getErrors()
+ .get(0)
+ .getErrorMessage()
+ .contains(
+ "First element in Json Object has to be \"Object\" or \"Array with one Object element\". Other scenarios are not supported yet."));
RestconfDocumentedException cause2 = null;
try {
@@ -130,33 +144,36 @@ public class JsonToCnSnTest {
cause2 = e;
}
assertNotNull(cause2);
- assertTrue(cause2.getErrors().get( 0 ).getErrorMessage().contains(
- "Json Object should contain one element"));
+ assertTrue(cause2.getErrors().get(0).getErrorMessage().contains("Json Object should contain one element"));
RestconfDocumentedException cause3 = null;
try {
TestUtils
- .readInputToCnSn("/json-to-cnsn/wrong-top-level3.json", true, JsonToCompositeNodeProvider.INSTANCE);
+ .readInputToCnSn("/json-to-cnsn/wrong-top-level3.json", true, JsonToCompositeNodeProvider.INSTANCE);
} catch (RestconfDocumentedException e) {
cause3 = e;
}
assertNotNull(cause3);
- assertTrue(cause3.getErrors().get( 0 ).getErrorMessage().contains(
- "First element in Json Object has to be \"Object\" or \"Array with one Object element\". Other scenarios are not supported yet."));
+ assertTrue(cause3
+ .getErrors()
+ .get(0)
+ .getErrorMessage()
+ .contains(
+ "First element in Json Object has to be \"Object\" or \"Array with one Object element\". Other scenarios are not supported yet."));
}
/**
- * if leaf list with no data is in json then no corresponding data is
- * created in composite node. if leaf with no data then exception is raised
+ * if leaf list with no data is in json then no corresponding data is created in composite node. if leaf with no
+ * data then exception is raised
*/
@Test
public void emptyDataReadTest() {
- CompositeNode compositeNode = TestUtils.readInputToCnSn("/json-to-cnsn/empty-data.json", true,
+ Node> node = TestUtils.readInputToCnSn("/json-to-cnsn/empty-data.json", true,
JsonToCompositeNodeProvider.INSTANCE);
-
- assertNotNull(compositeNode);
+ assertTrue(node instanceof CompositeNode);
+ CompositeNode compositeNode = (CompositeNode)node;
assertEquals("cont", compositeNode.getNodeType().getLocalName());
assertTrue(compositeNode instanceof CompositeNode);
@@ -169,25 +186,33 @@ public class JsonToCnSnTest {
try {
TestUtils.readInputToCnSn("/json-to-cnsn/empty-data1.json", true, JsonToCompositeNodeProvider.INSTANCE);
} catch (RestconfDocumentedException e) {
- reason = e.getErrors().get( 0 ).getErrorMessage();
+ reason = e.getErrors().get(0).getErrorMessage();
}
assertTrue(reason.contains("Expected value at line"));
}
+ @Test
+ public void testJsonBlankInput() throws Exception {
+ InputStream inputStream = new ByteArrayInputStream("".getBytes());
+ Node> node =
+ JsonToCompositeNodeProvider.INSTANCE.readFrom(null, null, null, null, null, inputStream);
+ assertNull( node );
+ }
+
/**
- * Tests whether namespace stay unchanged if concrete values are
- * present in composite or simple node and if the method for update is
- * called.
+ * Tests whether namespace stay unchanged if concrete values are present in composite or simple node and if
+ * the method for update is called.
*
*/
@Test
public void notSupplyNamespaceIfAlreadySupplied() {
- CompositeNode compositeNode = TestUtils.readInputToCnSn("/json-to-cnsn/simple-list.json", false,
+ Node> node = TestUtils.readInputToCnSn("/json-to-cnsn/simple-list.json", false,
JsonToCompositeNodeProvider.INSTANCE);
- assertNotNull(compositeNode);
+ assertTrue(node instanceof CompositeNode);
+ CompositeNode compositeNode = (CompositeNode)node;
// supplement namespaces according to first data schema -
// "simple:data:types1"
@@ -206,15 +231,21 @@ public class JsonToCnSnTest {
assertEquals("lst", compNode.getNodeType().getLocalName());
verifyCompositeNode(compNode, "simple:list:yang1");
- TestUtils.normalizeCompositeNode(compositeNode, modules2, "simple-list-yang2:lst");
+ try {
+ TestUtils.normalizeCompositeNode(compositeNode, modules2, "simple-list-yang2:lst");
+ fail("Conversion to normalized node shouldn't be successfull because of different namespaces");
+ } catch (IllegalStateException e) {
+ }
+// veryfing has still meaning. despite exception, first phase where normalization of NodeWrappers is called passed successfuly.
verifyCompositeNode(compNode, "simple:list:yang1");
}
@Test
public void jsonIdentityrefToCompositeNode() {
- CompositeNode compositeNode = TestUtils.readInputToCnSn("/json-to-cnsn/identityref/json/data.json", false,
+ Node> node = TestUtils.readInputToCnSn("/json-to-cnsn/identityref/json/data.json", false,
JsonToCompositeNodeProvider.INSTANCE);
- assertNotNull(compositeNode);
+ assertTrue(node instanceof CompositeNode);
+ CompositeNode compositeNode = (CompositeNode)node;
Set modules = TestUtils.loadModulesFrom("/json-to-cnsn/identityref");
assertEquals(2, modules.size());
@@ -273,15 +304,17 @@ public class JsonToCnSnTest {
}
- private void simpleTest(final String jsonPath, final String yangPath, final String topLevelElementName, final String namespace,
- final String moduleName) {
+ private void simpleTest(final String jsonPath, final String yangPath, final String topLevelElementName,
+ final String namespace, final String moduleName) {
CompositeNode compNode = loadAndNormalizeData(jsonPath, yangPath, topLevelElementName, moduleName);
verifyCompositeNode(compNode, namespace);
}
- private CompositeNode loadAndNormalizeData(final String jsonPath, final String yangPath, final String topLevelElementName, final String moduleName) {
- CompositeNode compositeNode = TestUtils.readInputToCnSn(jsonPath, false, JsonToCompositeNodeProvider.INSTANCE);
- assertNotNull(compositeNode);
+ private CompositeNode loadAndNormalizeData(final String jsonPath, final String yangPath,
+ final String topLevelElementName, final String moduleName) {
+ Node> node = TestUtils.readInputToCnSn(jsonPath, false, JsonToCompositeNodeProvider.INSTANCE);
+ assertTrue(node instanceof CompositeNode);
+ CompositeNode compositeNode = (CompositeNode)node;
Set modules = null;
modules = TestUtils.loadModulesFrom(yangPath);
@@ -384,7 +417,7 @@ public class JsonToCnSnTest {
TestUtils.readInputToCnSn("/json-to-cnsn/unsupported-json-format.json", true,
JsonToCompositeNodeProvider.INSTANCE);
} catch (RestconfDocumentedException e) {
- exceptionMessage = e.getErrors().get( 0 ).getErrorMessage();
+ exceptionMessage = e.getErrors().get(0).getErrorMessage();
}
assertTrue(exceptionMessage.contains("Root element of Json has to be Object"));
}