Skip to content

Commit

Permalink
Adding a validation test that validates a clean spec
Browse files Browse the repository at this point in the history
- This verifies that rules are not unintentionally being returned for specs that don't have the issue. If a rule is added that causes this test to fail, this spec should be updated so that it passes those rules (and verify that the rule isn't being triggered inadvertently)
  • Loading branch information
tbombach committed Jul 12, 2016
1 parent e7bf312 commit 36dc24d
Show file tree
Hide file tree
Showing 2 changed files with 216 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,206 @@
{
"swagger": "2.0",
"info": {
"version": "1.0.0",
"title": "Swagger Petstore",
"license": {
"name": "MIT"
}
},
"host": "petstore.swagger.io",
"basePath": "/v1",
"schemes": [
"http"
],
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"paths": {
"/pets": {
"get": {
"summary": "List all pets",
"operationId": "listPets",
"tags": [
"pets"
],
"parameters": [
{
"name": "limit",
"in": "query",
"description": "How many items to return at one time (max 100)",
"required": false,
"type": "integer",
"format": "int32"
}
],
"responses": {
"200": {
"description": "An paged array of pets",
"headers": {
"x-next": {
"type": "string",
"description": "A link to the next page of responses"
}
},
"schema": {
"$ref": "#/definitions/Pets"
}
},
"default": {
"description": "unexpected error",
"schema": {
"$ref": "#/definitions/Error"
}
}
}
},
"post": {
"summary": "Create a pet",
"operationId": "createPets",
"tags": [
"pets"
],
"responses": {
"201": {
"description": "Null response"
},
"default": {
"description": "unexpected error",
"schema": {
"$ref": "#/definitions/Error"
}
}
}
}
},
"/pets/{petId}": {
"get": {
"summary": "Info for a specific pet",
"operationId": "showPetById",
"tags": [
"pets"
],
"parameters": [
{
"name": "petId",
"in": "path",
"required": true,
"description": "The id of the pet to retrieve",
"type": "string"
}
],
"responses": {
"200": {
"description": "Expected response to a valid request",
"schema": {
"$ref": "#/definitions/Pets"
}
},
"default": {
"description": "unexpected error",
"schema": {
"$ref": "#/definitions/Error"
}
}
}
}
},
"/foo": {
"get": {
"operationId": "Foo_Get",
"responses": {
"default": {
"$ref": "#/responses/FooResponse"
}
}
},
"post": {
"operationId": "Foo_Post",
"parameters": [
{
"in": "body",
"name": "fooPost",
"schema": {
"type": "object",
"description": "A foo object"
},
"description": "Foo body parameter"
},
{
"$ref": "#/parameters/FooQueryParam"
}
],
"responses": {
"default": {
"$ref": "#/responses/FooResponse"
}
}
}
}
},
"parameters": {
"FooQueryParam": {
"in": "query",
"name": "FooQueryParam",
"description": "Query parameter for Foo operation",
"type": "string"
}
},
"responses": {
"FooResponse": {
"description": "Response for Foo"
}
},
"definitions": {
"Pet": {
"required": [
"id",
"name"
],
"properties": {
"id": {
"type": "integer",
"format": "int64",
"description": "The pet id"
},
"name": {
"type": "string",
"description": "The pet name"
},
"tag": {
"type": "string",
"description": "The pet tag"
}
},
"description": "A pet"
},
"Pets": {
"type": "array",
"items": {
"$ref": "#/definitions/Pet"
},
"description": "A set of pets"
},
"Error": {
"required": [
"code",
"message"
],
"properties": {
"code": {
"type": "integer",
"format": "int32",
"description": "The code of the error"
},
"message": {
"type": "string",
"description": "The message of the error"
}
},
"description": "An error result"
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,16 @@ private IEnumerable<ValidationMessage> ValidateSwagger(string input)
return messages;
}

/// <summary>
/// Verifies that a clean Swagger file does not result in any validation errors
/// </summary>
[Fact]
public void CleanFileValidation()
{
var messages = ValidateSwagger(Path.Combine("Swagger", "Validation", "clean-complex-spec.json"));
Assert.Empty(messages.Where(m => m.Severity >= LogEntrySeverity.Warning));
}

[Fact]
public void MissingDescriptionValidation()
{
Expand Down

0 comments on commit 36dc24d

Please sign in to comment.