databricks-cli/libs/jsonschema/schema_order_test.go

61 lines
1.0 KiB
Go
Raw Permalink Normal View History

package jsonschema
import (
"testing"
"github.com/stretchr/testify/assert"
)
func TestOrderedProperties(t *testing.T) {
newInt := func(i int) *int {
return &i
}
s := Schema{
Properties: map[string]*Schema{
"bbb": {
Type: StringType,
},
"ccc": {
Type: StringType,
},
"ddd": {
Type: StringType,
},
"zzz1": {
Type: StringType,
Extension: Extension{
Order: newInt(-1),
},
},
"zzz2": {
Type: StringType,
Extension: Extension{
Order: newInt(-2),
},
},
"aaa1": {
Type: StringType,
Extension: Extension{
Order: newInt(1),
},
},
"aaa2": {
Type: StringType,
Extension: Extension{
Order: newInt(2),
},
},
},
}
// Test that the properties are ordered by order and then by name.
properties := s.OrderedProperties()
names := make([]string, len(properties))
for i, property := range properties {
names[i] = property.Name
}
assert.Equal(t, []string{"zzz2", "zzz1", "aaa1", "aaa2", "bbb", "ccc", "ddd"}, names)
}