From: Robert Varga Date: Mon, 19 Jun 2023 22:01:23 +0000 (+0200) Subject: Correct YangInstanceIdentifierSerializerTest X-Git-Tag: v6.0.0~36 X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=commitdiff_plain;ds=inline;h=refs%2Fchanges%2F41%2F106541%2F3;p=netconf.git Correct YangInstanceIdentifierSerializerTest Addressing modes for 'list' statements differs when they have a 'key' statement from when they do not: former takes NodeIdentifierWithPredicates to identify children, which the latter takes NodeIdentifiers. Expand the test cases to differentiate between the two -- note that upstream accepts NodeIdentifierWithPredicates even for unkeyed lists, but that is about to change. Change-Id: Ib13d43097f86a6932e63e33d3a48788abe7640ec Signed-off-by: Robert Varga --- diff --git a/restconf/restconf-nb/src/test/java/org/opendaylight/restconf/nb/rfc8040/utils/parser/YangInstanceIdentifierSerializerTest.java b/restconf/restconf-nb/src/test/java/org/opendaylight/restconf/nb/rfc8040/utils/parser/YangInstanceIdentifierSerializerTest.java index 3f73f3d67b..7fcb0f42a2 100644 --- a/restconf/restconf-nb/src/test/java/org/opendaylight/restconf/nb/rfc8040/utils/parser/YangInstanceIdentifierSerializerTest.java +++ b/restconf/restconf-nb/src/test/java/org/opendaylight/restconf/nb/rfc8040/utils/parser/YangInstanceIdentifierSerializerTest.java @@ -12,7 +12,6 @@ import static org.junit.Assert.assertThrows; import static org.junit.Assert.assertTrue; import com.google.common.collect.ImmutableSet; -import java.util.HashMap; import java.util.LinkedHashMap; import java.util.Map; import org.junit.AfterClass; @@ -32,7 +31,6 @@ import org.opendaylight.yangtools.yang.test.util.YangParserTestUtils; * Unit tests for {@link YangInstanceIdentifierSerializer}. */ public class YangInstanceIdentifierSerializerTest { - // schema context with test modules private static EffectiveModelContext SCHEMA_CONTEXT; @@ -108,20 +106,36 @@ public class YangInstanceIdentifierSerializerTest { public void serializeListWithNoKeysTest() { final YangInstanceIdentifier data = YangInstanceIdentifier.builder() .node(QName.create("serializer:test", "2016-06-06", "list-no-key")) - .nodeWithKey(QName.create("serializer:test", "2016-06-06", "list-no-key"), new HashMap<>()) + .node(QName.create("serializer:test", "2016-06-06", "list-no-key")) .build(); final String result = YangInstanceIdentifierSerializer.create(SCHEMA_CONTEXT, data); assertEquals("Serialization not successful", "serializer-test:list-no-key", result); } + /** + * Positive test of serialization of YangInstanceIdentifier to String when serialized + * YangInstanceIdentifier contains a keyed list, but the path argument does not specify them. Returned + * String is compared to have expected value. + */ + @Test + public void serializeMapWithNoKeysTest() { + final YangInstanceIdentifier data = YangInstanceIdentifier.builder() + .node(QName.create("serializer:test", "2016-06-06", "list-one-key")) + .nodeWithKey(QName.create("serializer:test", "2016-06-06", "list-one-key"), Map.of()) + .build(); + + final String result = YangInstanceIdentifierSerializer.create(SCHEMA_CONTEXT, data); + assertEquals("Serialization not successful", "serializer-test:list-one-key", result); + } + /** * Positive test of serialization of YangInstanceIdentifier to String when serialized * YangInstanceIdentifier contains list with one key. Returned String is compared to have * expected value. */ @Test - public void serializeListWithOneKeyTest() { + public void serializeMapWithOneKeyTest() { final YangInstanceIdentifier data = YangInstanceIdentifier.builder() .node(QName.create("serializer:test", "2016-06-06", "list-one-key")) .nodeWithKey(QName.create("serializer:test", "2016-06-06", "list-one-key"), @@ -138,7 +152,7 @@ public class YangInstanceIdentifierSerializerTest { * to have expected value. */ @Test - public void serializeListWithMultipleKeysTest() { + public void serializeMapWithMultipleKeysTest() { final QName list = QName.create("serializer:test", "2016-06-06", "list-multiple-keys"); final Map values = new LinkedHashMap<>(); values.put(QName.create(list, "name"), "value-1"); @@ -256,7 +270,7 @@ public class YangInstanceIdentifierSerializerTest { */ @Test public void serializePercentEncodingTest() { - final String value = "foo" + ":foo bar/" + "foo,bar/" + "'bar'"; + final String value = "foo:foo bar/foo,bar/'bar'"; final String encoded = "foo%3Afoo%20bar%2Ffoo%2Cbar%2F%27bar%27"; final YangInstanceIdentifier data = YangInstanceIdentifier.builder()