mirror of https://github.com/databricks/cli.git
61 lines
1.0 KiB
Go
61 lines
1.0 KiB
Go
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)
|
|
}
|