mirror of
https://github.com/ceph/ceph-csi.git
synced 2024-12-11 15:40:24 +00:00
59 lines
2.1 KiB
Go
59 lines
2.1 KiB
Go
|
// 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)
|
||
|
}
|
||
|
|
||
|
}
|