@Test public void findGenericParameterOfNestedGeneric() throws NoSuchMethodException { assertThat(GenericTypes.findGenericParameter(methodReturnType(Foo.class, "nestedGeneric"), Foo.class)) .contains(methodReturnType(Foo.class, "generic")); }
@Test public void findMultipleGenericParameters() throws NoSuchMethodException { assertThat(GenericTypes.findGenericParameter(methodReturnType(Xyz.class, "sample"), Xyz.class, 0)) .contains(String.class); assertThat(GenericTypes.findGenericParameter(methodReturnType(Xyz.class, "sample"), Xyz.class, 1)) .contains(Integer.class); assertThat(GenericTypes.findGenericParameter(methodReturnType(Xyz.class, "sample"), Xyz.class, 2)) .contains(Void.class); }
@Test public void findGenericParameterOfSuperClass() throws NoSuchMethodException { assertThat(GenericTypes.findGenericParameter(methodReturnType(Bar.class, "subTypeGeneric"), Foo.class)) .isEqualTo(Optional.of(Integer.class)); }
@Test public void findGenericParameterOfGeneric() throws NoSuchMethodException { assertThat(GenericTypes.findGenericParameter(methodReturnType(Foo.class, "generic"), Foo.class)) .contains(String.class); }
@Test public void findGenericParameterOfRaw() throws NoSuchMethodException { assertThat(GenericTypes.findGenericParameter(methodReturnType(Foo.class, "raw"), Foo.class)).isEqualTo(empty()); }
@Test public void findGenericParameterOfAncestorClass() throws NoSuchMethodException { assertThat(GenericTypes.findGenericParameter(methodReturnType(Baz.class, "descendentTypeGeneric"), Foo.class)) .contains(String.class); }
@Test public void getErasedTypeOfRaw() throws NoSuchMethodException { assertThat(GenericTypes.getErasedType(methodReturnType(Foo.class, "raw"))).isEqualTo(Foo.class); }
@Test public void getErasedTypeOfGeneric() throws NoSuchMethodException { assertThat(GenericTypes.getErasedType(methodReturnType(Foo.class, "generic"))).isEqualTo(Foo.class); }
@Test public void getErasedTypeOfNestedGeneric() throws NoSuchMethodException { assertThat(GenericTypes.getErasedType(methodReturnType(Foo.class, "nestedGeneric"))).isEqualTo(Foo.class); }