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=d65cb1bdbfe48bc02d132faab0e2cf82756cb785;hb=a9406b1074eecabc79d13cd47f1c0f221b99e428;hp=3699e4924fe25ca2c8a4b1399fe005376de3a86d;hpb=dcbf09a50b0f7fb437386f0433bd4464db1193de;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 3699e4924f..d65cb1bdbf 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 @@ -422,4 +422,36 @@ public class JsonToCnSnTest { assertTrue(exceptionMessage.contains("Root element of Json has to be Object")); } + /** + * Tests case when JSON input data value is in format string1:string2 and first string contain characters "<" or ">" (invalid URI characters). + * + * During loading data it is also interpreting as data value in moduleName:localName (potential leafref value). + * ModuleName part is transformed to URI which causes exception which is caught and URI value is null which cause that potential value in simple node is + * simple string (value from JSON input) and not IdentityValueDTO instance which is used for leaf-ref candidates. + */ + @Test + public void invalidUriCharacterInValue() { + final Node rootNode = TestUtils.readInputToCnSn("/json-to-cnsn/invalid-uri-character-in-value.json", true, + JsonToCompositeNodeProvider.INSTANCE); + + assertTrue(rootNode instanceof CompositeNode); + Node lf1 = null; + Node lf2 = null; + for(Node child : ((CompositeNode)rootNode).getChildren()) { + if (child.getNodeType().getLocalName().equals("lf1")) { + lf1 = child; + } else if (child.getNodeType().getLocalName().equals("lf2")) { + lf2 = child; + } + } + + assertNotNull(lf1); + assertNotNull(lf2); + assertTrue(lf1 instanceof SimpleNode); + assertTrue(lf2 instanceof SimpleNode); + + assertEquals("module) lf1).getValue()); + assertEquals("module>Name:value lf2", ((SimpleNode) lf2).getValue()); + } + }