From 0e6a64805fc5dfcba9858917c08ed552ccf2b303 Mon Sep 17 00:00:00 2001 From: Robert Varga Date: Sat, 12 Mar 2022 08:25:59 +0100 Subject: [PATCH] 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 --- .../yangtools/yang/binding/CodeHelpers.java | 4 ++-- .../yangtools/yang/binding/CodeHelpersTest.java | 17 +++++++++++++++++ 2 files changed, 19 insertions(+), 2 deletions(-) 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)); + } } -- 2.36.6