From: Robert Varga Date: Sat, 12 Mar 2022 07:25:59 +0000 (+0100) Subject: Improve CodeHelpers coverage X-Git-Tag: v9.0.0~13 X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=mdsal.git;a=commitdiff_plain;h=0e6a64805fc5dfcba9858917c08ed552ccf2b303 Improve CodeHelpers coverage We have introduced a new helper, make sure it is covered by UT. JIRA: MDSAL-722 Change-Id: I5b949c5aac60cf1b90ba98b38afdce09dd08fff4 Signed-off-by: Robert Varga --- diff --git a/binding/yang-binding/src/main/java/org/opendaylight/yangtools/yang/binding/CodeHelpers.java b/binding/yang-binding/src/main/java/org/opendaylight/yangtools/yang/binding/CodeHelpers.java index 92f26f8006..aba378e49c 100644 --- a/binding/yang-binding/src/main/java/org/opendaylight/yangtools/yang/binding/CodeHelpers.java +++ b/binding/yang-binding/src/main/java/org/opendaylight/yangtools/yang/binding/CodeHelpers.java @@ -390,7 +390,7 @@ public final class CodeHelpers { * @param fieldName name of the field being filled * @param list List, which items should be checked * @return Type-checked List - * @throws IllegalArgumentException if a list item is not instance of {@code requiredItemClass} + * @throws IllegalArgumentException if a list item is not instance of {@code requiredClass} * @throws NullPointerException if {@code requiredClass} or {@code fieldName} is null */ @SuppressWarnings("unchecked") @@ -425,7 +425,7 @@ public final class CodeHelpers { try { collection.forEach(item -> requiredClass.cast(requireNonNull(item))); } catch (ClassCastException | NullPointerException e) { - throw new IllegalArgumentException("Invalid input list item for property \"" + requireNonNull(fieldName) + throw new IllegalArgumentException("Invalid input item for property \"" + requireNonNull(fieldName) + "\"", e); } } diff --git a/binding/yang-binding/src/test/java/org/opendaylight/yangtools/yang/binding/CodeHelpersTest.java b/binding/yang-binding/src/test/java/org/opendaylight/yangtools/yang/binding/CodeHelpersTest.java index 769318ed11..a3d81ea2d2 100644 --- a/binding/yang-binding/src/test/java/org/opendaylight/yangtools/yang/binding/CodeHelpersTest.java +++ b/binding/yang-binding/src/test/java/org/opendaylight/yangtools/yang/binding/CodeHelpersTest.java @@ -15,6 +15,7 @@ import static org.junit.Assert.assertThrows; import java.util.Collections; import java.util.List; +import java.util.Set; import org.junit.Test; public class CodeHelpersTest { @@ -43,4 +44,20 @@ public class CodeHelpersTest { () -> CodeHelpers.checkListFieldCast(CodeHelpersTest.class, "foo", List.of(new Object()))); assertThat(iae.getCause(), instanceOf(ClassCastException.class)); } + + @Test + public void testCheckSetFieldCast() { + assertNull(CodeHelpers.checkSetFieldCast(CodeHelpersTest.class, "foo", null)); + assertSame(Set.of(), CodeHelpers.checkSetFieldCast(CodeHelpersTest.class, "foo", Set.of())); + final var list = Set.of(this); + assertSame(list, CodeHelpers.checkSetFieldCast(CodeHelpersTest.class, "foo", list)); + + IllegalArgumentException iae = assertThrows(IllegalArgumentException.class, + () -> CodeHelpers.checkSetFieldCast(CodeHelpersTest.class, "foo", Collections.singleton(null))); + assertThat(iae.getCause(), instanceOf(NullPointerException.class)); + + iae = assertThrows(IllegalArgumentException.class, + () -> CodeHelpers.checkSetFieldCast(CodeHelpersTest.class, "foo", Set.of(new Object()))); + assertThat(iae.getCause(), instanceOf(ClassCastException.class)); + } }