@Test public void parametrizedTypeType_methods_tests() { JavaSymbol.PackageJavaSymbol packageSymbol = new JavaSymbol.PackageJavaSymbol("org.foo.bar", null); JavaSymbol.TypeJavaSymbol typeSymbol = new JavaSymbol.TypeJavaSymbol(Flags.PUBLIC, "MyType", packageSymbol); JavaSymbol.TypeVariableJavaSymbol typeVariableSymbol = new JavaSymbol.TypeVariableJavaSymbol("E", typeSymbol); ClassJavaType classType = (ClassJavaType) typeSymbol.type; TypeVariableJavaType typeVariableType = (TypeVariableJavaType) typeVariableSymbol.type; TypeSubstitution typeSubstitution = new TypeSubstitution(); typeSubstitution.add(typeVariableType, classType); ParametrizedTypeJavaType ptt = new ParametrizedTypeJavaType(typeSymbol, typeSubstitution); assertThat(ptt.substitution(typeVariableType)).isEqualTo(classType); assertThat( ptt.substitution( new TypeVariableJavaType(new JavaSymbol.TypeVariableJavaSymbol("F", typeSymbol)))) .isNull(); assertThat(ptt.typeParameters()).hasSize(1); assertThat(ptt.typeParameters()).contains(typeVariableType); ptt = new ParametrizedTypeJavaType(typeSymbol, null); assertThat(ptt.substitution(typeVariableType)).isNull(); assertThat(ptt.typeParameters()).isEmpty(); assertThat(ptt.isClass()).isTrue(); assertThat(ptt.isParameterized()).isTrue(); assertThat(ptt.rawType.isClass()).isTrue(); assertThat(ptt.rawType.isParameterized()).isFalse(); }