@ -1387,6 +1387,30 @@ class ResolvableTypeTests {
@@ -1387,6 +1387,30 @@ class ResolvableTypeTests {
assertThat ( type . hasUnresolvableGenerics ( ) ) . isFalse ( ) ;
}
@Test // gh-33932
void recursiveType ( ) {
assertThat ( ResolvableType . forClass ( RecursiveMap . class ) ) . isEqualTo (
ResolvableType . forClass ( RecursiveMap . class ) ) ;
ResolvableType resolvableType1 = ResolvableType . forClassWithGenerics ( Map . class ,
String . class , RecursiveMap . class ) ;
ResolvableType resolvableType2 = ResolvableType . forClassWithGenerics ( Map . class ,
String . class , RecursiveMap . class ) ;
assertThat ( resolvableType1 ) . isEqualTo ( resolvableType2 ) ;
}
@Test // gh-33932
void recursiveTypeWithInterface ( ) {
assertThat ( ResolvableType . forClass ( RecursiveMapWithInterface . class ) ) . isEqualTo (
ResolvableType . forClass ( RecursiveMapWithInterface . class ) ) ;
ResolvableType resolvableType1 = ResolvableType . forClassWithGenerics ( Map . class ,
String . class , RecursiveMapWithInterface . class ) ;
ResolvableType resolvableType2 = ResolvableType . forClassWithGenerics ( Map . class ,
String . class , RecursiveMapWithInterface . class ) ;
assertThat ( resolvableType1 ) . isEqualTo ( resolvableType2 ) ;
}
@Test
void spr11219 ( ) throws Exception {
ResolvableType type = ResolvableType . forField ( BaseProvider . class . getField ( "stuff" ) , BaseProvider . class ) ;
@ -1836,6 +1860,16 @@ class ResolvableTypeTests {
@@ -1836,6 +1860,16 @@ class ResolvableTypeTests {
}
@SuppressWarnings ( "serial" )
static class RecursiveMap extends HashMap < String , RecursiveMap > {
}
@SuppressWarnings ( "serial" )
static class RecursiveMapWithInterface extends HashMap < String , RecursiveMapWithInterface >
implements Map < String , RecursiveMapWithInterface > {
}
private static class ResolvableTypeAssert extends AbstractAssert < ResolvableTypeAssert , ResolvableType > {
public ResolvableTypeAssert ( ResolvableType actual ) {