use of io.swagger.models.ModelImpl in project swagger-core by swagger-api.
the class ParameterSerializationTest method serializeBodyParameter.
@Test(description = "it should serialize a BodyParameter")
public void serializeBodyParameter() {
final ModelImpl model = new ModelImpl().name("Cat").property("name", new StringProperty());
final BodyParameter p = new BodyParameter().schema(model);
final String json = "{" + " \"in\":\"body\"," + " \"required\":false," + " \"schema\":{" + " \"properties\":{" + " \"name\":{" + " \"type\":\"string\"" + " }" + " }" + " }" + "}";
SerializationMatchers.assertEqualsToJson(p, json);
}
use of io.swagger.models.ModelImpl in project swagger-core by swagger-api.
the class SimpleReaderTest method checkResponseModelsProcessing.
@Test(description = "check response models processing")
public void checkResponseModelsProcessing() {
Swagger swagger = getSwagger(ResourceWithTypedResponses.class);
assertEquals(swagger.getDefinitions().keySet(), Arrays.asList("Tag"));
for (Map.Entry<String, Path> entry : swagger.getPaths().entrySet()) {
String name = entry.getKey().substring(entry.getKey().lastIndexOf("/") + 1);
if ("testPrimitiveResponses".equals(name)) {
Map<String, String[]> expected = ImmutableMap.of("400", new String[] { "string", "uri" }, "401", new String[] { "string", "url" }, "402", new String[] { "string", "uuid" }, "403", new String[] { "integer", "int64" }, "404", new String[] { "string", null });
assertEquals(entry.getValue().getGet().getResponses().size(), expected.size());
for (Map.Entry<String, Response> responseEntry : entry.getValue().getGet().getResponses().entrySet()) {
String[] expectedProp = expected.get(responseEntry.getKey());
Property property = responseEntry.getValue().getSchema();
assertEquals(property.getType(), expectedProp[0]);
assertEquals(property.getFormat(), expectedProp[1]);
}
} else {
Operation op = entry.getValue().getGet();
Property response = op.getResponses().get("200").getSchema();
Model model = ((BodyParameter) op.getParameters().get(0)).getSchema();
assertEquals(op.getParameters().size(), 1);
if ("testObjectResponse".equals(name)) {
assertEquals(((RefProperty) response).getSimpleRef(), "Tag");
assertEquals(((RefModel) model).getSimpleRef(), "Tag");
} else if ("testObjectsResponse".equals(name)) {
assertEquals(((RefProperty) ((ArrayProperty) response).getItems()).getSimpleRef(), "Tag");
assertEquals(((RefProperty) ((ArrayModel) model).getItems()).getSimpleRef(), "Tag");
} else if ("testStringResponse".equals(name)) {
assertEquals(response.getClass(), StringProperty.class);
assertEquals(((ModelImpl) model).getType(), "string");
} else if ("testStringsResponse".equals(name)) {
assertEquals(((ArrayProperty) response).getItems().getClass(), StringProperty.class);
assertEquals(((ArrayModel) model).getItems().getClass(), StringProperty.class);
} else if ("testMapResponse".equals(name)) {
assertEquals(((RefProperty) ((MapProperty) response).getAdditionalProperties()).getSimpleRef(), "Tag");
assertNull(model.getProperties());
assertEquals(((RefProperty) ((ModelImpl) model).getAdditionalProperties()).getSimpleRef(), "Tag");
} else {
fail(String.format("Unexpected property: %s", name));
}
}
}
}
use of io.swagger.models.ModelImpl in project swagger-core by swagger-api.
the class SimpleReaderTest method scanResourceWithBodyParameters.
@Test(description = "scan a resource with body parameters")
public void scanResourceWithBodyParameters() {
Swagger swagger = getSwagger(ResourceWithBodyParams.class);
BodyParameter param = (BodyParameter) getPostParameters(swagger, "/testShort").get(0);
assertEquals(param.getDescription(), "a short input");
ModelImpl schema = (ModelImpl) param.getSchema();
assertEquals(schema.getType(), "integer");
assertEquals(schema.getFormat(), "int32");
assertEquals(swagger.getDefinitions().keySet(), Arrays.asList("Tag"));
testString(swagger, "/testApiString", "input", "String parameter");
testString(swagger, "/testString", "body", null);
testObject(swagger, "/testApiObject", "input", "Object parameter");
testObject(swagger, "/testObject", "body", null);
List<Operation> operations = new ArrayList<Operation>();
for (Path item : swagger.getPaths().values()) {
Operation op = item.getPost();
if (op.getOperationId().startsWith("testPrimitive")) {
operations.add(op);
}
}
assertEquals(operations.size(), 16);
for (Operation item : operations) {
assertEquals(item.getParameters().size(), 1);
}
}
use of io.swagger.models.ModelImpl in project swagger-core by swagger-api.
the class SimpleReaderTest method scanResourceWithEmptyModel.
@Test(description = "correctly model an empty model per 499")
public void scanResourceWithEmptyModel() {
Map<String, Model> definitions = getSwagger(ResourceWithEmptyModel.class).getDefinitions();
assertEquals(definitions.size(), 1);
ModelImpl empty = (ModelImpl) definitions.get("EmptyModel");
assertEquals(empty.getType(), "object");
assertNull(empty.getProperties());
assertNull(empty.getAdditionalProperties(), null);
}
use of io.swagger.models.ModelImpl in project java-chassis by ServiceComb.
the class ModelImplConverter method doConvert.
@Override
public JavaType doConvert(ClassLoader classLoader, String packageName, Swagger swagger, Object model) {
ModelImpl modelImpl = (ModelImpl) model;
JavaType javaType = ConverterMgr.findJavaType(modelImpl.getType(), modelImpl.getFormat());
if (javaType != null) {
return javaType;
}
if (modelImpl.getReference() != null) {
return ConverterMgr.findByRef(classLoader, packageName, swagger, modelImpl.getReference());
}
// 根据name、property动态生成class
if (packageName == null) {
throw new Error("packageName should not be null");
}
String clsName = packageName + "." + modelImpl.getName();
Class<?> cls = ClassUtils.getOrCreateClass(classLoader, packageName, swagger, modelImpl, clsName);
return TypeFactory.defaultInstance().constructType(cls);
}
Aggregations