use of io.swagger.v3.plugin.maven.resources.model.Pet in project swagger-parser by swagger-api.
the class OpenAPIDeserializerTest method readPathsObject.
@Test(dataProvider = "data")
public void readPathsObject(JsonNode rootNode) throws Exception {
final OpenAPIDeserializer deserializer = new OpenAPIDeserializer();
final SwaggerParseResult result = deserializer.deserialize(rootNode);
Assert.assertNotNull(result);
final OpenAPI openAPI = result.getOpenAPI();
Assert.assertNotNull(openAPI);
final Paths paths = openAPI.getPaths();
Assert.assertNotNull(paths);
Assert.assertEquals(paths.size(), 19);
PathItem petRef = paths.get("/pathItemRef");
PathItem petEndpoint = paths.get("/pet");
Assert.assertNotNull(petEndpoint);
Assert.assertEquals(petEndpoint.getSummary(), "summary");
Assert.assertEquals(petEndpoint.getDescription(), "description");
Assert.assertNotNull(petEndpoint.getPost().getExternalDocs());
Assert.assertEquals(petEndpoint.getPost().getExternalDocs().getUrl(), "http://swagger.io");
Assert.assertEquals(petEndpoint.getPost().getExternalDocs().getDescription(), "Find out more");
// Operation trace
Assert.assertNotNull(petEndpoint.getTrace());
Assert.assertNotNull(petEndpoint.getDescription());
// Operation post
Assert.assertNotNull(petEndpoint.getPost());
Assert.assertNotNull(petEndpoint.getPost().getTags());
Assert.assertEquals(petEndpoint.getPost().getTags().size(), 1);
Assert.assertEquals(petEndpoint.getPost().getSummary(), "Add a new pet to the store");
Assert.assertEquals(petEndpoint.getPost().getDescription(), "");
Assert.assertEquals(petEndpoint.getPost().getOperationId(), "addPet");
Assert.assertNotNull(petEndpoint.getServers());
Assert.assertEquals(petEndpoint.getServers().size(), 1);
Assert.assertNotNull(petEndpoint.getParameters());
Assert.assertEquals(petEndpoint.getParameters().size(), 2);
Assert.assertNotNull(petEndpoint.getPost().getParameters());
Assert.assertEquals(petEndpoint.getPost().getSecurity().get(0).get("petstore_auth").get(0), "write:pets");
Assert.assertEquals(petEndpoint.getPost().getSecurity().get(0).get("petstore_auth").get(1), "read:pets");
ApiResponses responses = petEndpoint.getPost().getResponses();
Assert.assertNotNull(responses);
assertTrue(responses.containsKey("405"));
ApiResponse response = responses.get("405");
Assert.assertEquals(response.getDescription(), "Invalid input");
Assert.assertEquals(response.getHeaders().get("X-Rate-Limit").getDescription(), "calls per hour allowed by the user");
// parameters operation get
PathItem petByStatusEndpoint = paths.get("/pet/findByStatus");
Assert.assertNotNull(petByStatusEndpoint.getGet());
Assert.assertNotNull(petByStatusEndpoint.getGet().getTags());
Assert.assertEquals(petByStatusEndpoint.getGet().getParameters().size(), 1);
Assert.assertEquals(petByStatusEndpoint.getGet().getParameters().get(0).getIn(), "query");
Assert.assertEquals(petByStatusEndpoint.getGet().getCallbacks().get("mainHook").get("$request.body#/url").getPost().getResponses().get("200").getDescription(), "webhook successfully processed operation");
}
use of io.swagger.v3.plugin.maven.resources.model.Pet in project swagger-parser by swagger-api.
the class OpenAPIDeserializerTest method testArrayQueryParam.
@Test
public void testArrayQueryParam() throws Exception {
String yaml = "openapi: 3.0.0\n" + "servers: []\n" + "paths:\n" + " /pet/findByStatus:\n" + " get:\n" + " parameters:\n" + " - name: status\n" + " in: query\n" + " description: Status values that need to be considered for filter\n" + " required: false\n" + " style: pipeDelimited\n" + " schema:\n" + " type: array\n" + " items:\n" + " type: string\n" + " default: available\n" + " responses:\n" + " '200':\n" + " description: successful operation\n" + " content:\n" + " '*/*':\n" + " schema:\n" + " $ref: #/components/schemas/PetArray\n" + "info:\n" + " version: ''\n" + " title: ''";
OpenAPIV3Parser parser = new OpenAPIV3Parser();
SwaggerParseResult result = parser.readContents(yaml, null, null);
OpenAPI openAPI = result.getOpenAPI();
Parameter param = openAPI.getPaths().get("/pet/findByStatus").getGet().getParameters().get(0);
assertTrue(param instanceof QueryParameter);
QueryParameter qp = (QueryParameter) param;
Schema p = qp.getSchema();
assertEquals(p.getType(), "array");
assertTrue(((ArraySchema) p).getItems() instanceof StringSchema);
}
use of io.swagger.v3.plugin.maven.resources.model.Pet in project swagger-parser by swagger-api.
the class OpenAPIDeserializerTest method readComponentsObject.
@Test(dataProvider = "data")
public void readComponentsObject(JsonNode rootNode) throws Exception {
final OpenAPIDeserializer deserializer = new OpenAPIDeserializer();
final SwaggerParseResult result = deserializer.deserialize(rootNode);
Assert.assertNotNull(result);
final OpenAPI openAPI = result.getOpenAPI();
Assert.assertNotNull(openAPI);
Assert.assertEquals(openAPI.getOpenapi(), "3.0.1");
final Components component = openAPI.getComponents();
Assert.assertNotNull(component);
Assert.assertNotNull(component.getCallbacks());
Assert.assertEquals(component.getCallbacks().get("heartbeat").get("$request.query.heartbeat-url").getPost().getResponses().get("200").getDescription(), "Consumer acknowledged the callback");
// System.out.println(component.getCallbacks().get("referenced"));
Assert.assertEquals(component.getCallbacks().get("failed").get("$response.body#/failedUrl").getPost().getResponses().get("200").getDescription(), "Consumer acknowledged the callback failed");
Assert.assertNotNull(component.getExamples());
Assert.assertEquals(component.getExamples().get("cat").getSummary(), "An example of a cat");
Assert.assertNotNull(component.getExamples().get("cat").getValue());
Assert.assertNotNull(component.getHeaders());
Assert.assertEquals(component.getHeaders().get("X-Rate-Limit-Limit").getDescription(), "The number of allowed requests in the current period");
Assert.assertEquals(component.getHeaders().get("X-Rate-Limit-Limit").getSchema().getType(), "integer");
Assert.assertNotNull(component.getLinks());
Assert.assertEquals(component.getLinks().get("unsubscribe").getOperationId(), "cancelHookCallback");
Assert.assertNotNull(component.getLinks().get("unsubscribe").getParameters());
Assert.assertEquals(component.getLinks().get("unsubscribe").getExtensions().get("x-link"), "link extension");
Assert.assertNotNull(component.getParameters());
Assert.assertEquals(component.getParameters().get("skipParam").getName(), "skip");
Assert.assertEquals(component.getParameters().get("skipParam").getIn(), "query");
Assert.assertEquals(component.getParameters().get("skipParam").getDescription(), "number of items to skip");
assertTrue(component.getParameters().get("skipParam").getRequired());
Assert.assertEquals(component.getParameters().get("skipParam").getSchema().getType(), "integer");
Assert.assertNotNull(component.getRequestBodies());
Assert.assertEquals(component.getRequestBodies().get("requestBody1").getDescription(), "request body in components");
Assert.assertEquals(component.getRequestBodies().get("requestBody1").getContent().get("application/json").getSchema().get$ref(), "#/components/schemas/Pet");
Assert.assertEquals(component.getRequestBodies().get("requestBody1").getContent().get("application/xml").getSchema().get$ref(), "#/components/schemas/Pet");
Assert.assertEquals(component.getRequestBodies().get("requestBody2").getContent().get("application/json").getSchema().getType().toString(), "array");
Assert.assertNotNull(component.getRequestBodies().get("requestBody2").getContent().get("application/json").getSchema());
Assert.assertNotNull(component.getResponses());
Assert.assertEquals(component.getResponses().get("NotFound").getDescription(), "Entity not found.");
Assert.assertEquals(component.getResponses().get("IllegalInput").getDescription(), "Illegal input for operation.");
Assert.assertEquals(component.getResponses().get("GeneralError").getDescription(), "General Error");
Assert.assertEquals(component.getResponses().get("GeneralError").getContent().get("application/json").getSchema().get$ref(), "#/components/schemas/ExtendedErrorModel");
Assert.assertNotNull(component.getSchemas());
Assert.assertEquals(component.getSchemas().get("Category").getType(), "object");
Assert.assertEquals(component.getSchemas().get("ApiResponse").getRequired().get(0), "name");
Assert.assertEquals(component.getSchemas().get("Order").getType(), "object");
Assert.assertEquals(component.getSchemas().get("Order").getNot().getType(), "integer");
assertTrue(component.getSchemas().get("Order").getAdditionalProperties() instanceof Schema);
Schema additionalProperties = (Schema) component.getSchemas().get("Order").getAdditionalProperties();
Assert.assertEquals(additionalProperties.getType(), "integer");
Schema schema = (Schema) component.getSchemas().get("Order").getProperties().get("status");
Map<String, Schema> properties = (Map<String, Schema>) component.getSchemas().get("Order").getProperties();
Assert.assertNotNull(properties);
Assert.assertEquals(properties.get("status").getType(), "string");
Assert.assertEquals(properties.get("status").getDescription(), "Order Status");
Assert.assertEquals(properties.get("status").getEnum().get(0), "placed");
Assert.assertNotNull(component.getSecuritySchemes());
Assert.assertEquals(component.getSecuritySchemes().get("petstore_auth").getType().toString(), "oauth2");
Assert.assertEquals(component.getSecuritySchemes().get("petstore_auth").getFlows().getImplicit().getAuthorizationUrl(), "http://petstore.swagger.io/oauth/dialog");
// TODO
Assert.assertNotNull(component.getSecuritySchemes().get("petstore_auth").getFlows().getImplicit().getScopes());
Assert.assertNotNull(component.getExtensions());
assertTrue(component.getExtensions().containsKey("x-component"));
Object object = component.getExtensions().get("x-component");
assertTrue(object instanceof List);
List elements = (List) object;
Assert.assertEquals(elements.size(), 1);
Map<String, Object> map = (Map) elements.get(0);
Assert.assertEquals(map.get("url"), "http://component.swagger.io/v2/swagger.json");
Assert.assertEquals(map.get("format"), "OAS");
Assert.assertEquals(map.get("version"), "3.0");
Map<String, Object> converter = (Map<String, Object>) map.get("converter");
Assert.assertNotNull(converter);
Assert.assertEquals(converter.get("url"), "https://github.com/mermade/oas3");
Assert.assertEquals(converter.get("version"), "1.2.3");
object = component.getExtensions().get("x-api-title");
assertTrue(object instanceof String);
Assert.assertEquals("pet store test api in components", object.toString());
}
use of io.swagger.v3.plugin.maven.resources.model.Pet in project swagger-parser by swagger-api.
the class OpenAPIDeserializerTest method readTagObject.
@Test(dataProvider = "data")
public void readTagObject(JsonNode rootNode) throws Exception {
final OpenAPIDeserializer deserializer = new OpenAPIDeserializer();
final SwaggerParseResult result = deserializer.deserialize(rootNode);
Assert.assertNotNull(result);
final OpenAPI openAPI = result.getOpenAPI();
Assert.assertNotNull(openAPI);
final List<Tag> Tag = openAPI.getTags();
Assert.assertNotNull(Tag);
Assert.assertNotNull(Tag.get(0));
Assert.assertNotNull(Tag.get(0).getName());
Assert.assertEquals(Tag.get(0).getName(), "pet");
Assert.assertNotNull(Tag.get(0).getDescription());
Assert.assertEquals(Tag.get(0).getDescription(), "Everything about your Pets");
Assert.assertNotNull(Tag.get(0).getExternalDocs());
Assert.assertNotNull(Tag.get(1));
Assert.assertNotNull(Tag.get(1).getName());
Assert.assertNotNull(Tag.get(1).getDescription());
Assert.assertEquals(Tag.get(1).getName(), "store");
Assert.assertEquals(Tag.get(1).getDescription(), "Access to Petstore orders");
}
use of io.swagger.v3.plugin.maven.resources.model.Pet in project swagger-parser by swagger-api.
the class OpenAPIDeserializerTest method readExtensions.
@Test(dataProvider = "data")
public void readExtensions(JsonNode rootNode) throws Exception {
final OpenAPIDeserializer deserializer = new OpenAPIDeserializer();
final SwaggerParseResult result = deserializer.deserialize(rootNode);
Assert.assertNotNull(result);
final OpenAPI openAPI = result.getOpenAPI();
Assert.assertNotNull(openAPI);
Assert.assertNotNull(openAPI.getExtensions());
assertTrue(openAPI.getExtensions().containsKey("x-origin"));
Object object = openAPI.getExtensions().get("x-origin");
assertTrue(object instanceof List);
List elements = (List) object;
Assert.assertEquals(elements.size(), 1);
Map<String, Object> map = (Map) elements.get(0);
Assert.assertEquals(map.get("url"), "http://petstore.swagger.io/v2/swagger.json");
Assert.assertEquals(map.get("format"), "swagger");
Assert.assertEquals(map.get("version"), "2.0");
Map<String, Object> converter = (Map<String, Object>) map.get("converter");
Assert.assertNotNull(converter);
Assert.assertEquals(converter.get("url"), "https://github.com/mermade/swagger2openapi");
Assert.assertEquals(converter.get("version"), "1.2.1");
object = openAPI.getExtensions().get("x-api-title");
assertTrue(object instanceof String);
Assert.assertEquals("pet store test api", object.toString());
}
Aggregations