|
23 | 23 | import static org.junit.jupiter.api.Assertions.assertThrows;
|
24 | 24 | import static org.junit.jupiter.api.Assertions.assertTimeoutPreemptively;
|
25 | 25 | import static org.junit.jupiter.api.Assertions.assertTrue;
|
26 |
| -import static org.junit.platform.commons.function.Try.success; |
27 | 26 | import static org.junit.platform.commons.util.ReflectionUtils.HierarchyTraversalMode.BOTTOM_UP;
|
28 | 27 | import static org.junit.platform.commons.util.ReflectionUtils.HierarchyTraversalMode.TOP_DOWN;
|
29 | 28 | import static org.junit.platform.commons.util.ReflectionUtils.findFields;
|
@@ -804,77 +803,132 @@ void loadClass() {
|
804 | 803 |
|
805 | 804 | @Test
|
806 | 805 | void tryToLoadClass() {
|
807 |
| - assertThat(ReflectionUtils.tryToLoadClass(Integer.class.getName())).isEqualTo(success(Integer.class)); |
808 |
| - assertThat(ReflectionUtils.tryToLoadClass(Void.class.getName())).isEqualTo(success(Void.class)); |
| 806 | + assertTryToLoadClass(getClass().getName(), getClass()); |
| 807 | + assertTryToLoadClass(Integer.class.getName(), Integer.class); |
| 808 | + assertTryToLoadClass(Void.class.getName(), Void.class); |
809 | 809 | }
|
810 | 810 |
|
811 | 811 | @Test
|
812 | 812 | void tryToLoadClassTrimsClassName() {
|
813 |
| - assertThat(ReflectionUtils.tryToLoadClass(" " + Integer.class.getName() + "\t"))// |
814 |
| - .isEqualTo(success(Integer.class)); |
| 813 | + assertTryToLoadClass(" " + Integer.class.getName() + "\t", Integer.class); |
815 | 814 | }
|
816 | 815 |
|
817 | 816 | @Test
|
818 |
| - void tryToLoadClassForPrimitive() { |
819 |
| - assertThat(ReflectionUtils.tryToLoadClass(int.class.getName())).isEqualTo(success(int.class)); |
820 |
| - assertThat(ReflectionUtils.tryToLoadClass(void.class.getName())).isEqualTo(success(void.class)); |
| 817 | + void tryToLoadClassForVoidPseudoPrimitiveType() { |
| 818 | + assertTryToLoadClass("void", void.class); |
| 819 | + } |
821 | 820 |
|
822 |
| - // The following should be equivalent to the above, but just to be sure... |
823 |
| - assertThat(ReflectionUtils.tryToLoadClass("int")).isEqualTo(success(int.class)); |
824 |
| - assertThat(ReflectionUtils.tryToLoadClass("void")).isEqualTo(success(void.class)); |
| 821 | + @Test |
| 822 | + void tryToLoadClassForPrimitiveType() { |
| 823 | + assertTryToLoadClass("boolean", boolean.class); |
| 824 | + assertTryToLoadClass("char", char.class); |
| 825 | + assertTryToLoadClass("byte", byte.class); |
| 826 | + assertTryToLoadClass("short", short.class); |
| 827 | + assertTryToLoadClass("int", int.class); |
| 828 | + assertTryToLoadClass("long", long.class); |
| 829 | + assertTryToLoadClass("float", float.class); |
| 830 | + assertTryToLoadClass("double", double.class); |
825 | 831 | }
|
826 | 832 |
|
827 | 833 | @Test
|
828 |
| - void tryToLoadClassForPrimitiveArray() { |
829 |
| - assertThat(ReflectionUtils.tryToLoadClass(int[].class.getName())).isEqualTo(success(int[].class)); |
| 834 | + void tryToLoadClassForBinaryPrimitiveArrayName() { |
| 835 | + assertTryToLoadClass("[Z", boolean[].class); |
| 836 | + assertTryToLoadClass("[C", char[].class); |
| 837 | + assertTryToLoadClass("[B", byte[].class); |
| 838 | + assertTryToLoadClass("[S", short[].class); |
| 839 | + assertTryToLoadClass("[I", int[].class); |
| 840 | + assertTryToLoadClass("[J", long[].class); |
| 841 | + assertTryToLoadClass("[F", float[].class); |
| 842 | + assertTryToLoadClass("[D", double[].class); |
830 | 843 | }
|
831 | 844 |
|
832 | 845 | @Test
|
833 |
| - void tryToLoadClassForPrimitiveArrayUsingSourceCodeSyntax() { |
834 |
| - assertThat(ReflectionUtils.tryToLoadClass("int[]")).isEqualTo(success(int[].class)); |
| 846 | + void tryToLoadClassForCanonicalPrimitiveArrayName() { |
| 847 | + assertTryToLoadClass("boolean[]", boolean[].class); |
| 848 | + assertTryToLoadClass("char[]", char[].class); |
| 849 | + assertTryToLoadClass("byte[]", byte[].class); |
| 850 | + assertTryToLoadClass("short[]", short[].class); |
| 851 | + assertTryToLoadClass("int[]", int[].class); |
| 852 | + assertTryToLoadClass("long[]", long[].class); |
| 853 | + assertTryToLoadClass("float[]", float[].class); |
| 854 | + assertTryToLoadClass("double[]", double[].class); |
835 | 855 | }
|
836 | 856 |
|
837 | 857 | @Test
|
838 |
| - void tryToLoadClassForObjectArray() { |
839 |
| - assertThat(ReflectionUtils.tryToLoadClass(String[].class.getName())).isEqualTo(success(String[].class)); |
| 858 | + void tryToLoadClassForBinaryObjectArrayName() { |
| 859 | + assertTryToLoadClass(String[].class.getName(), String[].class); |
840 | 860 | }
|
841 | 861 |
|
842 | 862 | @Test
|
843 |
| - void tryToLoadClassForObjectArrayUsingSourceCodeSyntax() { |
844 |
| - assertThat(ReflectionUtils.tryToLoadClass("java.lang.String[]")).isEqualTo(success(String[].class)); |
| 863 | + void tryToLoadClassForCanonicalObjectArrayName() { |
| 864 | + assertTryToLoadClass("java.lang.String[]", String[].class); |
845 | 865 | }
|
846 | 866 |
|
847 | 867 | @Test
|
848 |
| - void tryToLoadClassForTwoDimensionalPrimitiveArray() { |
849 |
| - assertThat(ReflectionUtils.tryToLoadClass(int[][].class.getName())).isEqualTo(success(int[][].class)); |
| 868 | + void tryToLoadClassForBinaryTwoDimensionalPrimitiveArrayName() { |
| 869 | + assertTryToLoadClass("[[Z", boolean[][].class); |
| 870 | + assertTryToLoadClass("[[C", char[][].class); |
| 871 | + assertTryToLoadClass("[[B", byte[][].class); |
| 872 | + assertTryToLoadClass("[[S", short[][].class); |
| 873 | + assertTryToLoadClass("[[I", int[][].class); |
| 874 | + assertTryToLoadClass("[[J", long[][].class); |
| 875 | + assertTryToLoadClass("[[F", float[][].class); |
| 876 | + assertTryToLoadClass("[[D", double[][].class); |
850 | 877 | }
|
851 | 878 |
|
852 | 879 | @Test
|
853 |
| - void tryToLoadClassForTwoDimensionaldimensionalPrimitiveArrayUsingSourceCodeSyntax() { |
854 |
| - assertThat(ReflectionUtils.tryToLoadClass("int[][]")).isEqualTo(success(int[][].class)); |
| 880 | + void tryToLoadClassForCanonicalTwoDimensionalPrimitiveArrayName() { |
| 881 | + assertTryToLoadClass("boolean[][]", boolean[][].class); |
| 882 | + assertTryToLoadClass("char[][]", char[][].class); |
| 883 | + assertTryToLoadClass("byte[][]", byte[][].class); |
| 884 | + assertTryToLoadClass("short[][]", short[][].class); |
| 885 | + assertTryToLoadClass("int[][]", int[][].class); |
| 886 | + assertTryToLoadClass("long[][]", long[][].class); |
| 887 | + assertTryToLoadClass("float[][]", float[][].class); |
| 888 | + assertTryToLoadClass("double[][]", double[][].class); |
855 | 889 | }
|
856 | 890 |
|
857 | 891 | @Test
|
858 |
| - void tryToLoadClassForMultidimensionalPrimitiveArray() { |
859 |
| - assertThat(ReflectionUtils.tryToLoadClass(int[][][][][].class.getName()))// |
860 |
| - .isEqualTo(success(int[][][][][].class)); |
| 892 | + void tryToLoadClassForBinaryMultidimensionalPrimitiveArrayName() { |
| 893 | + assertTryToLoadClass("[[[[[Z", boolean[][][][][].class); |
| 894 | + assertTryToLoadClass("[[[[[C", char[][][][][].class); |
| 895 | + assertTryToLoadClass("[[[[[B", byte[][][][][].class); |
| 896 | + assertTryToLoadClass("[[[[[S", short[][][][][].class); |
| 897 | + assertTryToLoadClass("[[[[[I", int[][][][][].class); |
| 898 | + assertTryToLoadClass("[[[[[J", long[][][][][].class); |
| 899 | + assertTryToLoadClass("[[[[[F", float[][][][][].class); |
| 900 | + assertTryToLoadClass("[[[[[D", double[][][][][].class); |
861 | 901 | }
|
862 | 902 |
|
863 | 903 | @Test
|
864 |
| - void tryToLoadClassForMultidimensionalPrimitiveArrayUsingSourceCodeSyntax() { |
865 |
| - assertThat(ReflectionUtils.tryToLoadClass("int[][][][][]")).isEqualTo(success(int[][][][][].class)); |
| 904 | + void tryToLoadClassForCanonicalMultidimensionalPrimitiveArrayName() { |
| 905 | + assertTryToLoadClass("boolean[][][][][]", boolean[][][][][].class); |
| 906 | + assertTryToLoadClass("char[][][][][]", char[][][][][].class); |
| 907 | + assertTryToLoadClass("byte[][][][][]", byte[][][][][].class); |
| 908 | + assertTryToLoadClass("short[][][][][]", short[][][][][].class); |
| 909 | + assertTryToLoadClass("int[][][][][]", int[][][][][].class); |
| 910 | + assertTryToLoadClass("long[][][][][]", long[][][][][].class); |
| 911 | + assertTryToLoadClass("float[][][][][]", float[][][][][].class); |
| 912 | + assertTryToLoadClass("double[][][][][]", double[][][][][].class); |
866 | 913 | }
|
867 | 914 |
|
868 | 915 | @Test
|
869 |
| - void tryToLoadClassForMultidimensionalObjectArray() { |
870 |
| - assertThat(ReflectionUtils.tryToLoadClass(String[][][][][].class.getName()))// |
871 |
| - .isEqualTo(success(String[][][][][].class)); |
| 916 | + void tryToLoadClassForBinaryMultidimensionalObjectArrayName() { |
| 917 | + assertTryToLoadClass(String[][][][][].class.getName(), String[][][][][].class); |
872 | 918 | }
|
873 | 919 |
|
874 | 920 | @Test
|
875 |
| - void tryToLoadClassForMultidimensionalObjectArrayUsingSourceCodeSyntax() { |
876 |
| - assertThat(ReflectionUtils.tryToLoadClass("java.lang.String[][][][][]"))// |
877 |
| - .isEqualTo(success(String[][][][][].class)); |
| 921 | + void tryToLoadClassForCanonicalMultidimensionalObjectArrayName() { |
| 922 | + assertTryToLoadClass("java.lang.String[][][][][]", String[][][][][].class); |
| 923 | + } |
| 924 | + |
| 925 | + private static void assertTryToLoadClass(String name, Class<?> type) { |
| 926 | + try { |
| 927 | + assertThat(ReflectionUtils.tryToLoadClass(name).get()).as(name).isEqualTo(type); |
| 928 | + } |
| 929 | + catch (Exception ex) { |
| 930 | + ExceptionUtils.throwAsUncheckedException(ex); |
| 931 | + } |
878 | 932 | }
|
879 | 933 |
|
880 | 934 | }
|
|
0 commit comments