@Test
public void testApi() throws Exception {
doTest(ApiHolder.class, map -> {
ApiTypeInfo api = assertApi(map.get("api"), ApiObject.class.getName());
assertEquals(ApiObject.class.getName(), api.getName());
ParameterizedTypeInfo apiParameterizedByClass = assertParameterized(map.get("apiParameterizedByClass"), GenericInterface.class.getName() + "<java.lang.String>", ClassKind.API);
assertClass(apiParameterizedByClass.getArg(0), "java.lang.String", ClassKind.STRING);
ParameterizedTypeInfo apiParameterizedByClassTypeParam = assertParameterized(map.get("apiParameterizedByClassTypeParam"), GenericInterface.class.getName() + "<ClassTypeParam>", ClassKind.API);
TypeParamInfo.Class classTypeParam = (TypeParamInfo.Class) assertTypeVariable(apiParameterizedByClassTypeParam.getArg(0), "ClassTypeParam").getParam();
assertEquals("ClassTypeParam", classTypeParam.getName());
ParameterizedTypeInfo apiParameterizedByMethodTypeParam = assertParameterized(map.get("apiParameterizedByMethodTypeParam"), GenericInterface.class.getName() + "<MethodTypeParam>", ClassKind.API);
TypeParamInfo.Method methodTypeParam = (TypeParamInfo.Method) assertTypeVariable(apiParameterizedByMethodTypeParam.getArg(0), "MethodTypeParam").getParam();
assertEquals("MethodTypeParam", methodTypeParam.getName());
});
}