189 lines
4.4 KiB
Go
189 lines
4.4 KiB
Go
package swag
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
)
|
|
|
|
func TestSpec_InstanceName(t *testing.T) {
|
|
type fields struct {
|
|
Version string
|
|
Host string
|
|
BasePath string
|
|
Schemes []string
|
|
Title string
|
|
Description string
|
|
InfoInstanceName string
|
|
SwaggerTemplate string
|
|
}
|
|
|
|
tests := []struct {
|
|
name string
|
|
fields fields
|
|
want string
|
|
}{
|
|
{
|
|
name: "TestInstanceNameCorrect",
|
|
fields: fields{
|
|
Version: "1.0",
|
|
Host: "localhost:8080",
|
|
BasePath: "/",
|
|
InfoInstanceName: "TestInstanceName1",
|
|
},
|
|
want: "TestInstanceName1",
|
|
},
|
|
}
|
|
|
|
for _, tt := range tests {
|
|
t.Run(tt.name, func(t *testing.T) {
|
|
doc := Spec{
|
|
Version: tt.fields.Version,
|
|
Host: tt.fields.Host,
|
|
BasePath: tt.fields.BasePath,
|
|
Schemes: tt.fields.Schemes,
|
|
Title: tt.fields.Title,
|
|
Description: tt.fields.Description,
|
|
InfoInstanceName: tt.fields.InfoInstanceName,
|
|
SwaggerTemplate: tt.fields.SwaggerTemplate,
|
|
}
|
|
|
|
assert.Equal(t, tt.want, doc.InstanceName())
|
|
})
|
|
}
|
|
}
|
|
|
|
func TestSpec_ReadDoc(t *testing.T) {
|
|
type fields struct {
|
|
Version string
|
|
Host string
|
|
BasePath string
|
|
Schemes []string
|
|
Title string
|
|
Description string
|
|
InfoInstanceName string
|
|
SwaggerTemplate string
|
|
LeftDelim string
|
|
RightDelim string
|
|
}
|
|
|
|
tests := []struct {
|
|
name string
|
|
fields fields
|
|
want string
|
|
}{
|
|
{
|
|
name: "TestReadDocCorrect",
|
|
fields: fields{
|
|
Version: "1.0",
|
|
Host: "localhost:8080",
|
|
BasePath: "/",
|
|
InfoInstanceName: "TestInstanceName",
|
|
SwaggerTemplate: `{
|
|
"swagger": "2.0",
|
|
"info": {
|
|
"description": "{{escape .Description}}",
|
|
"title": "{{.Title}}",
|
|
"version": "{{.Version}}"
|
|
},
|
|
"host": "{{.Host}}",
|
|
"basePath": "{{.BasePath}}",
|
|
}`,
|
|
},
|
|
want: "{" +
|
|
"\n\t\t\t\"swagger\": \"2.0\"," +
|
|
"\n\t\t\t\"info\": {" +
|
|
"\n\t\t\t\t\"description\": \"\",\n\t\t\t\t\"" +
|
|
"title\": \"\"," +
|
|
"\n\t\t\t\t\"version\": \"1.0\"" +
|
|
"\n\t\t\t}," +
|
|
"\n\t\t\t\"host\": \"localhost:8080\"," +
|
|
"\n\t\t\t\"basePath\": \"/\"," +
|
|
"\n\t\t}",
|
|
},
|
|
{
|
|
name: "TestReadDocMarshalTrigger",
|
|
fields: fields{
|
|
Version: "1.0",
|
|
Host: "localhost:8080",
|
|
BasePath: "/",
|
|
InfoInstanceName: "TestInstanceName",
|
|
SwaggerTemplate: "{{ marshal .Version }}",
|
|
},
|
|
want: "\"1.0\"",
|
|
},
|
|
{
|
|
name: "TestReadDocParseError",
|
|
fields: fields{
|
|
Version: "1.0",
|
|
Host: "localhost:8080",
|
|
BasePath: "/",
|
|
InfoInstanceName: "TestInstanceName",
|
|
SwaggerTemplate: "{{ ..Version }}",
|
|
},
|
|
want: "{{ ..Version }}",
|
|
},
|
|
{
|
|
name: "TestReadDocExecuteError",
|
|
fields: fields{
|
|
Version: "1.0",
|
|
Host: "localhost:8080",
|
|
BasePath: "/",
|
|
InfoInstanceName: "TestInstanceName",
|
|
SwaggerTemplate: "{{ .Schemesa }}",
|
|
},
|
|
want: "{{ .Schemesa }}",
|
|
},
|
|
{
|
|
name: "TestReadDocCustomDelims",
|
|
fields: fields{
|
|
Version: "1.0",
|
|
Host: "localhost:8080",
|
|
BasePath: "/",
|
|
InfoInstanceName: "TestInstanceName",
|
|
SwaggerTemplate: `{
|
|
"swagger": "2.0",
|
|
"info": {
|
|
"description": "{%escape .Description%}",
|
|
"title": "{%.Title%}",
|
|
"version": "{%.Version%}"
|
|
},
|
|
"host": "{%.Host%}",
|
|
"basePath": "{%.BasePath%}",
|
|
}`,
|
|
LeftDelim: "{%",
|
|
RightDelim: "%}",
|
|
},
|
|
want: "{" +
|
|
"\n\t\t\t\"swagger\": \"2.0\"," +
|
|
"\n\t\t\t\"info\": {" +
|
|
"\n\t\t\t\t\"description\": \"\",\n\t\t\t\t\"" +
|
|
"title\": \"\"," +
|
|
"\n\t\t\t\t\"version\": \"1.0\"" +
|
|
"\n\t\t\t}," +
|
|
"\n\t\t\t\"host\": \"localhost:8080\"," +
|
|
"\n\t\t\t\"basePath\": \"/\"," +
|
|
"\n\t\t}",
|
|
},
|
|
}
|
|
|
|
for _, tt := range tests {
|
|
t.Run(tt.name, func(t *testing.T) {
|
|
doc := Spec{
|
|
Version: tt.fields.Version,
|
|
Host: tt.fields.Host,
|
|
BasePath: tt.fields.BasePath,
|
|
Schemes: tt.fields.Schemes,
|
|
Title: tt.fields.Title,
|
|
Description: tt.fields.Description,
|
|
InfoInstanceName: tt.fields.InfoInstanceName,
|
|
SwaggerTemplate: tt.fields.SwaggerTemplate,
|
|
LeftDelim: tt.fields.LeftDelim,
|
|
RightDelim: tt.fields.RightDelim,
|
|
}
|
|
|
|
assert.Equal(t, tt.want, doc.ReadDoc())
|
|
})
|
|
}
|
|
}
|