Search in sources :

Example 51 with Pet

use of io.swagger.v3.jaxrs2.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);
}
Also used : QueryParameter(io.swagger.v3.oas.models.parameters.QueryParameter) ByteArraySchema(io.swagger.v3.oas.models.media.ByteArraySchema) ArraySchema(io.swagger.v3.oas.models.media.ArraySchema) DateSchema(io.swagger.v3.oas.models.media.DateSchema) ComposedSchema(io.swagger.v3.oas.models.media.ComposedSchema) DateTimeSchema(io.swagger.v3.oas.models.media.DateTimeSchema) ByteArraySchema(io.swagger.v3.oas.models.media.ByteArraySchema) IntegerSchema(io.swagger.v3.oas.models.media.IntegerSchema) StringSchema(io.swagger.v3.oas.models.media.StringSchema) ObjectSchema(io.swagger.v3.oas.models.media.ObjectSchema) ArraySchema(io.swagger.v3.oas.models.media.ArraySchema) Schema(io.swagger.v3.oas.models.media.Schema) MapSchema(io.swagger.v3.oas.models.media.MapSchema) BinarySchema(io.swagger.v3.oas.models.media.BinarySchema) Parameter(io.swagger.v3.oas.models.parameters.Parameter) QueryParameter(io.swagger.v3.oas.models.parameters.QueryParameter) StringSchema(io.swagger.v3.oas.models.media.StringSchema) SwaggerParseResult(io.swagger.v3.parser.core.models.SwaggerParseResult) OpenAPIV3Parser(io.swagger.v3.parser.OpenAPIV3Parser) OpenAPI(io.swagger.v3.oas.models.OpenAPI) Test(org.testng.annotations.Test)

Example 52 with Pet

use of io.swagger.v3.jaxrs2.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());
}
Also used : Components(io.swagger.v3.oas.models.Components) DateSchema(io.swagger.v3.oas.models.media.DateSchema) ComposedSchema(io.swagger.v3.oas.models.media.ComposedSchema) DateTimeSchema(io.swagger.v3.oas.models.media.DateTimeSchema) ByteArraySchema(io.swagger.v3.oas.models.media.ByteArraySchema) IntegerSchema(io.swagger.v3.oas.models.media.IntegerSchema) StringSchema(io.swagger.v3.oas.models.media.StringSchema) ObjectSchema(io.swagger.v3.oas.models.media.ObjectSchema) ArraySchema(io.swagger.v3.oas.models.media.ArraySchema) Schema(io.swagger.v3.oas.models.media.Schema) MapSchema(io.swagger.v3.oas.models.media.MapSchema) BinarySchema(io.swagger.v3.oas.models.media.BinarySchema) Collections.emptyList(java.util.Collections.emptyList) List(java.util.List) SwaggerParseResult(io.swagger.v3.parser.core.models.SwaggerParseResult) OpenAPI(io.swagger.v3.oas.models.OpenAPI) Map(java.util.Map) Test(org.testng.annotations.Test)

Example 53 with Pet

use of io.swagger.v3.jaxrs2.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");
}
Also used : SwaggerParseResult(io.swagger.v3.parser.core.models.SwaggerParseResult) Tag(io.swagger.v3.oas.models.tags.Tag) OpenAPI(io.swagger.v3.oas.models.OpenAPI) Test(org.testng.annotations.Test)

Example 54 with Pet

use of io.swagger.v3.jaxrs2.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());
}
Also used : Collections.emptyList(java.util.Collections.emptyList) List(java.util.List) SwaggerParseResult(io.swagger.v3.parser.core.models.SwaggerParseResult) OpenAPI(io.swagger.v3.oas.models.OpenAPI) Map(java.util.Map) Test(org.testng.annotations.Test)

Example 55 with Pet

use of io.swagger.v3.jaxrs2.resources.model.Pet in project swagger-parser by swagger-api.

the class OpenAPIDeserializerTest method readContentObject.

@Test(dataProvider = "data")
public void readContentObject(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);
    PathItem petByStatusEndpoint = paths.get("/pet/findByStatusContent");
    Assert.assertNotNull(petByStatusEndpoint.getGet());
    Assert.assertNotNull(petByStatusEndpoint.getGet().getParameters());
    Assert.assertEquals(petByStatusEndpoint.getGet().getParameters().size(), 3);
    Assert.assertNotNull(petByStatusEndpoint.getGet().getParameters().get(0).getContent());
    Assert.assertEquals(petByStatusEndpoint.getGet().getParameters().get(0).getContent().size(), 1);
    Assert.assertEquals(petByStatusEndpoint.getGet().getParameters().get(0).getContent().get("application/json").getSchema().getType(), "array");
    Assert.assertEquals(petByStatusEndpoint.getGet().getParameters().get(0).getContent().get("application/json").getExample(), null);
    Assert.assertEquals(petByStatusEndpoint.getGet().getParameters().get(0).getContent().get("application/json").getExamples().get("list").getSummary(), "List of Names");
    Assert.assertEquals(petByStatusEndpoint.getGet().getParameters().get(0).getContent().get("application/json").getSchema().getType(), "array");
    Assert.assertNotNull(petByStatusEndpoint.getGet().getParameters().get(1).getContent());
    Assert.assertEquals(petByStatusEndpoint.getGet().getParameters().get(1).getContent().size(), 1);
    Assert.assertEquals(petByStatusEndpoint.getGet().getParameters().get(1).getContent().get("application/xml").getExamples().get("list").getSummary(), "List of names");
    Assert.assertEquals(petByStatusEndpoint.getGet().getParameters().get(1).getContent().get("application/xml").getExamples().get("list").getValue(), "<Users><User name='Bob'/><User name='Diane'/><User name='Mary'/><User name='Bill'/></Users>");
    Assert.assertNotNull(petByStatusEndpoint.getGet().getParameters().get(1).getContent().get("application/xml").getExamples().get("empty").getSummary());
    Assert.assertEquals(petByStatusEndpoint.getGet().getParameters().get(1).getContent().get("application/xml").getExamples().get("empty").getSummary(), "Empty list");
    Assert.assertEquals(petByStatusEndpoint.getGet().getParameters().get(1).getContent().get("application/xml").getExamples().get("empty").getValue(), "<Users/>");
    Assert.assertNotNull(petByStatusEndpoint.getGet().getParameters().get(2).getContent());
    Assert.assertEquals(petByStatusEndpoint.getGet().getParameters().get(2).getContent().size(), 1);
    Assert.assertEquals(petByStatusEndpoint.getGet().getParameters().get(2).getContent().get("text/plain").getExamples().get("list").getSummary(), "List of names");
    Assert.assertEquals(petByStatusEndpoint.getGet().getParameters().get(2).getContent().get("text/plain").getExamples().get("list").getValue(), "Bob,Diane,Mary,Bill");
    Assert.assertEquals(petByStatusEndpoint.getGet().getParameters().get(2).getContent().get("text/plain").getExamples().get("empty").getSummary(), "Empty");
    Assert.assertEquals(petByStatusEndpoint.getGet().getParameters().get(2).getContent().get("text/plain").getExamples().get("empty").getValue(), "");
    PathItem petEndpoint = paths.get("/pet");
    Assert.assertNotNull(petEndpoint.getPut());
    Assert.assertNotNull(petEndpoint.getPut().getResponses().get("400").getContent().get("application/json"));
    Assert.assertEquals(petEndpoint.getPut().getResponses().get("400").getContent().size(), 1);
    Assert.assertEquals(petEndpoint.getPut().getResponses().get("400").getContent().get("application/json").getSchema().getType(), "array");
}
Also used : PathItem(io.swagger.v3.oas.models.PathItem) SwaggerParseResult(io.swagger.v3.parser.core.models.SwaggerParseResult) Paths(io.swagger.v3.oas.models.Paths) OpenAPI(io.swagger.v3.oas.models.OpenAPI) Test(org.testng.annotations.Test)

Aggregations

Test (org.testng.annotations.Test)69 OpenAPI (io.swagger.v3.oas.models.OpenAPI)60 SwaggerParseResult (io.swagger.v3.parser.core.models.SwaggerParseResult)37 Schema (io.swagger.v3.oas.models.media.Schema)32 ArraySchema (io.swagger.v3.oas.models.media.ArraySchema)28 OpenAPIV3Parser (io.swagger.v3.parser.OpenAPIV3Parser)28 IntegerSchema (io.swagger.v3.oas.models.media.IntegerSchema)24 StringSchema (io.swagger.v3.oas.models.media.StringSchema)24 ComposedSchema (io.swagger.v3.oas.models.media.ComposedSchema)20 ObjectSchema (io.swagger.v3.oas.models.media.ObjectSchema)17 ParseOptions (io.swagger.v3.parser.core.models.ParseOptions)17 PathItem (io.swagger.v3.oas.models.PathItem)16 ByteArraySchema (io.swagger.v3.oas.models.media.ByteArraySchema)15 MapSchema (io.swagger.v3.oas.models.media.MapSchema)12 DateSchema (io.swagger.v3.oas.models.media.DateSchema)10 DateTimeSchema (io.swagger.v3.oas.models.media.DateTimeSchema)10 ArrayList (java.util.ArrayList)10 Operation (io.swagger.v3.oas.models.Operation)9 Paths (io.swagger.v3.oas.models.Paths)9 Parameter (io.swagger.v3.oas.models.parameters.Parameter)8