vendor: remove dep and use vndr
Signed-off-by: Antonio Murdaca <runcom@redhat.com>
This commit is contained in:
parent
16f44674a4
commit
148e72d81e
16131 changed files with 73815 additions and 4235138 deletions
26
vendor/github.com/go-openapi/spec/.editorconfig
generated
vendored
26
vendor/github.com/go-openapi/spec/.editorconfig
generated
vendored
|
@ -1,26 +0,0 @@
|
|||
# top-most EditorConfig file
|
||||
root = true
|
||||
|
||||
# Unix-style newlines with a newline ending every file
|
||||
[*]
|
||||
end_of_line = lf
|
||||
insert_final_newline = true
|
||||
indent_style = space
|
||||
indent_size = 2
|
||||
trim_trailing_whitespace = true
|
||||
|
||||
# Set default charset
|
||||
[*.{js,py,go,scala,rb,java,html,css,less,sass,md}]
|
||||
charset = utf-8
|
||||
|
||||
# Tab indentation (no size specified)
|
||||
[*.go]
|
||||
indent_style = tab
|
||||
|
||||
[*.md]
|
||||
trim_trailing_whitespace = false
|
||||
|
||||
# Matches the exact files either package.json or .travis.yml
|
||||
[{package.json,.travis.yml}]
|
||||
indent_style = space
|
||||
indent_size = 2
|
117
vendor/github.com/go-openapi/spec/.github/CONTRIBUTING.md
generated
vendored
117
vendor/github.com/go-openapi/spec/.github/CONTRIBUTING.md
generated
vendored
|
@ -1,117 +0,0 @@
|
|||
## Contribution Guidelines
|
||||
|
||||
### Pull requests are always welcome
|
||||
|
||||
We are always thrilled to receive pull requests, and do our best to
|
||||
process them as fast as possible. Not sure if that typo is worth a pull
|
||||
request? Do it! We will appreciate it.
|
||||
|
||||
If your pull request is not accepted on the first try, don't be
|
||||
discouraged! If there's a problem with the implementation, hopefully you
|
||||
received feedback on what to improve.
|
||||
|
||||
We're trying very hard to keep go-swagger lean and focused. We don't want it
|
||||
to do everything for everybody. This means that we might decide against
|
||||
incorporating a new feature. However, there might be a way to implement
|
||||
that feature *on top of* go-swagger.
|
||||
|
||||
|
||||
### Conventions
|
||||
|
||||
Fork the repo and make changes on your fork in a feature branch:
|
||||
|
||||
- If it's a bugfix branch, name it XXX-something where XXX is the number of the
|
||||
issue
|
||||
- If it's a feature branch, create an enhancement issue to announce your
|
||||
intentions, and name it XXX-something where XXX is the number of the issue.
|
||||
|
||||
Submit unit tests for your changes. Go has a great test framework built in; use
|
||||
it! Take a look at existing tests for inspiration. Run the full test suite on
|
||||
your branch before submitting a pull request.
|
||||
|
||||
Update the documentation when creating or modifying features. Test
|
||||
your documentation changes for clarity, concision, and correctness, as
|
||||
well as a clean documentation build. See ``docs/README.md`` for more
|
||||
information on building the docs and how docs get released.
|
||||
|
||||
Write clean code. Universally formatted code promotes ease of writing, reading,
|
||||
and maintenance. Always run `gofmt -s -w file.go` on each changed file before
|
||||
committing your changes. Most editors have plugins that do this automatically.
|
||||
|
||||
Pull requests descriptions should be as clear as possible and include a
|
||||
reference to all the issues that they address.
|
||||
|
||||
Pull requests must not contain commits from other users or branches.
|
||||
|
||||
Commit messages must start with a capitalized and short summary (max. 50
|
||||
chars) written in the imperative, followed by an optional, more detailed
|
||||
explanatory text which is separated from the summary by an empty line.
|
||||
|
||||
Code review comments may be added to your pull request. Discuss, then make the
|
||||
suggested modifications and push additional commits to your feature branch. Be
|
||||
sure to post a comment after pushing. The new commits will show up in the pull
|
||||
request automatically, but the reviewers will not be notified unless you
|
||||
comment.
|
||||
|
||||
Before the pull request is merged, make sure that you squash your commits into
|
||||
logical units of work using `git rebase -i` and `git push -f`. After every
|
||||
commit the test suite should be passing. Include documentation changes in the
|
||||
same commit so that a revert would remove all traces of the feature or fix.
|
||||
|
||||
Commits that fix or close an issue should include a reference like `Closes #XXX`
|
||||
or `Fixes #XXX`, which will automatically close the issue when merged.
|
||||
|
||||
### Sign your work
|
||||
|
||||
The sign-off is a simple line at the end of the explanation for the
|
||||
patch, which certifies that you wrote it or otherwise have the right to
|
||||
pass it on as an open-source patch. The rules are pretty simple: if you
|
||||
can certify the below (from
|
||||
[developercertificate.org](http://developercertificate.org/)):
|
||||
|
||||
```
|
||||
Developer Certificate of Origin
|
||||
Version 1.1
|
||||
|
||||
Copyright (C) 2004, 2006 The Linux Foundation and its contributors.
|
||||
660 York Street, Suite 102,
|
||||
San Francisco, CA 94110 USA
|
||||
|
||||
Everyone is permitted to copy and distribute verbatim copies of this
|
||||
license document, but changing it is not allowed.
|
||||
|
||||
|
||||
Developer's Certificate of Origin 1.1
|
||||
|
||||
By making a contribution to this project, I certify that:
|
||||
|
||||
(a) The contribution was created in whole or in part by me and I
|
||||
have the right to submit it under the open source license
|
||||
indicated in the file; or
|
||||
|
||||
(b) The contribution is based upon previous work that, to the best
|
||||
of my knowledge, is covered under an appropriate open source
|
||||
license and I have the right under that license to submit that
|
||||
work with modifications, whether created in whole or in part
|
||||
by me, under the same open source license (unless I am
|
||||
permitted to submit under a different license), as indicated
|
||||
in the file; or
|
||||
|
||||
(c) The contribution was provided directly to me by some other
|
||||
person who certified (a), (b) or (c) and I have not modified
|
||||
it.
|
||||
|
||||
(d) I understand and agree that this project and the contribution
|
||||
are public and that a record of the contribution (including all
|
||||
personal information I submit with it, including my sign-off) is
|
||||
maintained indefinitely and may be redistributed consistent with
|
||||
this project or the open source license(s) involved.
|
||||
```
|
||||
|
||||
then you just add a line to every git commit message:
|
||||
|
||||
Signed-off-by: Joe Smith <joe@gmail.com>
|
||||
|
||||
using your real name (sorry, no pseudonyms or anonymous contributions.)
|
||||
|
||||
You can add the sign off when creating the git commit via `git commit -s`.
|
2
vendor/github.com/go-openapi/spec/.gitignore
generated
vendored
2
vendor/github.com/go-openapi/spec/.gitignore
generated
vendored
|
@ -1,2 +0,0 @@
|
|||
secrets.yml
|
||||
coverage.out
|
16
vendor/github.com/go-openapi/spec/.travis.yml
generated
vendored
16
vendor/github.com/go-openapi/spec/.travis.yml
generated
vendored
|
@ -1,16 +0,0 @@
|
|||
language: go
|
||||
go:
|
||||
- 1.7
|
||||
install:
|
||||
- go get -u github.com/stretchr/testify
|
||||
- go get -u github.com/go-openapi/swag
|
||||
- go get -u gopkg.in/yaml.v2
|
||||
- go get -u github.com/go-openapi/jsonpointer
|
||||
- go get -u github.com/go-openapi/jsonreference
|
||||
script:
|
||||
- go test -v -race -cover -coverprofile=coverage.txt -covermode=atomic ./...
|
||||
after_success:
|
||||
- bash <(curl -s https://codecov.io/bash)
|
||||
notifications:
|
||||
slack:
|
||||
secure: QUWvCkBBK09GF7YtEvHHVt70JOkdlNBG0nIKu/5qc4/nW5HP8I2w0SEf/XR2je0eED1Qe3L/AfMCWwrEj+IUZc3l4v+ju8X8R3Lomhme0Eb0jd1MTMCuPcBT47YCj0M7RON7vXtbFfm1hFJ/jLe5+9FXz0hpXsR24PJc5ZIi/ogNwkaPqG4BmndzecpSh0vc2FJPZUD9LT0I09REY/vXR0oQAalLkW0asGD5taHZTUZq/kBpsNxaAFrLM23i4mUcf33M5fjLpvx5LRICrX/57XpBrDh2TooBU6Qj3CgoY0uPRYUmSNxbVx1czNzl2JtEpb5yjoxfVPQeg0BvQM00G8LJINISR+ohrjhkZmAqchDupAX+yFrxTtORa78CtnIL6z/aTNlgwwVD8kvL/1pFA/JWYmKDmz93mV/+6wubGzNSQCstzjkFA4/iZEKewKUoRIAi/fxyscP6L/rCpmY/4llZZvrnyTqVbt6URWpopUpH4rwYqreXAtJxJsfBJIeSmUIiDIOMGkCTvyTEW3fWGmGoqWtSHLoaWDyAIGb7azb+KvfpWtEcoPFWfSWU+LGee0A/YsUhBl7ADB9A0CJEuR8q4BPpKpfLwPKSiKSAXL7zDkyjExyhtgqbSl2jS+rKIHOZNL8JkCcTP2MKMVd563C5rC5FMKqu3S9m2b6380E=
|
74
vendor/github.com/go-openapi/spec/CODE_OF_CONDUCT.md
generated
vendored
74
vendor/github.com/go-openapi/spec/CODE_OF_CONDUCT.md
generated
vendored
|
@ -1,74 +0,0 @@
|
|||
# Contributor Covenant Code of Conduct
|
||||
|
||||
## Our Pledge
|
||||
|
||||
In the interest of fostering an open and welcoming environment, we as
|
||||
contributors and maintainers pledge to making participation in our project and
|
||||
our community a harassment-free experience for everyone, regardless of age, body
|
||||
size, disability, ethnicity, gender identity and expression, level of experience,
|
||||
nationality, personal appearance, race, religion, or sexual identity and
|
||||
orientation.
|
||||
|
||||
## Our Standards
|
||||
|
||||
Examples of behavior that contributes to creating a positive environment
|
||||
include:
|
||||
|
||||
* Using welcoming and inclusive language
|
||||
* Being respectful of differing viewpoints and experiences
|
||||
* Gracefully accepting constructive criticism
|
||||
* Focusing on what is best for the community
|
||||
* Showing empathy towards other community members
|
||||
|
||||
Examples of unacceptable behavior by participants include:
|
||||
|
||||
* The use of sexualized language or imagery and unwelcome sexual attention or
|
||||
advances
|
||||
* Trolling, insulting/derogatory comments, and personal or political attacks
|
||||
* Public or private harassment
|
||||
* Publishing others' private information, such as a physical or electronic
|
||||
address, without explicit permission
|
||||
* Other conduct which could reasonably be considered inappropriate in a
|
||||
professional setting
|
||||
|
||||
## Our Responsibilities
|
||||
|
||||
Project maintainers are responsible for clarifying the standards of acceptable
|
||||
behavior and are expected to take appropriate and fair corrective action in
|
||||
response to any instances of unacceptable behavior.
|
||||
|
||||
Project maintainers have the right and responsibility to remove, edit, or
|
||||
reject comments, commits, code, wiki edits, issues, and other contributions
|
||||
that are not aligned to this Code of Conduct, or to ban temporarily or
|
||||
permanently any contributor for other behaviors that they deem inappropriate,
|
||||
threatening, offensive, or harmful.
|
||||
|
||||
## Scope
|
||||
|
||||
This Code of Conduct applies both within project spaces and in public spaces
|
||||
when an individual is representing the project or its community. Examples of
|
||||
representing a project or community include using an official project e-mail
|
||||
address, posting via an official social media account, or acting as an appointed
|
||||
representative at an online or offline event. Representation of a project may be
|
||||
further defined and clarified by project maintainers.
|
||||
|
||||
## Enforcement
|
||||
|
||||
Instances of abusive, harassing, or otherwise unacceptable behavior may be
|
||||
reported by contacting the project team at ivan+abuse@flanders.co.nz. All
|
||||
complaints will be reviewed and investigated and will result in a response that
|
||||
is deemed necessary and appropriate to the circumstances. The project team is
|
||||
obligated to maintain confidentiality with regard to the reporter of an incident.
|
||||
Further details of specific enforcement policies may be posted separately.
|
||||
|
||||
Project maintainers who do not follow or enforce the Code of Conduct in good
|
||||
faith may face temporary or permanent repercussions as determined by other
|
||||
members of the project's leadership.
|
||||
|
||||
## Attribution
|
||||
|
||||
This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,
|
||||
available at [http://contributor-covenant.org/version/1/4][version]
|
||||
|
||||
[homepage]: http://contributor-covenant.org
|
||||
[version]: http://contributor-covenant.org/version/1/4/
|
128
vendor/github.com/go-openapi/spec/auth_test.go
generated
vendored
128
vendor/github.com/go-openapi/spec/auth_test.go
generated
vendored
|
@ -1,128 +0,0 @@
|
|||
// Copyright 2015 go-swagger maintainers
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
package spec
|
||||
|
||||
import (
|
||||
"testing"
|
||||
)
|
||||
|
||||
func TestSerialization_AuthSerialization(t *testing.T) {
|
||||
assertSerializeJSON(t, BasicAuth(), `{"type":"basic"}`)
|
||||
|
||||
assertSerializeJSON(t, APIKeyAuth("api-key", "header"), `{"type":"apiKey","name":"api-key","in":"header"}`)
|
||||
|
||||
assertSerializeJSON(
|
||||
t,
|
||||
OAuth2Implicit("http://foo.com/authorization"),
|
||||
`{"type":"oauth2","flow":"implicit","authorizationUrl":"http://foo.com/authorization"}`)
|
||||
|
||||
assertSerializeJSON(
|
||||
t,
|
||||
OAuth2Password("http://foo.com/token"),
|
||||
`{"type":"oauth2","flow":"password","tokenUrl":"http://foo.com/token"}`)
|
||||
|
||||
assertSerializeJSON(t,
|
||||
OAuth2Application("http://foo.com/token"),
|
||||
`{"type":"oauth2","flow":"application","tokenUrl":"http://foo.com/token"}`)
|
||||
|
||||
assertSerializeJSON(
|
||||
t,
|
||||
OAuth2AccessToken("http://foo.com/authorization", "http://foo.com/token"),
|
||||
`{"type":"oauth2","flow":"accessCode","authorizationUrl":"http://foo.com/authorization","tokenUrl":"http://foo.com/token"}`)
|
||||
|
||||
auth1 := OAuth2Implicit("http://foo.com/authorization")
|
||||
auth1.AddScope("email", "read your email")
|
||||
assertSerializeJSON(
|
||||
t,
|
||||
auth1,
|
||||
`{"type":"oauth2","flow":"implicit","authorizationUrl":"http://foo.com/authorization","scopes":{"email":"read your email"}}`)
|
||||
|
||||
auth2 := OAuth2Password("http://foo.com/authorization")
|
||||
auth2.AddScope("email", "read your email")
|
||||
assertSerializeJSON(
|
||||
t,
|
||||
auth2,
|
||||
`{"type":"oauth2","flow":"password","tokenUrl":"http://foo.com/authorization","scopes":{"email":"read your email"}}`)
|
||||
|
||||
auth3 := OAuth2Application("http://foo.com/token")
|
||||
auth3.AddScope("email", "read your email")
|
||||
assertSerializeJSON(
|
||||
t,
|
||||
auth3,
|
||||
`{"type":"oauth2","flow":"application","tokenUrl":"http://foo.com/token","scopes":{"email":"read your email"}}`)
|
||||
|
||||
auth4 := OAuth2AccessToken("http://foo.com/authorization", "http://foo.com/token")
|
||||
auth4.AddScope("email", "read your email")
|
||||
assertSerializeJSON(
|
||||
t,
|
||||
auth4,
|
||||
`{"type":"oauth2","flow":"accessCode","authorizationUrl":"http://foo.com/authorization","tokenUrl":"http://foo.com/token","scopes":{"email":"read your email"}}`)
|
||||
}
|
||||
|
||||
func TestSerialization_AuthDeserialization(t *testing.T) {
|
||||
|
||||
assertParsesJSON(t, `{"type":"basic"}`, BasicAuth())
|
||||
|
||||
assertParsesJSON(
|
||||
t,
|
||||
`{"in":"header","name":"api-key","type":"apiKey"}`,
|
||||
APIKeyAuth("api-key", "header"))
|
||||
|
||||
assertParsesJSON(
|
||||
t,
|
||||
`{"authorizationUrl":"http://foo.com/authorization","flow":"implicit","type":"oauth2"}`,
|
||||
OAuth2Implicit("http://foo.com/authorization"))
|
||||
|
||||
assertParsesJSON(
|
||||
t,
|
||||
`{"flow":"password","tokenUrl":"http://foo.com/token","type":"oauth2"}`,
|
||||
OAuth2Password("http://foo.com/token"))
|
||||
|
||||
assertParsesJSON(
|
||||
t,
|
||||
`{"flow":"application","tokenUrl":"http://foo.com/token","type":"oauth2"}`,
|
||||
OAuth2Application("http://foo.com/token"))
|
||||
|
||||
assertParsesJSON(
|
||||
t,
|
||||
`{"authorizationUrl":"http://foo.com/authorization","flow":"accessCode","tokenUrl":"http://foo.com/token","type":"oauth2"}`,
|
||||
OAuth2AccessToken("http://foo.com/authorization", "http://foo.com/token"))
|
||||
|
||||
auth1 := OAuth2Implicit("http://foo.com/authorization")
|
||||
auth1.AddScope("email", "read your email")
|
||||
assertParsesJSON(t,
|
||||
`{"authorizationUrl":"http://foo.com/authorization","flow":"implicit","scopes":{"email":"read your email"},"type":"oauth2"}`,
|
||||
auth1)
|
||||
|
||||
auth2 := OAuth2Password("http://foo.com/token")
|
||||
auth2.AddScope("email", "read your email")
|
||||
assertParsesJSON(t,
|
||||
`{"flow":"password","scopes":{"email":"read your email"},"tokenUrl":"http://foo.com/token","type":"oauth2"}`,
|
||||
auth2)
|
||||
|
||||
auth3 := OAuth2Application("http://foo.com/token")
|
||||
auth3.AddScope("email", "read your email")
|
||||
assertParsesJSON(t,
|
||||
`{"flow":"application","scopes":{"email":"read your email"},"tokenUrl":"http://foo.com/token","type":"oauth2"}`,
|
||||
auth3)
|
||||
|
||||
auth4 := OAuth2AccessToken("http://foo.com/authorization", "http://foo.com/token")
|
||||
auth4.AddScope("email", "read your email")
|
||||
assertParsesJSON(
|
||||
t,
|
||||
`{"authorizationUrl":"http://foo.com/authorization","flow":"accessCode","scopes":{"email":"read your email"},"tokenUrl":"http://foo.com/token","type":"oauth2"}`,
|
||||
auth4)
|
||||
|
||||
}
|
37
vendor/github.com/go-openapi/spec/contact_info_test.go
generated
vendored
37
vendor/github.com/go-openapi/spec/contact_info_test.go
generated
vendored
|
@ -1,37 +0,0 @@
|
|||
// Copyright 2015 go-swagger maintainers
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
package spec
|
||||
|
||||
import (
|
||||
"testing"
|
||||
)
|
||||
|
||||
var contactInfoJSON = `{"name":"wordnik api team","url":"http://developer.wordnik.com","email":"some@mailayada.dkdkd"}`
|
||||
var contactInfoYAML = `name: wordnik api team
|
||||
url: http://developer.wordnik.com
|
||||
email: some@mailayada.dkdkd
|
||||
`
|
||||
var contactInfo = ContactInfo{
|
||||
Name: "wordnik api team",
|
||||
URL: "http://developer.wordnik.com",
|
||||
Email: "some@mailayada.dkdkd",
|
||||
}
|
||||
|
||||
func TestIntegrationContactInfo(t *testing.T) {
|
||||
assertSerializeJSON(t, contactInfo, contactInfoJSON)
|
||||
assertSerializeYAML(t, contactInfo, contactInfoYAML)
|
||||
assertParsesJSON(t, contactInfoJSON, contactInfo)
|
||||
assertParsesYAML(t, contactInfoYAML, contactInfo)
|
||||
}
|
1133
vendor/github.com/go-openapi/spec/expander_test.go
generated
vendored
1133
vendor/github.com/go-openapi/spec/expander_test.go
generated
vendored
File diff suppressed because it is too large
Load diff
29
vendor/github.com/go-openapi/spec/external_docs_test.go
generated
vendored
29
vendor/github.com/go-openapi/spec/external_docs_test.go
generated
vendored
|
@ -1,29 +0,0 @@
|
|||
// Copyright 2015 go-swagger maintainers
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
package spec
|
||||
|
||||
import (
|
||||
"testing"
|
||||
)
|
||||
|
||||
func TestIntegrationExternalDocs(t *testing.T) {
|
||||
var extDocs = ExternalDocumentation{"the name", "the url"}
|
||||
const extDocsYAML = "description: the name\nurl: the url\n"
|
||||
const extDocsJSON = `{"description":"the name","url":"the url"}`
|
||||
assertSerializeJSON(t, extDocs, extDocsJSON)
|
||||
assertSerializeYAML(t, extDocs, extDocsYAML)
|
||||
assertParsesJSON(t, extDocsJSON, extDocs)
|
||||
assertParsesYAML(t, extDocsYAML, extDocs)
|
||||
}
|
254
vendor/github.com/go-openapi/spec/fixtures/expansion/all-the-things.json
generated
vendored
254
vendor/github.com/go-openapi/spec/fixtures/expansion/all-the-things.json
generated
vendored
|
@ -1,254 +0,0 @@
|
|||
{
|
||||
"swagger": "2.0",
|
||||
"info": {
|
||||
"version": "1.0.0",
|
||||
"title": "Swagger Petstore",
|
||||
"description": "A sample API that uses a petstore as an example to demonstrate features in the swagger-2.0 specification",
|
||||
"termsOfService": "http://helloreverb.com/terms/",
|
||||
"contact": {
|
||||
"name": "Wordnik API Team"
|
||||
},
|
||||
"license": {
|
||||
"name": "MIT"
|
||||
}
|
||||
},
|
||||
"host": "petstore.swagger.wordnik.com",
|
||||
"basePath": "/api",
|
||||
"schemes": [
|
||||
"http"
|
||||
],
|
||||
"consumes": [
|
||||
"application/json"
|
||||
],
|
||||
"produces": [
|
||||
"application/json"
|
||||
],
|
||||
"parameters": {
|
||||
"idParam": {
|
||||
"name": "id",
|
||||
"in": "path",
|
||||
"description": "ID of pet to fetch",
|
||||
"required": true,
|
||||
"type": "integer",
|
||||
"format": "int64"
|
||||
},
|
||||
"tag": {
|
||||
"type": "string",
|
||||
"in": "query",
|
||||
"required": false
|
||||
},
|
||||
"query": {
|
||||
"$ref": "#/parameters/tag"
|
||||
}
|
||||
},
|
||||
"responses": {
|
||||
"petResponse": {
|
||||
"description": "pet response",
|
||||
"schema": {
|
||||
"$ref": "#/definitions/pet"
|
||||
}
|
||||
},
|
||||
"stringResponse": {
|
||||
"descripion": "string response",
|
||||
"schema": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"anotherPet": {
|
||||
"$ref": "#/responses/petResponse"
|
||||
}
|
||||
},
|
||||
"paths": {
|
||||
"/": {
|
||||
"get": {
|
||||
"operationId": "indexStuff",
|
||||
"responses": {
|
||||
"default": {
|
||||
"$ref": "#/responses/stringResponse"
|
||||
},
|
||||
"200": {
|
||||
"$ref": "#/responses/anotherPet"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"/pets": {
|
||||
"get": {
|
||||
"description": "Returns all pets from the system that the user has access to",
|
||||
"operationId": "findPets",
|
||||
"produces": [
|
||||
"application/json",
|
||||
"application/xml",
|
||||
"text/xml",
|
||||
"text/html"
|
||||
],
|
||||
"parameters": [
|
||||
{
|
||||
"name": "tags",
|
||||
"in": "query",
|
||||
"description": "tags to filter by",
|
||||
"required": false,
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string"
|
||||
},
|
||||
"collectionFormat": "csv"
|
||||
},
|
||||
{
|
||||
"name": "limit",
|
||||
"in": "query",
|
||||
"description": "maximum number of results to return",
|
||||
"required": false,
|
||||
"type": "integer",
|
||||
"format": "int32"
|
||||
}
|
||||
],
|
||||
"responses": {
|
||||
"200": {
|
||||
"description": "pet response",
|
||||
"schema": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "#/definitions/pet"
|
||||
}
|
||||
}
|
||||
},
|
||||
"default": {
|
||||
"description": "unexpected error",
|
||||
"schema": {
|
||||
"$ref": "#/definitions/errorModel"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"post": {
|
||||
"description": "Creates a new pet in the store. Duplicates are allowed",
|
||||
"operationId": "addPet",
|
||||
"produces": [
|
||||
"application/json"
|
||||
],
|
||||
"parameters": [
|
||||
{
|
||||
"name": "pet",
|
||||
"in": "body",
|
||||
"description": "Pet to add to the store",
|
||||
"required": true,
|
||||
"schema": {
|
||||
"$ref": "#/definitions/petInput"
|
||||
}
|
||||
}
|
||||
],
|
||||
"responses": {
|
||||
"200": { "$ref": "#/responses/petResponse" },
|
||||
"default": {
|
||||
"description": "unexpected error",
|
||||
"schema": {
|
||||
"$ref": "#/definitions/errorModel"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"/pets/{id}": {
|
||||
"get": {
|
||||
"description": "Returns a user based on a single ID, if the user does not have access to the pet",
|
||||
"operationId": "findPetById",
|
||||
"produces": [
|
||||
"application/json",
|
||||
"application/xml",
|
||||
"text/xml",
|
||||
"text/html"
|
||||
],
|
||||
"parameters": [
|
||||
{
|
||||
"$ref": "#/parameters/idParam"
|
||||
}
|
||||
],
|
||||
"responses": {
|
||||
"200": {
|
||||
"$ref": "#/responses/petResponse"
|
||||
},
|
||||
"default": {
|
||||
"description": "unexpected error",
|
||||
"schema": {
|
||||
"$ref": "#/definitions/errorModel"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"delete": {
|
||||
"description": "deletes a single pet based on the ID supplied",
|
||||
"operationId": "deletePet",
|
||||
"parameters": [
|
||||
{
|
||||
"$ref": "#/parameters/idParam"
|
||||
}
|
||||
],
|
||||
"responses": {
|
||||
"204": {
|
||||
"description": "pet deleted"
|
||||
},
|
||||
"default": {
|
||||
"description": "unexpected error",
|
||||
"schema": {
|
||||
"$ref": "#/definitions/errorModel"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"definitions": {
|
||||
"pet": {
|
||||
"required": [
|
||||
"id",
|
||||
"name"
|
||||
],
|
||||
"properties": {
|
||||
"id": {
|
||||
"type": "integer",
|
||||
"format": "int64"
|
||||
},
|
||||
"name": {
|
||||
"type": "string"
|
||||
},
|
||||
"tag": {
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
},
|
||||
"petInput": {
|
||||
"allOf": [
|
||||
{
|
||||
"$ref": "#/definitions/pet"
|
||||
},
|
||||
{
|
||||
"required": [
|
||||
"name"
|
||||
],
|
||||
"properties": {
|
||||
"id": {
|
||||
"type": "integer",
|
||||
"format": "int64"
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"errorModel": {
|
||||
"required": [
|
||||
"code",
|
||||
"message"
|
||||
],
|
||||
"properties": {
|
||||
"code": {
|
||||
"type": "integer",
|
||||
"format": "int32"
|
||||
},
|
||||
"message": {
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
54
vendor/github.com/go-openapi/spec/fixtures/expansion/circularRefs.json
generated
vendored
54
vendor/github.com/go-openapi/spec/fixtures/expansion/circularRefs.json
generated
vendored
|
@ -1,54 +0,0 @@
|
|||
{
|
||||
"definitions": {
|
||||
"brand": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"name": {
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
},
|
||||
"category": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"children": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "#/definitions/category"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"car": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"id": {
|
||||
"type": "integer",
|
||||
"format": "int64"
|
||||
},
|
||||
"make": {
|
||||
"type": "string"
|
||||
},
|
||||
"similar": {
|
||||
"items": {
|
||||
"$ref": "#/definitions/car"
|
||||
}
|
||||
},
|
||||
"notSimilar": {
|
||||
"additionalProperties": {
|
||||
"$ref": "#/definitions/car"
|
||||
}
|
||||
},
|
||||
"oneCar": {
|
||||
"$ref": "#/definitions/car"
|
||||
},
|
||||
"category": {
|
||||
"$ref": "#/definitions/category"
|
||||
},
|
||||
"brand": {
|
||||
"$ref": "#/definitions/brand"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
1
vendor/github.com/go-openapi/spec/fixtures/expansion/circularSpec.json
generated
vendored
1
vendor/github.com/go-openapi/spec/fixtures/expansion/circularSpec.json
generated
vendored
|
@ -1 +0,0 @@
|
|||
{"swagger":"2.0","info":{"title":"Swagger Sample","description":"Sample API Playground.","version":"1.0.0"},"basePath":"/v1","schemes":["http"],"consumes":["application/vdn.sample.v1+json"],"produces":["application/vdn.sample.v1+json"],"paths":{"/books":{"get":{"summary":"List all books","operationId":"listBooks","tags":["books"],"responses":{"200":{"headers":{"Link":{"type":"string"}},"description":"An array of books","schema":{"type":"array","items":{"$ref":"#/definitions/Book"}}},"default":{"description":"generic error response","schema":{"$ref":"#/definitions/Error"}}}}}},"definitions":{"Book":{"type":"object","required":["title","summary"],"properties":{"title":{"type":"string","example":"Winnie the Pooh"},"summary":{"type":"string","example":"Famous children's book"},"related_books":{"type":"array","items":{"$ref":"#/definitions/Book"}}}},"Error":{"type":"object","readOnly":true,"properties":{"code":{"type":"integer","format":"int64","example":400},"message":{"type":"string","example":"Unexpected error"}},"required":["message"]}}}
|
67
vendor/github.com/go-openapi/spec/fixtures/expansion/circularSpec.yaml
generated
vendored
67
vendor/github.com/go-openapi/spec/fixtures/expansion/circularSpec.yaml
generated
vendored
|
@ -1,67 +0,0 @@
|
|||
---
|
||||
swagger: "2.0"
|
||||
info:
|
||||
title: Swagger Sample
|
||||
description: Sample API Playground.
|
||||
version: 1.0.0
|
||||
basePath: /v1
|
||||
schemes:
|
||||
- http
|
||||
consumes:
|
||||
- application/vdn.sample.v1+json
|
||||
produces:
|
||||
- application/vdn.sample.v1+json
|
||||
|
||||
paths:
|
||||
/books:
|
||||
get:
|
||||
summary: List all books
|
||||
operationId: listBooks
|
||||
tags:
|
||||
- books
|
||||
responses:
|
||||
200:
|
||||
headers:
|
||||
Link:
|
||||
type: string
|
||||
description: An array of books
|
||||
schema:
|
||||
type: array
|
||||
items:
|
||||
$ref: "#/definitions/Book"
|
||||
default:
|
||||
description: generic error response
|
||||
schema:
|
||||
$ref: "#/definitions/Error"
|
||||
|
||||
definitions:
|
||||
Book:
|
||||
type: object
|
||||
required:
|
||||
- title
|
||||
- summary
|
||||
properties:
|
||||
title:
|
||||
type: string
|
||||
example: Winnie the Pooh
|
||||
summary:
|
||||
type: string
|
||||
example: Famous children's book
|
||||
related_books:
|
||||
type: array
|
||||
items:
|
||||
$ref: "#/definitions/Book"
|
||||
|
||||
Error:
|
||||
type: object
|
||||
readOnly: true
|
||||
properties:
|
||||
code:
|
||||
type: integer
|
||||
format: int64
|
||||
example: 400
|
||||
message:
|
||||
type: string
|
||||
example: Unexpected error
|
||||
required:
|
||||
- message
|
1
vendor/github.com/go-openapi/spec/fixtures/expansion/clickmeter.json
generated
vendored
1
vendor/github.com/go-openapi/spec/fixtures/expansion/clickmeter.json
generated
vendored
File diff suppressed because one or more lines are too long
6461
vendor/github.com/go-openapi/spec/fixtures/expansion/clickmeter.yaml
generated
vendored
6461
vendor/github.com/go-openapi/spec/fixtures/expansion/clickmeter.yaml
generated
vendored
File diff suppressed because it is too large
Load diff
85
vendor/github.com/go-openapi/spec/fixtures/expansion/invalid-refs.json
generated
vendored
85
vendor/github.com/go-openapi/spec/fixtures/expansion/invalid-refs.json
generated
vendored
|
@ -1,85 +0,0 @@
|
|||
{
|
||||
"swagger": "2.0",
|
||||
"info": {
|
||||
"version": "1.0.0",
|
||||
"title": "Swagger Petstore",
|
||||
"contact": {
|
||||
"name": "wordnik api team",
|
||||
"url": "http://developer.wordnik.com"
|
||||
},
|
||||
"license": {
|
||||
"name": "Creative Commons 4.0 International",
|
||||
"url": "http://creativecommons.org/licenses/by/4.0/"
|
||||
}
|
||||
},
|
||||
"host": "petstore.swagger.wordnik.com",
|
||||
"basePath": "/api",
|
||||
"schemes": [
|
||||
"http"
|
||||
],
|
||||
"paths": {
|
||||
"/pets": {
|
||||
"get": {
|
||||
"tags": [ "Pet Operations" ],
|
||||
"summary": "finds pets in the system",
|
||||
"responses": {
|
||||
"200": {
|
||||
"description": "pet response",
|
||||
"schema": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "NotCorrectRef"
|
||||
}
|
||||
},
|
||||
"headers": {
|
||||
"x-expires": {
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
},
|
||||
"default": {
|
||||
"description": "unexpected error",
|
||||
"schema": {
|
||||
"$ref": "NotCorrectRef"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"definitions": {
|
||||
"Pet": {
|
||||
"required": [
|
||||
"id",
|
||||
"name"
|
||||
],
|
||||
"properties": {
|
||||
"id": {
|
||||
"type": "integer",
|
||||
"format": "int64"
|
||||
},
|
||||
"name": {
|
||||
"type": "string"
|
||||
},
|
||||
"tag": {
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
},
|
||||
"Error": {
|
||||
"required": [
|
||||
"code",
|
||||
"message"
|
||||
],
|
||||
"properties": {
|
||||
"code": {
|
||||
"type": "integer",
|
||||
"format": "int32"
|
||||
},
|
||||
"message": {
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
124
vendor/github.com/go-openapi/spec/fixtures/expansion/overflow.json
generated
vendored
124
vendor/github.com/go-openapi/spec/fixtures/expansion/overflow.json
generated
vendored
|
@ -1,124 +0,0 @@
|
|||
{
|
||||
"swagger": "2.0",
|
||||
"info": {
|
||||
"title": "Swagger Sample",
|
||||
"description": "Sample API Playground.",
|
||||
"version": "1.0.0"
|
||||
},
|
||||
"basePath": "/v1",
|
||||
"schemes": [
|
||||
"http"
|
||||
],
|
||||
"consumes": [
|
||||
"application/vdn.sample.v1+json"
|
||||
],
|
||||
"produces": [
|
||||
"application/vdn.sample.v1+json"
|
||||
],
|
||||
"paths": {
|
||||
"/books": {
|
||||
"get": {
|
||||
"summary": "List all books",
|
||||
"operationId": "listBooks",
|
||||
"tags": [
|
||||
"books"
|
||||
],
|
||||
"responses": {
|
||||
"200": {
|
||||
"headers": {
|
||||
"Link": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"description": "An array of books",
|
||||
"schema": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "#/definitions/Book"
|
||||
}
|
||||
}
|
||||
},
|
||||
"default": {
|
||||
"description": "generic error response",
|
||||
"schema": {
|
||||
"$ref": "#/definitions/Error"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"definitions": {
|
||||
"Store": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"title": {
|
||||
"type": "string",
|
||||
"example": "Book Shop"
|
||||
},
|
||||
"categories": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "#/definitions/Category"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"Category": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"title": {
|
||||
"type": "string",
|
||||
"example": "Drama"
|
||||
},
|
||||
"books": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "#/definitions/Book"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"Book": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"title",
|
||||
"summary"
|
||||
],
|
||||
"properties": {
|
||||
"title": {
|
||||
"type": "string",
|
||||
"example": "Winnie the Pooh"
|
||||
},
|
||||
"summary": {
|
||||
"type": "string",
|
||||
"example": "Famous children's book"
|
||||
},
|
||||
"related_books": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "#/definitions/Book"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"Error": {
|
||||
"type": "object",
|
||||
"readOnly": true,
|
||||
"properties": {
|
||||
"code": {
|
||||
"type": "integer",
|
||||
"format": "int64",
|
||||
"example": 400
|
||||
},
|
||||
"message": {
|
||||
"type": "string",
|
||||
"example": "Unexpected error"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"message"
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
25
vendor/github.com/go-openapi/spec/fixtures/expansion/params.json
generated
vendored
25
vendor/github.com/go-openapi/spec/fixtures/expansion/params.json
generated
vendored
|
@ -1,25 +0,0 @@
|
|||
{
|
||||
"parameters": {
|
||||
"id": {
|
||||
"type": "integer",
|
||||
"format": "int64",
|
||||
"in": "path",
|
||||
"required": true
|
||||
},
|
||||
"tag": {
|
||||
"type": "string",
|
||||
"in": "query",
|
||||
"required": false
|
||||
},
|
||||
"query": {
|
||||
"$ref": "#/parameters/tag"
|
||||
}
|
||||
},
|
||||
"paths": {
|
||||
"/cars/{id}": {
|
||||
"parameters": [
|
||||
{ "$ref": "#/parameters/id"}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
127
vendor/github.com/go-openapi/spec/fixtures/expansion/schemas1.json
generated
vendored
127
vendor/github.com/go-openapi/spec/fixtures/expansion/schemas1.json
generated
vendored
|
@ -1,127 +0,0 @@
|
|||
{
|
||||
"definitions": {
|
||||
"car": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"id": {
|
||||
"type": "integer",
|
||||
"format": "int64"
|
||||
},
|
||||
"make": {
|
||||
"type": "string"
|
||||
},
|
||||
"brand": {
|
||||
"$ref": "#/definitions/brand"
|
||||
}
|
||||
}
|
||||
},
|
||||
"tag": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"id": {
|
||||
"type": "integer",
|
||||
"format": "int64"
|
||||
},
|
||||
"value": {
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
},
|
||||
"brand": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"id": {
|
||||
"type": "integer",
|
||||
"format": "int64"
|
||||
},
|
||||
"name": {
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
},
|
||||
"truck": {
|
||||
"$ref": "#/definitions/car"
|
||||
},
|
||||
"batch": {
|
||||
"items": {
|
||||
"$ref": "#/definitions/brand"
|
||||
}
|
||||
},
|
||||
"batch2": {
|
||||
"items": [
|
||||
{
|
||||
"$ref": "#/definitions/brand"
|
||||
},
|
||||
{
|
||||
"$ref": "#/definitions/tag"
|
||||
}
|
||||
]
|
||||
},
|
||||
"allofBoth": {
|
||||
"allOf": [
|
||||
{
|
||||
"$ref": "#/definitions/brand"
|
||||
},
|
||||
{
|
||||
"$ref": "#/definitions/tag"
|
||||
}
|
||||
]
|
||||
},
|
||||
"anyofBoth": {
|
||||
"anyOf": [
|
||||
{
|
||||
"$ref": "#/definitions/brand"
|
||||
},
|
||||
{
|
||||
"$ref": "#/definitions/tag"
|
||||
}
|
||||
]
|
||||
},
|
||||
"oneofBoth": {
|
||||
"oneOf": [
|
||||
{
|
||||
"$ref": "#/definitions/brand"
|
||||
},
|
||||
{
|
||||
"$ref": "#/definitions/tag"
|
||||
}
|
||||
]
|
||||
},
|
||||
"notSomething": {
|
||||
"not": {
|
||||
"$ref": "#/definitions/tag"
|
||||
}
|
||||
},
|
||||
"withAdditional": {
|
||||
"additionalProperties": {
|
||||
"$ref": "#/definitions/tag"
|
||||
}
|
||||
},
|
||||
"withPattern": {
|
||||
"patternProperties": {
|
||||
"^x-ab": {
|
||||
"$ref": "#/definitions/tag"
|
||||
}
|
||||
}
|
||||
},
|
||||
"withAdditionalItems": {
|
||||
"additionalItems": {
|
||||
"$ref": "#/definitions/tag"
|
||||
}
|
||||
},
|
||||
"deps": {
|
||||
"dependencies": {
|
||||
"something": {
|
||||
"$ref": "#/definitions/tag"
|
||||
}
|
||||
}
|
||||
},
|
||||
"defined": {
|
||||
"definitions": {
|
||||
"something": {
|
||||
"$ref": "#/definitions/tag"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
161
vendor/github.com/go-openapi/spec/fixtures/expansion/schemas2.json
generated
vendored
161
vendor/github.com/go-openapi/spec/fixtures/expansion/schemas2.json
generated
vendored
|
@ -1,161 +0,0 @@
|
|||
{
|
||||
"definitions": {
|
||||
"car": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"id": {
|
||||
"type": "integer",
|
||||
"format": "int64"
|
||||
},
|
||||
"make": {
|
||||
"type": "string"
|
||||
},
|
||||
"brand": {
|
||||
"items": {
|
||||
"$ref": "#/definitions/brand"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"tag": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"id": {
|
||||
"type": "integer",
|
||||
"format": "int64"
|
||||
},
|
||||
"value": {
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
},
|
||||
"brand": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"id": {
|
||||
"type": "integer",
|
||||
"format": "int64"
|
||||
},
|
||||
"name": {
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
},
|
||||
"truck": {
|
||||
"items": {
|
||||
"$ref": "#/definitions/car"
|
||||
}
|
||||
},
|
||||
"batch": {
|
||||
"items": {
|
||||
"items": {
|
||||
"$ref": "#/definitions/brand"
|
||||
}
|
||||
}
|
||||
},
|
||||
"batch2": {
|
||||
"items": [
|
||||
{
|
||||
"items": {
|
||||
"$ref": "#/definitions/brand"
|
||||
}
|
||||
},
|
||||
{
|
||||
"items": {
|
||||
"$ref": "#/definitions/tag"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"allofBoth": {
|
||||
"allOf": [
|
||||
{
|
||||
"items": {
|
||||
"$ref": "#/definitions/brand"
|
||||
}
|
||||
},
|
||||
{
|
||||
"items": {
|
||||
"$ref": "#/definitions/tag"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"anyofBoth": {
|
||||
"anyOf": [
|
||||
{
|
||||
"items": {
|
||||
"$ref": "#/definitions/brand"
|
||||
}
|
||||
},
|
||||
{
|
||||
"items": {
|
||||
"$ref": "#/definitions/tag"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"oneofBoth": {
|
||||
"oneOf": [
|
||||
{
|
||||
"items": {
|
||||
"$ref": "#/definitions/brand"
|
||||
}
|
||||
},
|
||||
{
|
||||
"items": {
|
||||
"$ref": "#/definitions/tag"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"notSomething": {
|
||||
"not": {
|
||||
"items": {
|
||||
"$ref": "#/definitions/tag"
|
||||
}
|
||||
}
|
||||
},
|
||||
"withAdditional": {
|
||||
"additionalProperties": {
|
||||
"items": {
|
||||
"$ref": "#/definitions/tag"
|
||||
}
|
||||
}
|
||||
},
|
||||
"withPattern": {
|
||||
"patternProperties": {
|
||||
"^x-ab": {
|
||||
"items": {
|
||||
"$ref": "#/definitions/tag"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"withAdditionalItems": {
|
||||
"additionalItems": {
|
||||
"items": {
|
||||
"$ref": "#/definitions/tag"
|
||||
}
|
||||
}
|
||||
},
|
||||
"deps": {
|
||||
"dependencies": {
|
||||
"something": {
|
||||
"items": {
|
||||
"$ref": "#/definitions/tag"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"defined": {
|
||||
"definitions": {
|
||||
"something": {
|
||||
"items": {
|
||||
"$ref": "#/definitions/tag"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
18
vendor/github.com/go-openapi/spec/fixtures/local_expansion/item.json
generated
vendored
18
vendor/github.com/go-openapi/spec/fixtures/local_expansion/item.json
generated
vendored
|
@ -1,18 +0,0 @@
|
|||
{
|
||||
"properties": {
|
||||
"id": {
|
||||
"format": "int64",
|
||||
"readOnly": true,
|
||||
"type": "integer"
|
||||
},
|
||||
"title": {
|
||||
"maxLength": 80,
|
||||
"minLength": 2,
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"title"
|
||||
],
|
||||
"type": "object"
|
||||
}
|
46
vendor/github.com/go-openapi/spec/fixtures/local_expansion/spec.json
generated
vendored
46
vendor/github.com/go-openapi/spec/fixtures/local_expansion/spec.json
generated
vendored
|
@ -1,46 +0,0 @@
|
|||
{
|
||||
"basePath": "/v1",
|
||||
"consumes": [
|
||||
"application/json"
|
||||
],
|
||||
"host": "item.api.local",
|
||||
"info": {
|
||||
"description": "Item API",
|
||||
"title": "Item API",
|
||||
"version": "1.0.0"
|
||||
},
|
||||
"paths": {
|
||||
"/item": {
|
||||
"get": {
|
||||
"operationId": "GetItem",
|
||||
"responses": {
|
||||
"200": {
|
||||
"description": "item detail response",
|
||||
"schema": {
|
||||
"$ref": "item.json"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"produces": [
|
||||
"application/json"
|
||||
],
|
||||
"schemes": [
|
||||
"http"
|
||||
],
|
||||
"security": [
|
||||
{
|
||||
"key": []
|
||||
}
|
||||
],
|
||||
"securityDefinitions": {
|
||||
"key": {
|
||||
"in": "header",
|
||||
"name": "x-item-token",
|
||||
"type": "apiKey"
|
||||
}
|
||||
},
|
||||
"swagger": "2.0"
|
||||
}
|
6
vendor/github.com/go-openapi/spec/fixtures/specs/deeper/arrayProp.json
generated
vendored
6
vendor/github.com/go-openapi/spec/fixtures/specs/deeper/arrayProp.json
generated
vendored
|
@ -1,6 +0,0 @@
|
|||
{
|
||||
"type":"array",
|
||||
"items": {
|
||||
"type": "string"
|
||||
}
|
||||
}
|
3
vendor/github.com/go-openapi/spec/fixtures/specs/deeper/stringProp.json
generated
vendored
3
vendor/github.com/go-openapi/spec/fixtures/specs/deeper/stringProp.json
generated
vendored
|
@ -1,3 +0,0 @@
|
|||
{
|
||||
"type": "string"
|
||||
}
|
224
vendor/github.com/go-openapi/spec/fixtures/specs/refed.json
generated
vendored
224
vendor/github.com/go-openapi/spec/fixtures/specs/refed.json
generated
vendored
|
@ -1,224 +0,0 @@
|
|||
{
|
||||
"swagger": "2.0",
|
||||
"info": {
|
||||
"version": "1.0.0",
|
||||
"title": "Swagger Petstore",
|
||||
"description": "A sample API that uses a petstore as an example to demonstrate features in the swagger-2.0 specification",
|
||||
"termsOfService": "http://helloreverb.com/terms/",
|
||||
"contact": {
|
||||
"name": "Wordnik API Team"
|
||||
},
|
||||
"license": {
|
||||
"name": "MIT"
|
||||
}
|
||||
},
|
||||
"host": "petstore.swagger.wordnik.com",
|
||||
"basePath": "/api",
|
||||
"schemes": [
|
||||
"http"
|
||||
],
|
||||
"consumes": [
|
||||
"application/json"
|
||||
],
|
||||
"produces": [
|
||||
"application/json"
|
||||
],
|
||||
"parameters": {
|
||||
"idParam": {
|
||||
"name": "id",
|
||||
"in": "path",
|
||||
"description": "ID of pet to fetch",
|
||||
"required": true,
|
||||
"type": "integer",
|
||||
"format": "int64"
|
||||
}
|
||||
},
|
||||
"responses": {
|
||||
"petResponse": {
|
||||
"description": "pet response",
|
||||
"schema": {
|
||||
"$ref": "#/definitions/pet"
|
||||
}
|
||||
}
|
||||
},
|
||||
"paths": {
|
||||
"/pets": {
|
||||
"get": {
|
||||
"description": "Returns all pets from the system that the user has access to",
|
||||
"operationId": "findPets",
|
||||
"produces": [
|
||||
"application/json",
|
||||
"application/xml",
|
||||
"text/xml",
|
||||
"text/html"
|
||||
],
|
||||
"parameters": [
|
||||
{
|
||||
"name": "tags",
|
||||
"in": "query",
|
||||
"description": "tags to filter by",
|
||||
"required": false,
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string"
|
||||
},
|
||||
"collectionFormat": "csv"
|
||||
},
|
||||
{
|
||||
"name": "limit",
|
||||
"in": "query",
|
||||
"description": "maximum number of results to return",
|
||||
"required": false,
|
||||
"type": "integer",
|
||||
"format": "int32"
|
||||
}
|
||||
],
|
||||
"responses": {
|
||||
"200": {
|
||||
"description": "pet response",
|
||||
"schema": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "#/definitions/pet"
|
||||
}
|
||||
}
|
||||
},
|
||||
"default": {
|
||||
"description": "unexpected error",
|
||||
"schema": {
|
||||
"$ref": "#/definitions/errorModel"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"post": {
|
||||
"description": "Creates a new pet in the store. Duplicates are allowed",
|
||||
"operationId": "addPet",
|
||||
"produces": [
|
||||
"application/json"
|
||||
],
|
||||
"parameters": [
|
||||
{
|
||||
"name": "pet",
|
||||
"in": "body",
|
||||
"description": "Pet to add to the store",
|
||||
"required": true,
|
||||
"schema": {
|
||||
"$ref": "#/definitions/petInput"
|
||||
}
|
||||
}
|
||||
],
|
||||
"responses": {
|
||||
"200": { "$ref": "#/responses/petResponse" },
|
||||
"default": {
|
||||
"description": "unexpected error",
|
||||
"schema": {
|
||||
"$ref": "#/definitions/errorModel"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"/pets/{id}": {
|
||||
"get": {
|
||||
"description": "Returns a user based on a single ID, if the user does not have access to the pet",
|
||||
"operationId": "findPetById",
|
||||
"produces": [
|
||||
"application/json",
|
||||
"application/xml",
|
||||
"text/xml",
|
||||
"text/html"
|
||||
],
|
||||
"parameters": [
|
||||
{
|
||||
"$ref": "#/parameters/idParam"
|
||||
}
|
||||
],
|
||||
"responses": {
|
||||
"200": {
|
||||
"$ref": "#/responses/petResponse"
|
||||
},
|
||||
"default": {
|
||||
"description": "unexpected error",
|
||||
"schema": {
|
||||
"$ref": "#/definitions/errorModel"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"delete": {
|
||||
"description": "deletes a single pet based on the ID supplied",
|
||||
"operationId": "deletePet",
|
||||
"parameters": [
|
||||
{
|
||||
"$ref": "#/parameters/idParam"
|
||||
}
|
||||
],
|
||||
"responses": {
|
||||
"204": {
|
||||
"description": "pet deleted"
|
||||
},
|
||||
"default": {
|
||||
"description": "unexpected error",
|
||||
"schema": {
|
||||
"$ref": "#/definitions/errorModel"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"definitions": {
|
||||
"pet": {
|
||||
"required": [
|
||||
"id",
|
||||
"name"
|
||||
],
|
||||
"properties": {
|
||||
"id": {
|
||||
"type": "integer",
|
||||
"format": "int64"
|
||||
},
|
||||
"name": {
|
||||
"type": "string"
|
||||
},
|
||||
"tag": {
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
},
|
||||
"petInput": {
|
||||
"allOf": [
|
||||
{
|
||||
"$ref": "pet"
|
||||
},
|
||||
{
|
||||
"required": [
|
||||
"name"
|
||||
],
|
||||
"properties": {
|
||||
"id": {
|
||||
"type": "integer",
|
||||
"format": "int64"
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"errorModel": {
|
||||
"required": [
|
||||
"code",
|
||||
"message"
|
||||
],
|
||||
"properties": {
|
||||
"code": {
|
||||
"type": "integer",
|
||||
"format": "int32"
|
||||
},
|
||||
"message": {
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
14
vendor/github.com/go-openapi/spec/fixtures/specs/resolution.json
generated
vendored
14
vendor/github.com/go-openapi/spec/fixtures/specs/resolution.json
generated
vendored
|
@ -1,14 +0,0 @@
|
|||
{
|
||||
"id": "http://localhost:1234",
|
||||
"items": {
|
||||
"id": "deeper/",
|
||||
"items": {
|
||||
"$ref": "stringProp.json"
|
||||
}
|
||||
},
|
||||
"definitions": {
|
||||
"bool": {
|
||||
"$ref": "boolProp.json"
|
||||
}
|
||||
}
|
||||
}
|
9
vendor/github.com/go-openapi/spec/fixtures/specs/resolution2.json
generated
vendored
9
vendor/github.com/go-openapi/spec/fixtures/specs/resolution2.json
generated
vendored
|
@ -1,9 +0,0 @@
|
|||
{
|
||||
"id": "http://localhost:1234",
|
||||
"items": {
|
||||
"id": "deeper/",
|
||||
"items": {
|
||||
"$ref": "arrayProp.json#/items"
|
||||
}
|
||||
}
|
||||
}
|
90
vendor/github.com/go-openapi/spec/header_test.go
generated
vendored
90
vendor/github.com/go-openapi/spec/header_test.go
generated
vendored
|
@ -1,90 +0,0 @@
|
|||
// Copyright 2015 go-swagger maintainers
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
package spec
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"testing"
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
)
|
||||
|
||||
func float64Ptr(f float64) *float64 {
|
||||
return &f
|
||||
}
|
||||
func int64Ptr(f int64) *int64 {
|
||||
return &f
|
||||
}
|
||||
|
||||
var header = Header{
|
||||
VendorExtensible: VendorExtensible{Extensions: map[string]interface{}{
|
||||
"x-framework": "swagger-go",
|
||||
}},
|
||||
HeaderProps: HeaderProps{Description: "the description of this header"},
|
||||
SimpleSchema: SimpleSchema{
|
||||
Items: &Items{
|
||||
Refable: Refable{Ref: MustCreateRef("Cat")},
|
||||
},
|
||||
Type: "string",
|
||||
Format: "date",
|
||||
Default: "8",
|
||||
},
|
||||
CommonValidations: CommonValidations{
|
||||
Maximum: float64Ptr(100),
|
||||
ExclusiveMaximum: true,
|
||||
ExclusiveMinimum: true,
|
||||
Minimum: float64Ptr(5),
|
||||
MaxLength: int64Ptr(100),
|
||||
MinLength: int64Ptr(5),
|
||||
Pattern: "\\w{1,5}\\w+",
|
||||
MaxItems: int64Ptr(100),
|
||||
MinItems: int64Ptr(5),
|
||||
UniqueItems: true,
|
||||
MultipleOf: float64Ptr(5),
|
||||
Enum: []interface{}{"hello", "world"},
|
||||
},
|
||||
}
|
||||
|
||||
var headerJSON = `{
|
||||
"items": {
|
||||
"$ref": "Cat"
|
||||
},
|
||||
"x-framework": "swagger-go",
|
||||
"description": "the description of this header",
|
||||
"maximum": 100,
|
||||
"minimum": 5,
|
||||
"exclusiveMaximum": true,
|
||||
"exclusiveMinimum": true,
|
||||
"maxLength": 100,
|
||||
"minLength": 5,
|
||||
"pattern": "\\w{1,5}\\w+",
|
||||
"maxItems": 100,
|
||||
"minItems": 5,
|
||||
"uniqueItems": true,
|
||||
"multipleOf": 5,
|
||||
"enum": ["hello", "world"],
|
||||
"type": "string",
|
||||
"format": "date",
|
||||
"default": "8"
|
||||
}`
|
||||
|
||||
func TestIntegrationHeader(t *testing.T) {
|
||||
var actual Header
|
||||
if assert.NoError(t, json.Unmarshal([]byte(headerJSON), &actual)) {
|
||||
assert.EqualValues(t, actual, header)
|
||||
}
|
||||
|
||||
assertParsesJSON(t, headerJSON, header)
|
||||
}
|
65
vendor/github.com/go-openapi/spec/info_test.go
generated
vendored
65
vendor/github.com/go-openapi/spec/info_test.go
generated
vendored
|
@ -1,65 +0,0 @@
|
|||
// Copyright 2015 go-swagger maintainers
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
package spec
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"testing"
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
)
|
||||
|
||||
var infoJSON = `{
|
||||
"description": "A sample API that uses a petstore as an example to demonstrate features in the swagger-2.0 specification",
|
||||
"title": "Swagger Sample API",
|
||||
"termsOfService": "http://helloreverb.com/terms/",
|
||||
"contact": {
|
||||
"name": "wordnik api team",
|
||||
"url": "http://developer.wordnik.com"
|
||||
},
|
||||
"license": {
|
||||
"name": "Creative Commons 4.0 International",
|
||||
"url": "http://creativecommons.org/licenses/by/4.0/"
|
||||
},
|
||||
"version": "1.0.9-abcd",
|
||||
"x-framework": "go-swagger"
|
||||
}`
|
||||
|
||||
var info = Info{
|
||||
InfoProps: InfoProps{
|
||||
Version: "1.0.9-abcd",
|
||||
Title: "Swagger Sample API",
|
||||
Description: "A sample API that uses a petstore as an example to demonstrate features in the swagger-2.0 specification",
|
||||
TermsOfService: "http://helloreverb.com/terms/",
|
||||
Contact: &ContactInfo{Name: "wordnik api team", URL: "http://developer.wordnik.com"},
|
||||
License: &License{Name: "Creative Commons 4.0 International", URL: "http://creativecommons.org/licenses/by/4.0/"},
|
||||
},
|
||||
VendorExtensible: VendorExtensible{map[string]interface{}{"x-framework": "go-swagger"}},
|
||||
}
|
||||
|
||||
func TestIntegrationInfo_Serialize(t *testing.T) {
|
||||
b, err := json.MarshalIndent(info, "", "\t")
|
||||
if assert.NoError(t, err) {
|
||||
assert.Equal(t, infoJSON, string(b))
|
||||
}
|
||||
}
|
||||
|
||||
func TestIntegrationInfo_Deserialize(t *testing.T) {
|
||||
actual := Info{}
|
||||
err := json.Unmarshal([]byte(infoJSON), &actual)
|
||||
if assert.NoError(t, err) {
|
||||
assert.EqualValues(t, info, actual)
|
||||
}
|
||||
}
|
81
vendor/github.com/go-openapi/spec/items_test.go
generated
vendored
81
vendor/github.com/go-openapi/spec/items_test.go
generated
vendored
|
@ -1,81 +0,0 @@
|
|||
// Copyright 2015 go-swagger maintainers
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
package spec
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"testing"
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
)
|
||||
|
||||
var items = Items{
|
||||
Refable: Refable{Ref: MustCreateRef("Dog")},
|
||||
CommonValidations: CommonValidations{
|
||||
Maximum: float64Ptr(100),
|
||||
ExclusiveMaximum: true,
|
||||
ExclusiveMinimum: true,
|
||||
Minimum: float64Ptr(5),
|
||||
MaxLength: int64Ptr(100),
|
||||
MinLength: int64Ptr(5),
|
||||
Pattern: "\\w{1,5}\\w+",
|
||||
MaxItems: int64Ptr(100),
|
||||
MinItems: int64Ptr(5),
|
||||
UniqueItems: true,
|
||||
MultipleOf: float64Ptr(5),
|
||||
Enum: []interface{}{"hello", "world"},
|
||||
},
|
||||
SimpleSchema: SimpleSchema{
|
||||
Type: "string",
|
||||
Format: "date",
|
||||
Items: &Items{
|
||||
Refable: Refable{Ref: MustCreateRef("Cat")},
|
||||
},
|
||||
CollectionFormat: "csv",
|
||||
Default: "8",
|
||||
},
|
||||
}
|
||||
|
||||
var itemsJSON = `{
|
||||
"items": {
|
||||
"$ref": "Cat"
|
||||
},
|
||||
"$ref": "Dog",
|
||||
"maximum": 100,
|
||||
"minimum": 5,
|
||||
"exclusiveMaximum": true,
|
||||
"exclusiveMinimum": true,
|
||||
"maxLength": 100,
|
||||
"minLength": 5,
|
||||
"pattern": "\\w{1,5}\\w+",
|
||||
"maxItems": 100,
|
||||
"minItems": 5,
|
||||
"uniqueItems": true,
|
||||
"multipleOf": 5,
|
||||
"enum": ["hello", "world"],
|
||||
"type": "string",
|
||||
"format": "date",
|
||||
"collectionFormat": "csv",
|
||||
"default": "8"
|
||||
}`
|
||||
|
||||
func TestIntegrationItems(t *testing.T) {
|
||||
var actual Items
|
||||
if assert.NoError(t, json.Unmarshal([]byte(itemsJSON), &actual)) {
|
||||
assert.EqualValues(t, actual, items)
|
||||
}
|
||||
|
||||
assertParsesJSON(t, itemsJSON, items)
|
||||
}
|
28
vendor/github.com/go-openapi/spec/license_test.go
generated
vendored
28
vendor/github.com/go-openapi/spec/license_test.go
generated
vendored
|
@ -1,28 +0,0 @@
|
|||
// Copyright 2015 go-swagger maintainers
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
package spec
|
||||
|
||||
import "testing"
|
||||
|
||||
func TestIntegrationLicense(t *testing.T) {
|
||||
license := License{"the name", "the url"}
|
||||
const licenseJSON = `{"name":"the name","url":"the url"}`
|
||||
const licenseYAML = "name: the name\nurl: the url\n"
|
||||
|
||||
assertSerializeJSON(t, license, licenseJSON)
|
||||
assertSerializeYAML(t, license, licenseYAML)
|
||||
assertParsesJSON(t, licenseJSON, license)
|
||||
assertParsesYAML(t, licenseYAML, license)
|
||||
}
|
85
vendor/github.com/go-openapi/spec/operation_test.go
generated
vendored
85
vendor/github.com/go-openapi/spec/operation_test.go
generated
vendored
|
@ -1,85 +0,0 @@
|
|||
// Copyright 2015 go-swagger maintainers
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
package spec
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"testing"
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
)
|
||||
|
||||
var operation = Operation{
|
||||
VendorExtensible: VendorExtensible{
|
||||
Extensions: map[string]interface{}{
|
||||
"x-framework": "go-swagger",
|
||||
},
|
||||
},
|
||||
OperationProps: OperationProps{
|
||||
Description: "operation description",
|
||||
Consumes: []string{"application/json", "application/x-yaml"},
|
||||
Produces: []string{"application/json", "application/x-yaml"},
|
||||
Schemes: []string{"http", "https"},
|
||||
Tags: []string{"dogs"},
|
||||
Summary: "the summary of the operation",
|
||||
ID: "sendCat",
|
||||
Deprecated: true,
|
||||
Security: []map[string][]string{
|
||||
map[string][]string{
|
||||
"apiKey": []string{},
|
||||
},
|
||||
},
|
||||
Parameters: []Parameter{
|
||||
Parameter{Refable: Refable{Ref: MustCreateRef("Cat")}},
|
||||
},
|
||||
Responses: &Responses{
|
||||
ResponsesProps: ResponsesProps{
|
||||
Default: &Response{
|
||||
ResponseProps: ResponseProps{
|
||||
Description: "void response",
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
var operationJSON = `{
|
||||
"description": "operation description",
|
||||
"x-framework": "go-swagger",
|
||||
"consumes": [ "application/json", "application/x-yaml" ],
|
||||
"produces": [ "application/json", "application/x-yaml" ],
|
||||
"schemes": ["http", "https"],
|
||||
"tags": ["dogs"],
|
||||
"summary": "the summary of the operation",
|
||||
"operationId": "sendCat",
|
||||
"deprecated": true,
|
||||
"security": [ { "apiKey": [] } ],
|
||||
"parameters": [{"$ref":"Cat"}],
|
||||
"responses": {
|
||||
"default": {
|
||||
"description": "void response"
|
||||
}
|
||||
}
|
||||
}`
|
||||
|
||||
func TestIntegrationOperation(t *testing.T) {
|
||||
var actual Operation
|
||||
if assert.NoError(t, json.Unmarshal([]byte(operationJSON), &actual)) {
|
||||
assert.EqualValues(t, actual, operation)
|
||||
}
|
||||
|
||||
assertParsesJSON(t, operationJSON, operation)
|
||||
}
|
156
vendor/github.com/go-openapi/spec/parameters_test.go
generated
vendored
156
vendor/github.com/go-openapi/spec/parameters_test.go
generated
vendored
|
@ -1,156 +0,0 @@
|
|||
// Copyright 2015 go-swagger maintainers
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
package spec
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"testing"
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
)
|
||||
|
||||
var parameter = Parameter{
|
||||
VendorExtensible: VendorExtensible{Extensions: map[string]interface{}{
|
||||
"x-framework": "swagger-go",
|
||||
}},
|
||||
Refable: Refable{Ref: MustCreateRef("Dog")},
|
||||
CommonValidations: CommonValidations{
|
||||
Maximum: float64Ptr(100),
|
||||
ExclusiveMaximum: true,
|
||||
ExclusiveMinimum: true,
|
||||
Minimum: float64Ptr(5),
|
||||
MaxLength: int64Ptr(100),
|
||||
MinLength: int64Ptr(5),
|
||||
Pattern: "\\w{1,5}\\w+",
|
||||
MaxItems: int64Ptr(100),
|
||||
MinItems: int64Ptr(5),
|
||||
UniqueItems: true,
|
||||
MultipleOf: float64Ptr(5),
|
||||
Enum: []interface{}{"hello", "world"},
|
||||
},
|
||||
SimpleSchema: SimpleSchema{
|
||||
Type: "string",
|
||||
Format: "date",
|
||||
CollectionFormat: "csv",
|
||||
Items: &Items{
|
||||
Refable: Refable{Ref: MustCreateRef("Cat")},
|
||||
},
|
||||
Default: "8",
|
||||
},
|
||||
ParamProps: ParamProps{
|
||||
Name: "param-name",
|
||||
In: "header",
|
||||
Required: true,
|
||||
Schema: &Schema{SchemaProps: SchemaProps{Type: []string{"string"}}},
|
||||
Description: "the description of this parameter",
|
||||
},
|
||||
}
|
||||
|
||||
var parameterJSON = `{
|
||||
"items": {
|
||||
"$ref": "Cat"
|
||||
},
|
||||
"x-framework": "swagger-go",
|
||||
"$ref": "Dog",
|
||||
"description": "the description of this parameter",
|
||||
"maximum": 100,
|
||||
"minimum": 5,
|
||||
"exclusiveMaximum": true,
|
||||
"exclusiveMinimum": true,
|
||||
"maxLength": 100,
|
||||
"minLength": 5,
|
||||
"pattern": "\\w{1,5}\\w+",
|
||||
"maxItems": 100,
|
||||
"minItems": 5,
|
||||
"uniqueItems": true,
|
||||
"multipleOf": 5,
|
||||
"enum": ["hello", "world"],
|
||||
"type": "string",
|
||||
"format": "date",
|
||||
"name": "param-name",
|
||||
"in": "header",
|
||||
"required": true,
|
||||
"schema": {
|
||||
"type": "string"
|
||||
},
|
||||
"collectionFormat": "csv",
|
||||
"default": "8"
|
||||
}`
|
||||
|
||||
func TestIntegrationParameter(t *testing.T) {
|
||||
var actual Parameter
|
||||
if assert.NoError(t, json.Unmarshal([]byte(parameterJSON), &actual)) {
|
||||
assert.EqualValues(t, actual, parameter)
|
||||
}
|
||||
|
||||
assertParsesJSON(t, parameterJSON, parameter)
|
||||
}
|
||||
|
||||
func TestParameterSerialization(t *testing.T) {
|
||||
items := &Items{
|
||||
SimpleSchema: SimpleSchema{Type: "string"},
|
||||
}
|
||||
|
||||
intItems := &Items{
|
||||
SimpleSchema: SimpleSchema{Type: "int", Format: "int32"},
|
||||
}
|
||||
|
||||
assertSerializeJSON(t, QueryParam("").Typed("string", ""), `{"type":"string","in":"query"}`)
|
||||
|
||||
assertSerializeJSON(t,
|
||||
QueryParam("").CollectionOf(items, "multi"),
|
||||
`{"type":"array","items":{"type":"string"},"collectionFormat":"multi","in":"query"}`)
|
||||
|
||||
assertSerializeJSON(t, PathParam("").Typed("string", ""), `{"type":"string","in":"path","required":true}`)
|
||||
|
||||
assertSerializeJSON(t,
|
||||
PathParam("").CollectionOf(items, "multi"),
|
||||
`{"type":"array","items":{"type":"string"},"collectionFormat":"multi","in":"path","required":true}`)
|
||||
|
||||
assertSerializeJSON(t,
|
||||
PathParam("").CollectionOf(intItems, "multi"),
|
||||
`{"type":"array","items":{"type":"int","format":"int32"},"collectionFormat":"multi","in":"path","required":true}`)
|
||||
|
||||
assertSerializeJSON(t, HeaderParam("").Typed("string", ""), `{"type":"string","in":"header","required":true}`)
|
||||
|
||||
assertSerializeJSON(t,
|
||||
HeaderParam("").CollectionOf(items, "multi"),
|
||||
`{"type":"array","items":{"type":"string"},"collectionFormat":"multi","in":"header","required":true}`)
|
||||
schema := &Schema{SchemaProps: SchemaProps{
|
||||
Properties: map[string]Schema{
|
||||
"name": Schema{SchemaProps: SchemaProps{
|
||||
Type: []string{"string"},
|
||||
}},
|
||||
},
|
||||
}}
|
||||
|
||||
refSchema := &Schema{
|
||||
SchemaProps: SchemaProps{Ref: MustCreateRef("Cat")},
|
||||
}
|
||||
|
||||
assertSerializeJSON(t,
|
||||
BodyParam("", schema),
|
||||
`{"type":"object","in":"body","schema":{"properties":{"name":{"type":"string"}}}}`)
|
||||
|
||||
assertSerializeJSON(t,
|
||||
BodyParam("", refSchema),
|
||||
`{"type":"object","in":"body","schema":{"$ref":"Cat"}}`)
|
||||
|
||||
// array body param
|
||||
assertSerializeJSON(t,
|
||||
BodyParam("", ArrayProperty(RefProperty("Cat"))),
|
||||
`{"type":"object","in":"body","schema":{"type":"array","items":{"$ref":"Cat"}}}`)
|
||||
|
||||
}
|
81
vendor/github.com/go-openapi/spec/path_item_test.go
generated
vendored
81
vendor/github.com/go-openapi/spec/path_item_test.go
generated
vendored
|
@ -1,81 +0,0 @@
|
|||
// Copyright 2015 go-swagger maintainers
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
package spec
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"testing"
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
)
|
||||
|
||||
var pathItem = PathItem{
|
||||
Refable: Refable{Ref: MustCreateRef("Dog")},
|
||||
VendorExtensible: VendorExtensible{
|
||||
Extensions: map[string]interface{}{
|
||||
"x-framework": "go-swagger",
|
||||
},
|
||||
},
|
||||
PathItemProps: PathItemProps{
|
||||
Get: &Operation{
|
||||
OperationProps: OperationProps{Description: "get operation description"},
|
||||
},
|
||||
Put: &Operation{
|
||||
OperationProps: OperationProps{Description: "put operation description"},
|
||||
},
|
||||
Post: &Operation{
|
||||
OperationProps: OperationProps{Description: "post operation description"},
|
||||
},
|
||||
Delete: &Operation{
|
||||
OperationProps: OperationProps{Description: "delete operation description"},
|
||||
},
|
||||
Options: &Operation{
|
||||
OperationProps: OperationProps{Description: "options operation description"},
|
||||
},
|
||||
Head: &Operation{
|
||||
OperationProps: OperationProps{Description: "head operation description"},
|
||||
},
|
||||
Patch: &Operation{
|
||||
OperationProps: OperationProps{Description: "patch operation description"},
|
||||
},
|
||||
Parameters: []Parameter{
|
||||
Parameter{
|
||||
ParamProps: ParamProps{In: "path"},
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
var pathItemJSON = `{
|
||||
"$ref": "Dog",
|
||||
"x-framework": "go-swagger",
|
||||
"get": { "description": "get operation description" },
|
||||
"put": { "description": "put operation description" },
|
||||
"post": { "description": "post operation description" },
|
||||
"delete": { "description": "delete operation description" },
|
||||
"options": { "description": "options operation description" },
|
||||
"head": { "description": "head operation description" },
|
||||
"patch": { "description": "patch operation description" },
|
||||
"parameters": [{"in":"path"}]
|
||||
}`
|
||||
|
||||
func TestIntegrationPathItem(t *testing.T) {
|
||||
var actual PathItem
|
||||
if assert.NoError(t, json.Unmarshal([]byte(pathItemJSON), &actual)) {
|
||||
assert.EqualValues(t, actual, pathItem)
|
||||
}
|
||||
|
||||
assertParsesJSON(t, pathItemJSON, pathItem)
|
||||
}
|
43
vendor/github.com/go-openapi/spec/paths_test.go
generated
vendored
43
vendor/github.com/go-openapi/spec/paths_test.go
generated
vendored
|
@ -1,43 +0,0 @@
|
|||
// Copyright 2015 go-swagger maintainers
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
package spec
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"testing"
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
)
|
||||
|
||||
var paths = Paths{
|
||||
VendorExtensible: VendorExtensible{Extensions: map[string]interface{}{"x-framework": "go-swagger"}},
|
||||
Paths: map[string]PathItem{
|
||||
"/": PathItem{
|
||||
Refable: Refable{Ref: MustCreateRef("cats")},
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
var pathsJSON = `{"x-framework":"go-swagger","/":{"$ref":"cats"}}`
|
||||
|
||||
func TestIntegrationPaths(t *testing.T) {
|
||||
var actual Paths
|
||||
if assert.NoError(t, json.Unmarshal([]byte(pathsJSON), &actual)) {
|
||||
assert.EqualValues(t, actual, paths)
|
||||
}
|
||||
|
||||
assertParsesJSON(t, pathsJSON, paths)
|
||||
|
||||
}
|
58
vendor/github.com/go-openapi/spec/properties_test.go
generated
vendored
58
vendor/github.com/go-openapi/spec/properties_test.go
generated
vendored
|
@ -1,58 +0,0 @@
|
|||
// Copyright 2015 go-swagger maintainers
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
package spec
|
||||
|
||||
import (
|
||||
"testing"
|
||||
)
|
||||
|
||||
func TestPropertySerialization(t *testing.T) {
|
||||
strProp := StringProperty()
|
||||
strProp.Enum = append(strProp.Enum, "a", "b")
|
||||
|
||||
prop := &Schema{SchemaProps: SchemaProps{
|
||||
Items: &SchemaOrArray{Schemas: []Schema{
|
||||
Schema{SchemaProps: SchemaProps{Type: []string{"string"}}},
|
||||
Schema{SchemaProps: SchemaProps{Type: []string{"string"}}},
|
||||
}},
|
||||
}}
|
||||
|
||||
var propSerData = []struct {
|
||||
Schema *Schema
|
||||
JSON string
|
||||
}{
|
||||
{BooleanProperty(), `{"type":"boolean"}`},
|
||||
{DateProperty(), `{"type":"string","format":"date"}`},
|
||||
{DateTimeProperty(), `{"type":"string","format":"date-time"}`},
|
||||
{Float64Property(), `{"type":"number","format":"double"}`},
|
||||
{Float32Property(), `{"type":"number","format":"float"}`},
|
||||
{Int32Property(), `{"type":"integer","format":"int32"}`},
|
||||
{Int64Property(), `{"type":"integer","format":"int64"}`},
|
||||
{MapProperty(StringProperty()), `{"type":"object","additionalProperties":{"type":"string"}}`},
|
||||
{MapProperty(Int32Property()), `{"type":"object","additionalProperties":{"type":"integer","format":"int32"}}`},
|
||||
{RefProperty("Dog"), `{"$ref":"Dog"}`},
|
||||
{StringProperty(), `{"type":"string"}`},
|
||||
{strProp, `{"type":"string","enum":["a","b"]}`},
|
||||
{ArrayProperty(StringProperty()), `{"type":"array","items":{"type":"string"}}`},
|
||||
{prop, `{"items":[{"type":"string"},{"type":"string"}]}`},
|
||||
}
|
||||
|
||||
for _, v := range propSerData {
|
||||
t.Log("roundtripping for", v.JSON)
|
||||
assertSerializeJSON(t, v.Schema, v.JSON)
|
||||
assertParsesJSON(t, v.JSON, v.Schema)
|
||||
}
|
||||
|
||||
}
|
53
vendor/github.com/go-openapi/spec/response_test.go
generated
vendored
53
vendor/github.com/go-openapi/spec/response_test.go
generated
vendored
|
@ -1,53 +0,0 @@
|
|||
// Copyright 2017 go-swagger maintainers
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
package spec
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"testing"
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
)
|
||||
|
||||
var response = Response{
|
||||
Refable: Refable{Ref: MustCreateRef("Dog")},
|
||||
VendorExtensible: VendorExtensible{
|
||||
Extensions: map[string]interface{}{
|
||||
"x-go-name": "PutDogExists",
|
||||
},
|
||||
},
|
||||
ResponseProps: ResponseProps{
|
||||
Description: "Dog exists",
|
||||
Schema: &Schema{SchemaProps: SchemaProps{Type: []string{"string"}}},
|
||||
},
|
||||
}
|
||||
|
||||
var responseJSON = `{
|
||||
"$ref": "Dog",
|
||||
"x-go-name": "PutDogExists",
|
||||
"description": "Dog exists",
|
||||
"schema": {
|
||||
"type": "string"
|
||||
}
|
||||
}`
|
||||
|
||||
func TestIntegrationResponse(t *testing.T) {
|
||||
var actual Response
|
||||
if assert.NoError(t, json.Unmarshal([]byte(responseJSON), &actual)) {
|
||||
assert.EqualValues(t, actual, response)
|
||||
}
|
||||
|
||||
assertParsesJSON(t, responseJSON, response)
|
||||
}
|
205
vendor/github.com/go-openapi/spec/schema_test.go
generated
vendored
205
vendor/github.com/go-openapi/spec/schema_test.go
generated
vendored
|
@ -1,205 +0,0 @@
|
|||
// Copyright 2015 go-swagger maintainers
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
package spec
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"testing"
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
)
|
||||
|
||||
var schema = Schema{
|
||||
VendorExtensible: VendorExtensible{Extensions: map[string]interface{}{"x-framework": "go-swagger"}},
|
||||
SchemaProps: SchemaProps{
|
||||
Ref: MustCreateRef("Cat"),
|
||||
Type: []string{"string"},
|
||||
Format: "date",
|
||||
Description: "the description of this schema",
|
||||
Title: "the title",
|
||||
Default: "blah",
|
||||
Maximum: float64Ptr(100),
|
||||
ExclusiveMaximum: true,
|
||||
ExclusiveMinimum: true,
|
||||
Minimum: float64Ptr(5),
|
||||
MaxLength: int64Ptr(100),
|
||||
MinLength: int64Ptr(5),
|
||||
Pattern: "\\w{1,5}\\w+",
|
||||
MaxItems: int64Ptr(100),
|
||||
MinItems: int64Ptr(5),
|
||||
UniqueItems: true,
|
||||
MultipleOf: float64Ptr(5),
|
||||
Enum: []interface{}{"hello", "world"},
|
||||
MaxProperties: int64Ptr(5),
|
||||
MinProperties: int64Ptr(1),
|
||||
Required: []string{"id", "name"},
|
||||
Items: &SchemaOrArray{Schema: &Schema{SchemaProps: SchemaProps{Type: []string{"string"}}}},
|
||||
AllOf: []Schema{Schema{SchemaProps: SchemaProps{Type: []string{"string"}}}},
|
||||
Properties: map[string]Schema{
|
||||
"id": Schema{SchemaProps: SchemaProps{Type: []string{"integer"}, Format: "int64"}},
|
||||
"name": Schema{SchemaProps: SchemaProps{Type: []string{"string"}}},
|
||||
},
|
||||
AdditionalProperties: &SchemaOrBool{Allows: true, Schema: &Schema{SchemaProps: SchemaProps{
|
||||
Type: []string{"integer"},
|
||||
Format: "int32",
|
||||
}}},
|
||||
},
|
||||
SwaggerSchemaProps: SwaggerSchemaProps{
|
||||
Discriminator: "not this",
|
||||
ReadOnly: true,
|
||||
XML: &XMLObject{"sch", "io", "sw", true, true},
|
||||
ExternalDocs: &ExternalDocumentation{
|
||||
Description: "the documentation etc",
|
||||
URL: "http://readthedocs.org/swagger",
|
||||
},
|
||||
Example: []interface{}{
|
||||
map[string]interface{}{
|
||||
"id": 1,
|
||||
"name": "a book",
|
||||
},
|
||||
map[string]interface{}{
|
||||
"id": 2,
|
||||
"name": "the thing",
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
var schemaJSON = `{
|
||||
"x-framework": "go-swagger",
|
||||
"$ref": "Cat",
|
||||
"description": "the description of this schema",
|
||||
"maximum": 100,
|
||||
"minimum": 5,
|
||||
"exclusiveMaximum": true,
|
||||
"exclusiveMinimum": true,
|
||||
"maxLength": 100,
|
||||
"minLength": 5,
|
||||
"pattern": "\\w{1,5}\\w+",
|
||||
"maxItems": 100,
|
||||
"minItems": 5,
|
||||
"uniqueItems": true,
|
||||
"multipleOf": 5,
|
||||
"enum": ["hello", "world"],
|
||||
"type": "string",
|
||||
"format": "date",
|
||||
"title": "the title",
|
||||
"default": "blah",
|
||||
"maxProperties": 5,
|
||||
"minProperties": 1,
|
||||
"required": ["id", "name"],
|
||||
"items": {
|
||||
"type": "string"
|
||||
},
|
||||
"allOf": [
|
||||
{
|
||||
"type": "string"
|
||||
}
|
||||
],
|
||||
"properties": {
|
||||
"id": {
|
||||
"type": "integer",
|
||||
"format": "int64"
|
||||
},
|
||||
"name": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"discriminator": "not this",
|
||||
"readOnly": true,
|
||||
"xml": {
|
||||
"name": "sch",
|
||||
"namespace": "io",
|
||||
"prefix": "sw",
|
||||
"wrapped": true,
|
||||
"attribute": true
|
||||
},
|
||||
"externalDocs": {
|
||||
"description": "the documentation etc",
|
||||
"url": "http://readthedocs.org/swagger"
|
||||
},
|
||||
"example": [
|
||||
{
|
||||
"id": 1,
|
||||
"name": "a book"
|
||||
},
|
||||
{
|
||||
"id": 2,
|
||||
"name": "the thing"
|
||||
}
|
||||
],
|
||||
"additionalProperties": {
|
||||
"type": "integer",
|
||||
"format": "int32"
|
||||
}
|
||||
}
|
||||
`
|
||||
|
||||
func TestSchema(t *testing.T) {
|
||||
|
||||
expected := map[string]interface{}{}
|
||||
json.Unmarshal([]byte(schemaJSON), &expected)
|
||||
b, err := json.Marshal(schema)
|
||||
if assert.NoError(t, err) {
|
||||
var actual map[string]interface{}
|
||||
json.Unmarshal(b, &actual)
|
||||
assert.Equal(t, expected, actual)
|
||||
}
|
||||
|
||||
actual2 := Schema{}
|
||||
if assert.NoError(t, json.Unmarshal([]byte(schemaJSON), &actual2)) {
|
||||
assert.Equal(t, schema.Ref, actual2.Ref)
|
||||
assert.Equal(t, schema.Description, actual2.Description)
|
||||
assert.Equal(t, schema.Maximum, actual2.Maximum)
|
||||
assert.Equal(t, schema.Minimum, actual2.Minimum)
|
||||
assert.Equal(t, schema.ExclusiveMinimum, actual2.ExclusiveMinimum)
|
||||
assert.Equal(t, schema.ExclusiveMaximum, actual2.ExclusiveMaximum)
|
||||
assert.Equal(t, schema.MaxLength, actual2.MaxLength)
|
||||
assert.Equal(t, schema.MinLength, actual2.MinLength)
|
||||
assert.Equal(t, schema.Pattern, actual2.Pattern)
|
||||
assert.Equal(t, schema.MaxItems, actual2.MaxItems)
|
||||
assert.Equal(t, schema.MinItems, actual2.MinItems)
|
||||
assert.True(t, actual2.UniqueItems)
|
||||
assert.Equal(t, schema.MultipleOf, actual2.MultipleOf)
|
||||
assert.Equal(t, schema.Enum, actual2.Enum)
|
||||
assert.Equal(t, schema.Type, actual2.Type)
|
||||
assert.Equal(t, schema.Format, actual2.Format)
|
||||
assert.Equal(t, schema.Title, actual2.Title)
|
||||
assert.Equal(t, schema.MaxProperties, actual2.MaxProperties)
|
||||
assert.Equal(t, schema.MinProperties, actual2.MinProperties)
|
||||
assert.Equal(t, schema.Required, actual2.Required)
|
||||
assert.Equal(t, schema.Items, actual2.Items)
|
||||
assert.Equal(t, schema.AllOf, actual2.AllOf)
|
||||
assert.Equal(t, schema.Properties, actual2.Properties)
|
||||
assert.Equal(t, schema.Discriminator, actual2.Discriminator)
|
||||
assert.Equal(t, schema.ReadOnly, actual2.ReadOnly)
|
||||
assert.Equal(t, schema.XML, actual2.XML)
|
||||
assert.Equal(t, schema.ExternalDocs, actual2.ExternalDocs)
|
||||
assert.Equal(t, schema.AdditionalProperties, actual2.AdditionalProperties)
|
||||
assert.Equal(t, schema.Extensions, actual2.Extensions)
|
||||
examples := actual2.Example.([]interface{})
|
||||
expEx := schema.Example.([]interface{})
|
||||
ex1 := examples[0].(map[string]interface{})
|
||||
ex2 := examples[1].(map[string]interface{})
|
||||
exp1 := expEx[0].(map[string]interface{})
|
||||
exp2 := expEx[1].(map[string]interface{})
|
||||
|
||||
assert.EqualValues(t, exp1["id"], ex1["id"])
|
||||
assert.Equal(t, exp1["name"], ex1["name"])
|
||||
assert.EqualValues(t, exp2["id"], ex2["id"])
|
||||
assert.Equal(t, exp2["name"], ex2["name"])
|
||||
}
|
||||
|
||||
}
|
150
vendor/github.com/go-openapi/spec/schemas/jsonschema-draft-04.json
generated
vendored
150
vendor/github.com/go-openapi/spec/schemas/jsonschema-draft-04.json
generated
vendored
|
@ -1,150 +0,0 @@
|
|||
{
|
||||
"id": "http://json-schema.org/draft-04/schema#",
|
||||
"$schema": "http://json-schema.org/draft-04/schema#",
|
||||
"description": "Core schema meta-schema",
|
||||
"definitions": {
|
||||
"schemaArray": {
|
||||
"type": "array",
|
||||
"minItems": 1,
|
||||
"items": { "$ref": "#" }
|
||||
},
|
||||
"positiveInteger": {
|
||||
"type": "integer",
|
||||
"minimum": 0
|
||||
},
|
||||
"positiveIntegerDefault0": {
|
||||
"allOf": [ { "$ref": "#/definitions/positiveInteger" }, { "default": 0 } ]
|
||||
},
|
||||
"simpleTypes": {
|
||||
"enum": [ "array", "boolean", "integer", "null", "number", "object", "string" ]
|
||||
},
|
||||
"stringArray": {
|
||||
"type": "array",
|
||||
"items": { "type": "string" },
|
||||
"minItems": 1,
|
||||
"uniqueItems": true
|
||||
}
|
||||
},
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"id": {
|
||||
"type": "string",
|
||||
"format": "uri"
|
||||
},
|
||||
"$schema": {
|
||||
"type": "string",
|
||||
"format": "uri"
|
||||
},
|
||||
"title": {
|
||||
"type": "string"
|
||||
},
|
||||
"description": {
|
||||
"type": "string"
|
||||
},
|
||||
"default": {},
|
||||
"multipleOf": {
|
||||
"type": "number",
|
||||
"minimum": 0,
|
||||
"exclusiveMinimum": true
|
||||
},
|
||||
"maximum": {
|
||||
"type": "number"
|
||||
},
|
||||
"exclusiveMaximum": {
|
||||
"type": "boolean",
|
||||
"default": false
|
||||
},
|
||||
"minimum": {
|
||||
"type": "number"
|
||||
},
|
||||
"exclusiveMinimum": {
|
||||
"type": "boolean",
|
||||
"default": false
|
||||
},
|
||||
"maxLength": { "$ref": "#/definitions/positiveInteger" },
|
||||
"minLength": { "$ref": "#/definitions/positiveIntegerDefault0" },
|
||||
"pattern": {
|
||||
"type": "string",
|
||||
"format": "regex"
|
||||
},
|
||||
"additionalItems": {
|
||||
"anyOf": [
|
||||
{ "type": "boolean" },
|
||||
{ "$ref": "#" }
|
||||
],
|
||||
"default": {}
|
||||
},
|
||||
"items": {
|
||||
"anyOf": [
|
||||
{ "$ref": "#" },
|
||||
{ "$ref": "#/definitions/schemaArray" }
|
||||
],
|
||||
"default": {}
|
||||
},
|
||||
"maxItems": { "$ref": "#/definitions/positiveInteger" },
|
||||
"minItems": { "$ref": "#/definitions/positiveIntegerDefault0" },
|
||||
"uniqueItems": {
|
||||
"type": "boolean",
|
||||
"default": false
|
||||
},
|
||||
"maxProperties": { "$ref": "#/definitions/positiveInteger" },
|
||||
"minProperties": { "$ref": "#/definitions/positiveIntegerDefault0" },
|
||||
"required": { "$ref": "#/definitions/stringArray" },
|
||||
"additionalProperties": {
|
||||
"anyOf": [
|
||||
{ "type": "boolean" },
|
||||
{ "$ref": "#" }
|
||||
],
|
||||
"default": {}
|
||||
},
|
||||
"definitions": {
|
||||
"type": "object",
|
||||
"additionalProperties": { "$ref": "#" },
|
||||
"default": {}
|
||||
},
|
||||
"properties": {
|
||||
"type": "object",
|
||||
"additionalProperties": { "$ref": "#" },
|
||||
"default": {}
|
||||
},
|
||||
"patternProperties": {
|
||||
"type": "object",
|
||||
"additionalProperties": { "$ref": "#" },
|
||||
"default": {}
|
||||
},
|
||||
"dependencies": {
|
||||
"type": "object",
|
||||
"additionalProperties": {
|
||||
"anyOf": [
|
||||
{ "$ref": "#" },
|
||||
{ "$ref": "#/definitions/stringArray" }
|
||||
]
|
||||
}
|
||||
},
|
||||
"enum": {
|
||||
"type": "array",
|
||||
"minItems": 1,
|
||||
"uniqueItems": true
|
||||
},
|
||||
"type": {
|
||||
"anyOf": [
|
||||
{ "$ref": "#/definitions/simpleTypes" },
|
||||
{
|
||||
"type": "array",
|
||||
"items": { "$ref": "#/definitions/simpleTypes" },
|
||||
"minItems": 1,
|
||||
"uniqueItems": true
|
||||
}
|
||||
]
|
||||
},
|
||||
"allOf": { "$ref": "#/definitions/schemaArray" },
|
||||
"anyOf": { "$ref": "#/definitions/schemaArray" },
|
||||
"oneOf": { "$ref": "#/definitions/schemaArray" },
|
||||
"not": { "$ref": "#" }
|
||||
},
|
||||
"dependencies": {
|
||||
"exclusiveMaximum": [ "maximum" ],
|
||||
"exclusiveMinimum": [ "minimum" ]
|
||||
},
|
||||
"default": {}
|
||||
}
|
5
vendor/github.com/go-openapi/spec/schemas/v2/README.md
generated
vendored
5
vendor/github.com/go-openapi/spec/schemas/v2/README.md
generated
vendored
|
@ -1,5 +0,0 @@
|
|||
# Swagger 2.0 specification schema
|
||||
|
||||
This folder contains the Swagger 2.0 specification schema files maintained here:
|
||||
|
||||
https://github.com/reverb/swagger-spec/blob/master/schemas/v2.0
|
1607
vendor/github.com/go-openapi/spec/schemas/v2/schema.json
generated
vendored
1607
vendor/github.com/go-openapi/spec/schemas/v2/schema.json
generated
vendored
File diff suppressed because it is too large
Load diff
110
vendor/github.com/go-openapi/spec/structs_test.go
generated
vendored
110
vendor/github.com/go-openapi/spec/structs_test.go
generated
vendored
|
@ -1,110 +0,0 @@
|
|||
// Copyright 2015 go-swagger maintainers
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
package spec
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"reflect"
|
||||
"testing"
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
"gopkg.in/yaml.v2"
|
||||
)
|
||||
|
||||
func assertSerializeJSON(t testing.TB, actual interface{}, expected string) bool {
|
||||
ser, err := json.Marshal(actual)
|
||||
if err != nil {
|
||||
return assert.Fail(t, "unable to marshal to json (%s): %#v", err, actual)
|
||||
}
|
||||
return assert.Equal(t, string(ser), expected)
|
||||
}
|
||||
|
||||
func assertParsesJSON(t testing.TB, actual string, expected interface{}) bool {
|
||||
tpe := reflect.TypeOf(expected)
|
||||
var pointed bool
|
||||
if tpe.Kind() == reflect.Ptr {
|
||||
tpe = tpe.Elem()
|
||||
pointed = true
|
||||
}
|
||||
|
||||
parsed := reflect.New(tpe)
|
||||
err := json.Unmarshal([]byte(actual), parsed.Interface())
|
||||
if err != nil {
|
||||
return assert.Fail(t, "unable to unmarshal from json (%s): %s", err, actual)
|
||||
}
|
||||
act := parsed.Interface()
|
||||
if !pointed {
|
||||
act = reflect.Indirect(parsed).Interface()
|
||||
}
|
||||
return assert.Equal(t, act, expected)
|
||||
}
|
||||
|
||||
func assertSerializeYAML(t testing.TB, actual interface{}, expected string) bool {
|
||||
ser, err := yaml.Marshal(actual)
|
||||
if err != nil {
|
||||
return assert.Fail(t, "unable to marshal to yaml (%s): %#v", err, actual)
|
||||
}
|
||||
return assert.Equal(t, string(ser), expected)
|
||||
}
|
||||
|
||||
func assertParsesYAML(t testing.TB, actual string, expected interface{}) bool {
|
||||
tpe := reflect.TypeOf(expected)
|
||||
var pointed bool
|
||||
if tpe.Kind() == reflect.Ptr {
|
||||
tpe = tpe.Elem()
|
||||
pointed = true
|
||||
}
|
||||
parsed := reflect.New(tpe)
|
||||
err := yaml.Unmarshal([]byte(actual), parsed.Interface())
|
||||
if err != nil {
|
||||
return assert.Fail(t, "unable to unmarshal from yaml (%s): %s", err, actual)
|
||||
}
|
||||
act := parsed.Interface()
|
||||
if !pointed {
|
||||
act = reflect.Indirect(parsed).Interface()
|
||||
}
|
||||
return assert.EqualValues(t, act, expected)
|
||||
}
|
||||
|
||||
func TestSerialization_SerializeJSON(t *testing.T) {
|
||||
assertSerializeJSON(t, []string{"hello"}, "[\"hello\"]")
|
||||
assertSerializeJSON(t, []string{"hello", "world", "and", "stuff"}, "[\"hello\",\"world\",\"and\",\"stuff\"]")
|
||||
assertSerializeJSON(t, StringOrArray(nil), "null")
|
||||
assertSerializeJSON(t, SchemaOrArray{Schemas: []Schema{Schema{SchemaProps: SchemaProps{Type: []string{"string"}}}}}, "[{\"type\":\"string\"}]")
|
||||
assertSerializeJSON(t, SchemaOrArray{
|
||||
Schemas: []Schema{
|
||||
Schema{SchemaProps: SchemaProps{Type: []string{"string"}}},
|
||||
Schema{SchemaProps: SchemaProps{Type: []string{"string"}}},
|
||||
}}, "[{\"type\":\"string\"},{\"type\":\"string\"}]")
|
||||
assertSerializeJSON(t, SchemaOrArray{}, "null")
|
||||
}
|
||||
|
||||
func TestSerialization_DeserializeJSON(t *testing.T) {
|
||||
// String
|
||||
assertParsesJSON(t, "\"hello\"", StringOrArray([]string{"hello"}))
|
||||
assertParsesJSON(t, "[\"hello\",\"world\",\"and\",\"stuff\"]", StringOrArray([]string{"hello", "world", "and", "stuff"}))
|
||||
assertParsesJSON(t, "[\"hello\",\"world\",null,\"stuff\"]", StringOrArray([]string{"hello", "world", "", "stuff"}))
|
||||
assertParsesJSON(t, "null", StringOrArray(nil))
|
||||
|
||||
// Schema
|
||||
assertParsesJSON(t, "{\"type\":\"string\"}", SchemaOrArray{Schema: &Schema{SchemaProps: SchemaProps{Type: []string{"string"}}}})
|
||||
assertParsesJSON(t, "[{\"type\":\"string\"},{\"type\":\"string\"}]", &SchemaOrArray{
|
||||
Schemas: []Schema{
|
||||
Schema{SchemaProps: SchemaProps{Type: []string{"string"}}},
|
||||
Schema{SchemaProps: SchemaProps{Type: []string{"string"}}},
|
||||
},
|
||||
})
|
||||
assertParsesJSON(t, "null", SchemaOrArray{})
|
||||
}
|
365
vendor/github.com/go-openapi/spec/swagger_test.go
generated
vendored
365
vendor/github.com/go-openapi/spec/swagger_test.go
generated
vendored
|
@ -1,365 +0,0 @@
|
|||
// Copyright 2015 go-swagger maintainers
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
package spec
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"reflect"
|
||||
"testing"
|
||||
|
||||
"github.com/go-openapi/swag"
|
||||
"github.com/stretchr/testify/assert"
|
||||
)
|
||||
|
||||
var spec = Swagger{
|
||||
SwaggerProps: SwaggerProps{
|
||||
ID: "http://localhost:3849/api-docs",
|
||||
Swagger: "2.0",
|
||||
Consumes: []string{"application/json", "application/x-yaml"},
|
||||
Produces: []string{"application/json"},
|
||||
Schemes: []string{"http", "https"},
|
||||
Info: &info,
|
||||
Host: "some.api.out.there",
|
||||
BasePath: "/",
|
||||
Paths: &paths,
|
||||
Definitions: map[string]Schema{"Category": {SchemaProps: SchemaProps{Type: []string{"string"}}}},
|
||||
Parameters: map[string]Parameter{
|
||||
"categoryParam": {ParamProps: ParamProps{Name: "category", In: "query"}, SimpleSchema: SimpleSchema{Type: "string"}},
|
||||
},
|
||||
Responses: map[string]Response{
|
||||
"EmptyAnswer": {
|
||||
ResponseProps: ResponseProps{
|
||||
Description: "no data to return for this operation",
|
||||
},
|
||||
},
|
||||
},
|
||||
SecurityDefinitions: map[string]*SecurityScheme{
|
||||
"internalApiKey": APIKeyAuth("api_key", "header"),
|
||||
},
|
||||
Security: []map[string][]string{
|
||||
{"internalApiKey": {}},
|
||||
},
|
||||
Tags: []Tag{NewTag("pets", "", nil)},
|
||||
ExternalDocs: &ExternalDocumentation{"the name", "the url"},
|
||||
},
|
||||
VendorExtensible: VendorExtensible{map[string]interface{}{
|
||||
"x-some-extension": "vendor",
|
||||
"x-schemes": []interface{}{"unix", "amqp"},
|
||||
}},
|
||||
}
|
||||
|
||||
var specJSON = `{
|
||||
"id": "http://localhost:3849/api-docs",
|
||||
"consumes": ["application/json", "application/x-yaml"],
|
||||
"produces": ["application/json"],
|
||||
"schemes": ["http", "https"],
|
||||
"swagger": "2.0",
|
||||
"info": {
|
||||
"contact": {
|
||||
"name": "wordnik api team",
|
||||
"url": "http://developer.wordnik.com"
|
||||
},
|
||||
"description": "A sample API that uses a petstore as an example to demonstrate features in the swagger-2.0 specification",
|
||||
"license": {
|
||||
"name": "Creative Commons 4.0 International",
|
||||
"url": "http://creativecommons.org/licenses/by/4.0/"
|
||||
},
|
||||
"termsOfService": "http://helloreverb.com/terms/",
|
||||
"title": "Swagger Sample API",
|
||||
"version": "1.0.9-abcd",
|
||||
"x-framework": "go-swagger"
|
||||
},
|
||||
"host": "some.api.out.there",
|
||||
"basePath": "/",
|
||||
"paths": {"x-framework":"go-swagger","/":{"$ref":"cats"}},
|
||||
"definitions": { "Category": { "type": "string"} },
|
||||
"parameters": {
|
||||
"categoryParam": {
|
||||
"name": "category",
|
||||
"in": "query",
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"responses": { "EmptyAnswer": { "description": "no data to return for this operation" } },
|
||||
"securityDefinitions": {
|
||||
"internalApiKey": {
|
||||
"type": "apiKey",
|
||||
"in": "header",
|
||||
"name": "api_key"
|
||||
}
|
||||
},
|
||||
"security": [{"internalApiKey":[]}],
|
||||
"tags": [{"name":"pets"}],
|
||||
"externalDocs": {"description":"the name","url":"the url"},
|
||||
"x-some-extension": "vendor",
|
||||
"x-schemes": ["unix","amqp"]
|
||||
}`
|
||||
|
||||
//
|
||||
// func verifySpecSerialize(specJSON []byte, spec Swagger) {
|
||||
// expected := map[string]interface{}{}
|
||||
// json.Unmarshal(specJSON, &expected)
|
||||
// b, err := json.MarshalIndent(spec, "", " ")
|
||||
// So(err, ShouldBeNil)
|
||||
// var actual map[string]interface{}
|
||||
// err = json.Unmarshal(b, &actual)
|
||||
// So(err, ShouldBeNil)
|
||||
// compareSpecMaps(actual, expected)
|
||||
// }
|
||||
|
||||
func assertEquivalent(t testing.TB, actual, expected interface{}) bool {
|
||||
if actual == nil || expected == nil || reflect.DeepEqual(actual, expected) {
|
||||
return true
|
||||
}
|
||||
|
||||
actualType := reflect.TypeOf(actual)
|
||||
expectedType := reflect.TypeOf(expected)
|
||||
if reflect.TypeOf(actual).ConvertibleTo(expectedType) {
|
||||
expectedValue := reflect.ValueOf(expected)
|
||||
if swag.IsZero(expectedValue) && swag.IsZero(reflect.ValueOf(actual)) {
|
||||
return true
|
||||
}
|
||||
|
||||
// Attempt comparison after type conversion
|
||||
if reflect.DeepEqual(actual, expectedValue.Convert(actualType).Interface()) {
|
||||
return true
|
||||
}
|
||||
}
|
||||
|
||||
// Last ditch effort
|
||||
if fmt.Sprintf("%#v", expected) == fmt.Sprintf("%#v", actual) {
|
||||
return true
|
||||
}
|
||||
errFmt := "Expected: '%T(%#v)'\nActual: '%T(%#v)'\n(Should be equivalent)!"
|
||||
return assert.Fail(t, errFmt, expected, expected, actual, actual)
|
||||
}
|
||||
|
||||
func ShouldBeEquivalentTo(actual interface{}, expecteds ...interface{}) string {
|
||||
expected := expecteds[0]
|
||||
if actual == nil || expected == nil {
|
||||
return ""
|
||||
}
|
||||
|
||||
if reflect.DeepEqual(expected, actual) {
|
||||
return ""
|
||||
}
|
||||
|
||||
actualType := reflect.TypeOf(actual)
|
||||
expectedType := reflect.TypeOf(expected)
|
||||
if reflect.TypeOf(actual).ConvertibleTo(expectedType) {
|
||||
expectedValue := reflect.ValueOf(expected)
|
||||
if swag.IsZero(expectedValue) && swag.IsZero(reflect.ValueOf(actual)) {
|
||||
return ""
|
||||
}
|
||||
|
||||
// Attempt comparison after type conversion
|
||||
if reflect.DeepEqual(actual, expectedValue.Convert(actualType).Interface()) {
|
||||
return ""
|
||||
}
|
||||
}
|
||||
|
||||
// Last ditch effort
|
||||
if fmt.Sprintf("%#v", expected) == fmt.Sprintf("%#v", actual) {
|
||||
return ""
|
||||
}
|
||||
errFmt := "Expected: '%T(%#v)'\nActual: '%T(%#v)'\n(Should be equivalent)!"
|
||||
return fmt.Sprintf(errFmt, expected, expected, actual, actual)
|
||||
|
||||
}
|
||||
|
||||
func assertSpecMaps(t testing.TB, actual, expected map[string]interface{}) bool {
|
||||
res := true
|
||||
if id, ok := expected["id"]; ok {
|
||||
res = assert.Equal(t, id, actual["id"])
|
||||
}
|
||||
res = res && assert.Equal(t, expected["consumes"], actual["consumes"])
|
||||
res = res && assert.Equal(t, expected["produces"], actual["produces"])
|
||||
res = res && assert.Equal(t, expected["schemes"], actual["schemes"])
|
||||
res = res && assert.Equal(t, expected["swagger"], actual["swagger"])
|
||||
res = res && assert.Equal(t, expected["info"], actual["info"])
|
||||
res = res && assert.Equal(t, expected["host"], actual["host"])
|
||||
res = res && assert.Equal(t, expected["basePath"], actual["basePath"])
|
||||
res = res && assert.Equal(t, expected["paths"], actual["paths"])
|
||||
res = res && assert.Equal(t, expected["definitions"], actual["definitions"])
|
||||
res = res && assert.Equal(t, expected["responses"], actual["responses"])
|
||||
res = res && assert.Equal(t, expected["securityDefinitions"], actual["securityDefinitions"])
|
||||
res = res && assert.Equal(t, expected["tags"], actual["tags"])
|
||||
res = res && assert.Equal(t, expected["externalDocs"], actual["externalDocs"])
|
||||
res = res && assert.Equal(t, expected["x-some-extension"], actual["x-some-extension"])
|
||||
res = res && assert.Equal(t, expected["x-schemes"], actual["x-schemes"])
|
||||
|
||||
return res
|
||||
}
|
||||
|
||||
//
|
||||
// func compareSpecMaps(actual, expected map[string]interface{}) {
|
||||
// if id, ok := expected["id"]; ok {
|
||||
// So(actual["id"], ShouldEqual, id)
|
||||
// }
|
||||
// //So(actual["$schema"], ShouldEqual, SwaggerSchemaURL)
|
||||
// So(actual["consumes"], ShouldResemble, expected["consumes"])
|
||||
// So(actual["produces"], ShouldResemble, expected["produces"])
|
||||
// So(actual["schemes"], ShouldResemble, expected["schemes"])
|
||||
// So(actual["swagger"], ShouldEqual, expected["swagger"])
|
||||
// So(actual["info"], ShouldResemble, expected["info"])
|
||||
// So(actual["host"], ShouldEqual, expected["host"])
|
||||
// So(actual["basePath"], ShouldEqual, expected["basePath"])
|
||||
// So(actual["paths"], ShouldBeEquivalentTo, expected["paths"])
|
||||
// So(actual["definitions"], ShouldBeEquivalentTo, expected["definitions"])
|
||||
// So(actual["responses"], ShouldBeEquivalentTo, expected["responses"])
|
||||
// So(actual["securityDefinitions"], ShouldResemble, expected["securityDefinitions"])
|
||||
// So(actual["tags"], ShouldResemble, expected["tags"])
|
||||
// So(actual["externalDocs"], ShouldResemble, expected["externalDocs"])
|
||||
// So(actual["x-some-extension"], ShouldResemble, expected["x-some-extension"])
|
||||
// So(actual["x-schemes"], ShouldResemble, expected["x-schemes"])
|
||||
// }
|
||||
|
||||
func assertSpecs(t testing.TB, actual, expected Swagger) bool {
|
||||
expected.Swagger = "2.0"
|
||||
return assert.Equal(t, actual, expected)
|
||||
}
|
||||
|
||||
//
|
||||
// func compareSpecs(actual Swagger, spec Swagger) {
|
||||
// spec.Swagger = "2.0"
|
||||
// So(actual, ShouldBeEquivalentTo, spec)
|
||||
// }
|
||||
|
||||
func assertSpecJSON(t testing.TB, specJSON []byte) bool {
|
||||
var expected map[string]interface{}
|
||||
if !assert.NoError(t, json.Unmarshal(specJSON, &expected)) {
|
||||
return false
|
||||
}
|
||||
|
||||
obj := Swagger{}
|
||||
if !assert.NoError(t, json.Unmarshal(specJSON, &obj)) {
|
||||
return false
|
||||
}
|
||||
|
||||
cb, err := json.MarshalIndent(obj, "", " ")
|
||||
if assert.NoError(t, err) {
|
||||
return false
|
||||
}
|
||||
var actual map[string]interface{}
|
||||
if !assert.NoError(t, json.Unmarshal(cb, &actual)) {
|
||||
return false
|
||||
}
|
||||
return assertSpecMaps(t, actual, expected)
|
||||
}
|
||||
|
||||
// func verifySpecJSON(specJSON []byte) {
|
||||
// //Println()
|
||||
// //Println("json to verify", string(specJson))
|
||||
// var expected map[string]interface{}
|
||||
// err := json.Unmarshal(specJSON, &expected)
|
||||
// So(err, ShouldBeNil)
|
||||
//
|
||||
// obj := Swagger{}
|
||||
// err = json.Unmarshal(specJSON, &obj)
|
||||
// So(err, ShouldBeNil)
|
||||
//
|
||||
// //spew.Dump(obj)
|
||||
//
|
||||
// cb, err := json.MarshalIndent(obj, "", " ")
|
||||
// So(err, ShouldBeNil)
|
||||
// //Println()
|
||||
// //Println("Marshalling to json returned", string(cb))
|
||||
//
|
||||
// var actual map[string]interface{}
|
||||
// err = json.Unmarshal(cb, &actual)
|
||||
// So(err, ShouldBeNil)
|
||||
// //Println()
|
||||
// //spew.Dump(expected)
|
||||
// //spew.Dump(actual)
|
||||
// //fmt.Printf("comparing %s\n\t%#v\nto\n\t%#+v\n", fileName, expected, actual)
|
||||
// compareSpecMaps(actual, expected)
|
||||
// }
|
||||
|
||||
func TestSwaggerSpec_Serialize(t *testing.T) {
|
||||
expected := make(map[string]interface{})
|
||||
json.Unmarshal([]byte(specJSON), &expected)
|
||||
b, err := json.MarshalIndent(spec, "", " ")
|
||||
if assert.NoError(t, err) {
|
||||
var actual map[string]interface{}
|
||||
err := json.Unmarshal(b, &actual)
|
||||
if assert.NoError(t, err) {
|
||||
assert.EqualValues(t, actual, expected)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func TestSwaggerSpec_Deserialize(t *testing.T) {
|
||||
var actual Swagger
|
||||
err := json.Unmarshal([]byte(specJSON), &actual)
|
||||
if assert.NoError(t, err) {
|
||||
assert.EqualValues(t, actual, spec)
|
||||
}
|
||||
}
|
||||
|
||||
func TestVendorExtensionStringSlice(t *testing.T) {
|
||||
var actual Swagger
|
||||
err := json.Unmarshal([]byte(specJSON), &actual)
|
||||
if assert.NoError(t, err) {
|
||||
schemes, ok := actual.Extensions.GetStringSlice("x-schemes")
|
||||
if assert.True(t, ok) {
|
||||
assert.EqualValues(t, []string{"unix", "amqp"}, schemes)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func TestOptionalSwaggerProps_Serialize(t *testing.T) {
|
||||
minimalJsonSpec := []byte(`{
|
||||
"swagger": "2.0",
|
||||
"info": {
|
||||
"version": "0.0.0",
|
||||
"title": "Simple API"
|
||||
},
|
||||
"paths": {
|
||||
"/": {
|
||||
"get": {
|
||||
"responses": {
|
||||
"200": {
|
||||
"description": "OK"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}`)
|
||||
|
||||
var minimalSpec Swagger
|
||||
err := json.Unmarshal(minimalJsonSpec, &minimalSpec)
|
||||
if assert.NoError(t, err) {
|
||||
bytes, err := json.Marshal(&minimalSpec)
|
||||
if assert.NoError(t, err) {
|
||||
var ms map[string]interface{}
|
||||
if err := json.Unmarshal(bytes, &ms); assert.NoError(t, err) {
|
||||
assert.NotContains(t, ms, "consumes")
|
||||
assert.NotContains(t, ms, "produces")
|
||||
assert.NotContains(t, ms, "schemes")
|
||||
assert.NotContains(t, ms, "host")
|
||||
assert.NotContains(t, ms, "basePath")
|
||||
assert.NotContains(t, ms, "definitions")
|
||||
assert.NotContains(t, ms, "parameters")
|
||||
assert.NotContains(t, ms, "responses")
|
||||
assert.NotContains(t, ms, "securityDefinitions")
|
||||
assert.NotContains(t, ms, "security")
|
||||
assert.NotContains(t, ms, "tags")
|
||||
assert.NotContains(t, ms, "externalDocs")
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
65
vendor/github.com/go-openapi/spec/xml_object_test.go
generated
vendored
65
vendor/github.com/go-openapi/spec/xml_object_test.go
generated
vendored
|
@ -1,65 +0,0 @@
|
|||
// Copyright 2015 go-swagger maintainers
|
||||
//
|
||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||
// you may not use this file except in compliance with the License.
|
||||
// You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing, software
|
||||
// distributed under the License is distributed on an "AS IS" BASIS,
|
||||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
package spec
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"testing"
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
)
|
||||
|
||||
func TestXmlObject_Serialize(t *testing.T) {
|
||||
obj1 := XMLObject{}
|
||||
actual, err := json.Marshal(obj1)
|
||||
if assert.NoError(t, err) {
|
||||
assert.Equal(t, "{}", string(actual))
|
||||
}
|
||||
|
||||
obj2 := XMLObject{
|
||||
Name: "the name",
|
||||
Namespace: "the namespace",
|
||||
Prefix: "the prefix",
|
||||
Attribute: true,
|
||||
Wrapped: true,
|
||||
}
|
||||
|
||||
actual, err = json.Marshal(obj2)
|
||||
if assert.NoError(t, err) {
|
||||
var ad map[string]interface{}
|
||||
if assert.NoError(t, json.Unmarshal(actual, &ad)) {
|
||||
assert.Equal(t, obj2.Name, ad["name"])
|
||||
assert.Equal(t, obj2.Namespace, ad["namespace"])
|
||||
assert.Equal(t, obj2.Prefix, ad["prefix"])
|
||||
assert.True(t, ad["attribute"].(bool))
|
||||
assert.True(t, ad["wrapped"].(bool))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func TestXmlObject_Deserialize(t *testing.T) {
|
||||
expected := XMLObject{}
|
||||
actual := XMLObject{}
|
||||
if assert.NoError(t, json.Unmarshal([]byte("{}"), &actual)) {
|
||||
assert.Equal(t, expected, actual)
|
||||
}
|
||||
|
||||
completed := `{"name":"the name","namespace":"the namespace","prefix":"the prefix","attribute":true,"wrapped":true}`
|
||||
expected = XMLObject{"the name", "the namespace", "the prefix", true, true}
|
||||
actual = XMLObject{}
|
||||
if assert.NoError(t, json.Unmarshal([]byte(completed), &actual)) {
|
||||
assert.Equal(t, expected, actual)
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue