This is an automated email from the ASF dual-hosted git repository. garydgregory pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/commons-lang.git
commit cc2ade0193e399d186c7fe31a1b90adf2a4a4638 Author: Gary Gregory <[email protected]> AuthorDate: Mon Sep 21 10:35:18 2026 -0400 Sort members. --- .../lang3/reflect/ConstructorUtilsTest.java | 58 +++++++++++----------- 1 file changed, 29 insertions(+), 29 deletions(-) diff --git a/src/test/java/org/apache/commons/lang3/reflect/ConstructorUtilsTest.java b/src/test/java/org/apache/commons/lang3/reflect/ConstructorUtilsTest.java index 5bbe2c627..93c52313a 100644 --- a/src/test/java/org/apache/commons/lang3/reflect/ConstructorUtilsTest.java +++ b/src/test/java/org/apache/commons/lang3/reflect/ConstructorUtilsTest.java @@ -46,27 +46,27 @@ private static class BaseClass { } static class PrivateClass { - private final String value; - @SuppressWarnings("unused") public static class PublicInnerClass { public PublicInnerClass() { } } + private final String value; + @SuppressWarnings("unused") public PrivateClass() { this("default"); } - public PrivateClass(final String value) { - this.value = value; - } - public PrivateClass(final Number number) { this.value = String.valueOf(number); } + public PrivateClass(final String value) { + this.value = value; + } + public String getValue() { return value; } @@ -186,6 +186,14 @@ void testGetAccessibleConstructorFromDescription() { assertNull(ConstructorUtils.getAccessibleConstructor(PrivateClass.class, ArrayUtils.EMPTY_CLASS_ARRAY)); } + @Test + void testGetMatchingAccessibleConstructorOnNonPublicClass() { + assertNull(ConstructorUtils.getMatchingAccessibleConstructor(PrivateClass.class)); + assertNull(ConstructorUtils.getMatchingAccessibleConstructor(PrivateClass.class, String.class)); + assertNull(ConstructorUtils.getMatchingAccessibleConstructor(PrivateClass.class, Integer.class)); + assertNull(ConstructorUtils.getMatchingAccessibleConstructor(PrivateClass.PublicInnerClass.class)); + } + @Test void testGetMatchingAccessibleMethod() { expectMatchingAccessibleConstructorParameterTypes(TestBean.class, ArrayUtils.EMPTY_CLASS_ARRAY, ArrayUtils.EMPTY_CLASS_ARRAY); @@ -230,6 +238,14 @@ void testInvokeConstructor() throws Exception { new String[] { "a", "b" }); } + @Test + void testInvokeConstructorOnNonPublicClass() { + assertThrows(NoSuchMethodException.class, () -> ConstructorUtils.invokeConstructor(PrivateClass.class)); + assertThrows(NoSuchMethodException.class, () -> ConstructorUtils.invokeConstructor(PrivateClass.class, "test")); + assertThrows(NoSuchMethodException.class, () -> ConstructorUtils.invokeConstructor(PrivateClass.class, Integer.valueOf(1))); + assertThrows(NoSuchMethodException.class, () -> ConstructorUtils.invokeConstructor(PrivateClass.PublicInnerClass.class)); + } + @Test void testInvokeExactConstructor() throws Exception { assertEquals("()", ConstructorUtils.invokeExactConstructor(TestBean.class, (Object[]) ArrayUtils.EMPTY_CLASS_ARRAY).toString()); @@ -245,6 +261,13 @@ void testInvokeExactConstructor() throws Exception { assertThrows(NoSuchMethodException.class, () -> ConstructorUtils.invokeExactConstructor(TestBean.class, Boolean.TRUE)); } + @Test + void testInvokeExactConstructorOnNonPublicClass() { + assertThrows(NoSuchMethodException.class, () -> ConstructorUtils.invokeExactConstructor(PrivateClass.class)); + assertThrows(NoSuchMethodException.class, () -> ConstructorUtils.invokeExactConstructor(PrivateClass.class, "test")); + assertThrows(NoSuchMethodException.class, () -> ConstructorUtils.invokeExactConstructor(PrivateClass.PublicInnerClass.class)); + } + @Test void testNullArgument() { expectMatchingAccessibleConstructorParameterTypes(MutableObject.class, singletonArray(null), singletonArray(Object.class)); @@ -257,29 +280,6 @@ void testVarArgsUnboxing() throws Exception { assertArrayEquals(new String[] { "2", "3" }, testBean.varArgs); } - @Test - void testGetMatchingAccessibleConstructorOnNonPublicClass() { - assertNull(ConstructorUtils.getMatchingAccessibleConstructor(PrivateClass.class)); - assertNull(ConstructorUtils.getMatchingAccessibleConstructor(PrivateClass.class, String.class)); - assertNull(ConstructorUtils.getMatchingAccessibleConstructor(PrivateClass.class, Integer.class)); - assertNull(ConstructorUtils.getMatchingAccessibleConstructor(PrivateClass.PublicInnerClass.class)); - } - - @Test - void testInvokeConstructorOnNonPublicClass() { - assertThrows(NoSuchMethodException.class, () -> ConstructorUtils.invokeConstructor(PrivateClass.class)); - assertThrows(NoSuchMethodException.class, () -> ConstructorUtils.invokeConstructor(PrivateClass.class, "test")); - assertThrows(NoSuchMethodException.class, () -> ConstructorUtils.invokeConstructor(PrivateClass.class, Integer.valueOf(1))); - assertThrows(NoSuchMethodException.class, () -> ConstructorUtils.invokeConstructor(PrivateClass.PublicInnerClass.class)); - } - - @Test - void testInvokeExactConstructorOnNonPublicClass() { - assertThrows(NoSuchMethodException.class, () -> ConstructorUtils.invokeExactConstructor(PrivateClass.class)); - assertThrows(NoSuchMethodException.class, () -> ConstructorUtils.invokeExactConstructor(PrivateClass.class, "test")); - assertThrows(NoSuchMethodException.class, () -> ConstructorUtils.invokeExactConstructor(PrivateClass.PublicInnerClass.class)); - } - private String toString(final Class<?>[] c) { return Arrays.asList(c).toString(); }
