+ /**
+ * Test of deserialization <code>String</code> URI with identifiers separated by multiple slashes to
+ * {@code Iterable<YangInstanceIdentifier.PathArgument>}.
+ */
+ @Test
+ public void deserializeMultipleSlashesTest() {
+ final Iterable<PathArgument> result = YangInstanceIdentifierDeserializer
+ .create(this.schemaContext, "deserializer-test:contA////list-A=40//list-key");
+
+ assertEquals("Result does not contains expected number of path arguments", 4, Iterables.size(result));
+
+ final Iterator<YangInstanceIdentifier.PathArgument> iterator = result.iterator();
+
+ // container
+ assertEquals("Not expected path argument",
+ YangInstanceIdentifier.NodeIdentifier.create(QName.create("deserializer:test", "2016-06-06", "contA")),
+ iterator.next());
+
+ // list
+ final QName list = QName.create("deserializer:test", "2016-06-06", "list-A");
+ assertEquals("Not expected path argument",
+ YangInstanceIdentifier.NodeIdentifier.create(list),
+ iterator.next());
+ assertEquals("Not expected path argument",
+ new YangInstanceIdentifier.NodeIdentifierWithPredicates(
+ list, QName.create(list, "list-key"), 40).toString(),
+ iterator.next().toString());
+
+ // leaf
+ assertEquals("Not expected path argument",
+ new YangInstanceIdentifier.NodeIdentifier(
+ QName.create("deserializer:test", "2016-06-06", "list-key")),
+ iterator.next());
+ }
+