@Test
public void returnProperBeanParamWithDefaultParameterExtension() throws NoSuchMethodException {
final Method method = getClass().getDeclaredMethod("testRoute", BaseBean.class, ChildBean.class, RefBean.class, EnumBean.class, Integer.class);
final List<Pair<Type, Annotation[]>> parameters = getParameters(method.getGenericParameterTypes(), method.getParameterAnnotations());
for (final Pair<Type, Annotation[]> parameter : parameters) {
final Type parameterType = parameter.first();
final List<Parameter> swaggerParams = new DefaultParameterExtension().extractParameters(Arrays.asList(parameter.second()),
parameterType, new HashSet<Type>(), SwaggerExtensions.chain());
// Ensure proper number of parameters returned
if (parameterType.equals(BaseBean.class)) {
assertEquals(2, swaggerParams.size());
} else if (parameterType.equals(ChildBean.class)) {
assertEquals(5, swaggerParams.size());
} else if (parameterType.equals(RefBean.class)) {
assertEquals(5, swaggerParams.size());
} else if (parameterType.equals(EnumBean.class)) {
assertEquals(1, swaggerParams.size());
final HeaderParameter enumParam = (HeaderParameter) swaggerParams.get(0);
assertEquals("string", enumParam.getType());
final List<String> enumValues = new ArrayList<>(Collections2.transform(Arrays.asList(TestEnum.values()), Functions.toStringFunction()));
assertEquals(enumValues, enumParam.getEnum());
} else if (parameterType.equals(Integer.class)) {
assertEquals(0, swaggerParams.size());
} else {
fail(String.format("Parameter of type %s was not expected", parameterType));
}
// Ensure the proper parameter type and name is returned (The rest is handled by pre-existing logic)
for (final Parameter param : swaggerParams) {
assertEquals(param.getClass().getSimpleName().replace("eter", ""), param.getName());
}
}
}
MinijaxSwaggerTest.java 文件源码
java
阅读 24
收藏 0
点赞 0
评论 0
项目:minijax
作者:
评论列表
文章目录