1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980 |
- // 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"
- )
- const 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{Extensions: 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)
- }
- }
- func TestInfoGobEncoding(t *testing.T) {
- var src, dst Info
- if assert.NoError(t, json.Unmarshal([]byte(infoJSON), &src)) {
- assert.EqualValues(t, src, info)
- } else {
- t.FailNow()
- }
- doTestAnyGobEncoding(t, &src, &dst)
- }
|