Bumping k8s dependencies to 1.13
This commit is contained in:
227
vendor/k8s.io/kube-openapi/pkg/generators/openapi_test.go
generated
vendored
227
vendor/k8s.io/kube-openapi/pkg/generators/openapi_test.go
generated
vendored
@@ -20,6 +20,7 @@ import (
|
||||
"bytes"
|
||||
"fmt"
|
||||
"path/filepath"
|
||||
"strings"
|
||||
"testing"
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
@@ -46,7 +47,7 @@ func construct(t *testing.T, files map[string]string, testNamer namer.Namer) (*p
|
||||
return b, u, o
|
||||
}
|
||||
|
||||
func testOpenAPITypeWritter(t *testing.T, code string) (error, *assert.Assertions, *bytes.Buffer) {
|
||||
func testOpenAPITypeWriter(t *testing.T, code string) (error, error, *assert.Assertions, *bytes.Buffer, *bytes.Buffer) {
|
||||
assert := assert.New(t)
|
||||
var testFiles = map[string]string{
|
||||
"base/foo/bar.go": code,
|
||||
@@ -54,20 +55,33 @@ func testOpenAPITypeWritter(t *testing.T, code string) (error, *assert.Assertion
|
||||
rawNamer := namer.NewRawNamer("o", nil)
|
||||
namers := namer.NameSystems{
|
||||
"raw": namer.NewRawNamer("", nil),
|
||||
"private": &namer.NameStrategy{
|
||||
Join: func(pre string, in []string, post string) string {
|
||||
return strings.Join(in, "_")
|
||||
},
|
||||
PrependPackageNames: 4, // enough to fully qualify from k8s.io/api/...
|
||||
},
|
||||
}
|
||||
builder, universe, _ := construct(t, testFiles, rawNamer)
|
||||
context, err := generator.NewContext(builder, namers, "raw")
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
buffer := &bytes.Buffer{}
|
||||
sw := generator.NewSnippetWriter(buffer, context, "$", "$")
|
||||
blahT := universe.Type(types.Name{Package: "base/foo", Name: "Blah"})
|
||||
return newOpenAPITypeWriter(sw).generate(blahT), assert, buffer
|
||||
|
||||
callBuffer := &bytes.Buffer{}
|
||||
callSW := generator.NewSnippetWriter(callBuffer, context, "$", "$")
|
||||
callError := newOpenAPITypeWriter(callSW).generateCall(blahT)
|
||||
|
||||
funcBuffer := &bytes.Buffer{}
|
||||
funcSW := generator.NewSnippetWriter(funcBuffer, context, "$", "$")
|
||||
funcError := newOpenAPITypeWriter(funcSW).generate(blahT)
|
||||
|
||||
return callError, funcError, assert, callBuffer, funcBuffer
|
||||
}
|
||||
|
||||
func TestSimple(t *testing.T) {
|
||||
err, assert, buffer := testOpenAPITypeWritter(t, `
|
||||
callErr, funcErr, assert, callBuffer, funcBuffer := testOpenAPITypeWriter(t, `
|
||||
package foo
|
||||
|
||||
// Blah is a test.
|
||||
@@ -112,15 +126,24 @@ type Blah struct {
|
||||
// +k8s:openapi-gen=x-kubernetes-member-tag:member_test
|
||||
WithExtension string
|
||||
// a member with struct tag as extension
|
||||
// +patchStrategy=ps
|
||||
// +patchStrategy=merge
|
||||
// +patchMergeKey=pmk
|
||||
WithStructTagExtension string `+"`"+`patchStrategy:"ps" patchMergeKey:"pmk"`+"`"+`
|
||||
WithStructTagExtension string `+"`"+`patchStrategy:"merge" patchMergeKey:"pmk"`+"`"+`
|
||||
// a member with a list type
|
||||
// +listType=atomic
|
||||
WithListType []string
|
||||
}
|
||||
`)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
if callErr != nil {
|
||||
t.Fatal(callErr)
|
||||
}
|
||||
assert.Equal(`"base/foo.Blah": {
|
||||
if funcErr != nil {
|
||||
t.Fatal(funcErr)
|
||||
}
|
||||
assert.Equal(`"base/foo.Blah": schema_base_foo_Blah(ref),
|
||||
`, callBuffer.String())
|
||||
assert.Equal(`func schema_base_foo_Blah(ref common.ReferenceCallback) common.OpenAPIDefinition {
|
||||
return common.OpenAPIDefinition{
|
||||
Schema: spec.Schema{
|
||||
SchemaProps: spec.SchemaProps{
|
||||
Description: "Blah is a test.",
|
||||
@@ -246,7 +269,7 @@ Format: "",
|
||||
VendorExtensible: spec.VendorExtensible{
|
||||
Extensions: spec.Extensions{
|
||||
"x-kubernetes-patch-merge-key": "pmk",
|
||||
"x-kubernetes-patch-strategy": "ps",
|
||||
"x-kubernetes-patch-strategy": "merge",
|
||||
},
|
||||
},
|
||||
SchemaProps: spec.SchemaProps{
|
||||
@@ -255,8 +278,27 @@ Type: []string{"string"},
|
||||
Format: "",
|
||||
},
|
||||
},
|
||||
"WithListType": {
|
||||
VendorExtensible: spec.VendorExtensible{
|
||||
Extensions: spec.Extensions{
|
||||
"x-kubernetes-list-type": "atomic",
|
||||
},
|
||||
Required: []string{"String","Int64","Int32","Int16","Int8","Uint","Uint64","Uint32","Uint16","Uint8","Byte","Bool","Float64","Float32","ByteArray","WithExtension","WithStructTagExtension"},
|
||||
},
|
||||
SchemaProps: spec.SchemaProps{
|
||||
Description: "a member with a list type",
|
||||
Type: []string{"array"},
|
||||
Items: &spec.SchemaOrArray{
|
||||
Schema: &spec.Schema{
|
||||
SchemaProps: spec.SchemaProps{
|
||||
Type: []string{"string"},
|
||||
Format: "",
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
Required: []string{"String","Int64","Int32","Int16","Int8","Uint","Uint64","Uint32","Uint16","Uint8","Byte","Bool","Float64","Float32","ByteArray","WithExtension","WithStructTagExtension","WithListType"},
|
||||
},
|
||||
VendorExtensible: spec.VendorExtensible{
|
||||
Extensions: spec.Extensions{
|
||||
@@ -266,12 +308,14 @@ Extensions: spec.Extensions{
|
||||
},
|
||||
Dependencies: []string{
|
||||
},
|
||||
},
|
||||
`, buffer.String())
|
||||
}
|
||||
}
|
||||
|
||||
`, funcBuffer.String())
|
||||
}
|
||||
|
||||
func TestFailingSample1(t *testing.T) {
|
||||
err, assert, _ := testOpenAPITypeWritter(t, `
|
||||
_, funcErr, assert, _, _ := testOpenAPITypeWriter(t, `
|
||||
package foo
|
||||
|
||||
// Map sample tests openAPIGen.generateMapProperty method.
|
||||
@@ -280,13 +324,13 @@ type Blah struct {
|
||||
StringToArray map[string]map[string]string
|
||||
}
|
||||
`)
|
||||
if assert.Error(err, "An error was expected") {
|
||||
assert.Equal(err, fmt.Errorf("map Element kind Map is not supported in map[string]map[string]string"))
|
||||
if assert.Error(funcErr, "An error was expected") {
|
||||
assert.Equal(funcErr, fmt.Errorf("map Element kind Map is not supported in map[string]map[string]string"))
|
||||
}
|
||||
}
|
||||
|
||||
func TestFailingSample2(t *testing.T) {
|
||||
err, assert, _ := testOpenAPITypeWritter(t, `
|
||||
_, funcErr, assert, _, _ := testOpenAPITypeWriter(t, `
|
||||
package foo
|
||||
|
||||
// Map sample tests openAPIGen.generateMapProperty method.
|
||||
@@ -294,13 +338,13 @@ type Blah struct {
|
||||
// A sample String to String map
|
||||
StringToArray map[int]string
|
||||
} `)
|
||||
if assert.Error(err, "An error was expected") {
|
||||
assert.Equal(err, fmt.Errorf("map with non-string keys are not supported by OpenAPI in map[int]string"))
|
||||
if assert.Error(funcErr, "An error was expected") {
|
||||
assert.Equal(funcErr, fmt.Errorf("map with non-string keys are not supported by OpenAPI in map[int]string"))
|
||||
}
|
||||
}
|
||||
|
||||
func TestCustomDef(t *testing.T) {
|
||||
err, assert, buffer := testOpenAPITypeWritter(t, `
|
||||
callErr, funcErr, assert, callBuffer, funcBuffer := testOpenAPITypeWriter(t, `
|
||||
package foo
|
||||
|
||||
import openapi "k8s.io/kube-openapi/pkg/common"
|
||||
@@ -319,39 +363,53 @@ func (_ Blah) OpenAPIDefinition() openapi.OpenAPIDefinition {
|
||||
}
|
||||
}
|
||||
`)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
if callErr != nil {
|
||||
t.Fatal(callErr)
|
||||
}
|
||||
if funcErr != nil {
|
||||
t.Fatal(funcErr)
|
||||
}
|
||||
assert.Equal(`"base/foo.Blah": foo.Blah{}.OpenAPIDefinition(),
|
||||
`, buffer.String())
|
||||
`, callBuffer.String())
|
||||
assert.Equal(``, funcBuffer.String())
|
||||
}
|
||||
|
||||
func TestCustomDefs(t *testing.T) {
|
||||
err, assert, buffer := testOpenAPITypeWritter(t, `
|
||||
callErr, funcErr, assert, callBuffer, funcBuffer := testOpenAPITypeWriter(t, `
|
||||
package foo
|
||||
|
||||
// Blah is a custom type
|
||||
type Blah struct {
|
||||
}
|
||||
|
||||
func (_ Blah) OpenAPISchemaType() []string { return []string{"string"} }
|
||||
func (_ Blah) OpenAPISchemaFormat() string { return "date-time" }
|
||||
`)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
if callErr != nil {
|
||||
t.Fatal(callErr)
|
||||
}
|
||||
assert.Equal(`"base/foo.Blah": {
|
||||
if funcErr != nil {
|
||||
t.Fatal(funcErr)
|
||||
}
|
||||
assert.Equal(`"base/foo.Blah": schema_base_foo_Blah(ref),
|
||||
`, callBuffer.String())
|
||||
assert.Equal(`func schema_base_foo_Blah(ref common.ReferenceCallback) common.OpenAPIDefinition {
|
||||
return common.OpenAPIDefinition{
|
||||
Schema: spec.Schema{
|
||||
SchemaProps: spec.SchemaProps{
|
||||
Description: "Blah is a custom type",
|
||||
Type:foo.Blah{}.OpenAPISchemaType(),
|
||||
Format:foo.Blah{}.OpenAPISchemaFormat(),
|
||||
},
|
||||
},
|
||||
},
|
||||
`, buffer.String())
|
||||
}
|
||||
}
|
||||
|
||||
`, funcBuffer.String())
|
||||
}
|
||||
|
||||
func TestPointer(t *testing.T) {
|
||||
err, assert, buffer := testOpenAPITypeWritter(t, `
|
||||
callErr, funcErr, assert, callBuffer, funcBuffer := testOpenAPITypeWriter(t, `
|
||||
package foo
|
||||
|
||||
// PointerSample demonstrate pointer's properties
|
||||
@@ -366,10 +424,16 @@ type Blah struct {
|
||||
MapPointer *map[string]string
|
||||
}
|
||||
`)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
if callErr != nil {
|
||||
t.Fatal(callErr)
|
||||
}
|
||||
assert.Equal(`"base/foo.Blah": {
|
||||
if funcErr != nil {
|
||||
t.Fatal(funcErr)
|
||||
}
|
||||
assert.Equal(`"base/foo.Blah": schema_base_foo_Blah(ref),
|
||||
`, callBuffer.String())
|
||||
assert.Equal(`func schema_base_foo_Blah(ref common.ReferenceCallback) common.OpenAPIDefinition {
|
||||
return common.OpenAPIDefinition{
|
||||
Schema: spec.Schema{
|
||||
SchemaProps: spec.SchemaProps{
|
||||
Description: "PointerSample demonstrate pointer's properties",
|
||||
@@ -421,12 +485,14 @@ Required: []string{"StringPointer","StructPointer","SlicePointer","MapPointer"},
|
||||
},
|
||||
Dependencies: []string{
|
||||
"base/foo.Blah",},
|
||||
},
|
||||
`, buffer.String())
|
||||
}
|
||||
}
|
||||
|
||||
`, funcBuffer.String())
|
||||
}
|
||||
|
||||
func TestNestedLists(t *testing.T) {
|
||||
err, assert, buffer := testOpenAPITypeWritter(t, `
|
||||
callErr, funcErr, assert, callBuffer, funcBuffer := testOpenAPITypeWriter(t, `
|
||||
package foo
|
||||
|
||||
// Blah is a test.
|
||||
@@ -437,10 +503,16 @@ type Blah struct {
|
||||
NestedList [][]int64
|
||||
}
|
||||
`)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
if callErr != nil {
|
||||
t.Fatal(callErr)
|
||||
}
|
||||
assert.Equal(`"base/foo.Blah": {
|
||||
if funcErr != nil {
|
||||
t.Fatal(funcErr)
|
||||
}
|
||||
assert.Equal(`"base/foo.Blah": schema_base_foo_Blah(ref),
|
||||
`, callBuffer.String())
|
||||
assert.Equal(`func schema_base_foo_Blah(ref common.ReferenceCallback) common.OpenAPIDefinition {
|
||||
return common.OpenAPIDefinition{
|
||||
Schema: spec.Schema{
|
||||
SchemaProps: spec.SchemaProps{
|
||||
Description: "Blah is a test.",
|
||||
@@ -477,6 +549,77 @@ Extensions: spec.Extensions{
|
||||
},
|
||||
Dependencies: []string{
|
||||
},
|
||||
},
|
||||
`, buffer.String())
|
||||
}
|
||||
}
|
||||
|
||||
`, funcBuffer.String())
|
||||
}
|
||||
|
||||
func TestExtensions(t *testing.T) {
|
||||
callErr, funcErr, assert, callBuffer, funcBuffer := testOpenAPITypeWriter(t, `
|
||||
package foo
|
||||
|
||||
// Blah is a test.
|
||||
// +k8s:openapi-gen=true
|
||||
// +k8s:openapi-gen=x-kubernetes-type-tag:type_test
|
||||
type Blah struct {
|
||||
// a member with a list type
|
||||
// +listType=map
|
||||
// +listMapKey=port
|
||||
// +listMapKey=protocol
|
||||
WithListField []string
|
||||
}
|
||||
`)
|
||||
if callErr != nil {
|
||||
t.Fatal(callErr)
|
||||
}
|
||||
if funcErr != nil {
|
||||
t.Fatal(funcErr)
|
||||
}
|
||||
assert.Equal(`"base/foo.Blah": schema_base_foo_Blah(ref),
|
||||
`, callBuffer.String())
|
||||
assert.Equal(`func schema_base_foo_Blah(ref common.ReferenceCallback) common.OpenAPIDefinition {
|
||||
return common.OpenAPIDefinition{
|
||||
Schema: spec.Schema{
|
||||
SchemaProps: spec.SchemaProps{
|
||||
Description: "Blah is a test.",
|
||||
Properties: map[string]spec.Schema{
|
||||
"WithListField": {
|
||||
VendorExtensible: spec.VendorExtensible{
|
||||
Extensions: spec.Extensions{
|
||||
"x-kubernetes-list-map-keys": []string{
|
||||
"port",
|
||||
"protocol",
|
||||
},
|
||||
"x-kubernetes-list-type": "map",
|
||||
},
|
||||
},
|
||||
SchemaProps: spec.SchemaProps{
|
||||
Description: "a member with a list type",
|
||||
Type: []string{"array"},
|
||||
Items: &spec.SchemaOrArray{
|
||||
Schema: &spec.Schema{
|
||||
SchemaProps: spec.SchemaProps{
|
||||
Type: []string{"string"},
|
||||
Format: "",
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
Required: []string{"WithListField"},
|
||||
},
|
||||
VendorExtensible: spec.VendorExtensible{
|
||||
Extensions: spec.Extensions{
|
||||
"x-kubernetes-type-tag": "type_test",
|
||||
},
|
||||
},
|
||||
},
|
||||
Dependencies: []string{
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
`, funcBuffer.String())
|
||||
}
|
||||
|
Reference in New Issue
Block a user