mirror of https://github.com/databricks/cli.git
58 lines
1.4 KiB
Go
58 lines
1.4 KiB
Go
package yamlsaver
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/databricks/cli/libs/dyn"
|
|
assert "github.com/databricks/cli/libs/dyn/dynassert"
|
|
)
|
|
|
|
func TestConvertToMapValueWithOrder(t *testing.T) {
|
|
type test struct {
|
|
Name string `json:"name"`
|
|
Map map[string]string `json:"map"`
|
|
List []string `json:"list"`
|
|
LongNameField string `json:"long_name_field"`
|
|
ForceSendFields []string `json:"-"`
|
|
Format string `json:"format"`
|
|
}
|
|
|
|
v := &test{
|
|
Name: "test",
|
|
Map: map[string]string{
|
|
"key1": "value1",
|
|
"key2": "value2",
|
|
},
|
|
List: []string{"a", "b", "c"},
|
|
ForceSendFields: []string{
|
|
"Name",
|
|
},
|
|
LongNameField: "long name goes here",
|
|
}
|
|
result, err := ConvertToMapValue(v, NewOrder([]string{"list", "name", "map"}), []string{"format"}, map[string]dyn.Value{})
|
|
assert.NoError(t, err)
|
|
|
|
assert.Equal(t, dyn.V(map[string]dyn.Value{
|
|
"list": dyn.NewValue(
|
|
[]dyn.Value{
|
|
dyn.V("a"),
|
|
dyn.V("b"),
|
|
dyn.V("c"),
|
|
},
|
|
[]dyn.Location{{Line: -3}},
|
|
),
|
|
"name": dyn.NewValue(
|
|
"test",
|
|
[]dyn.Location{{Line: -2}},
|
|
),
|
|
"map": dyn.NewValue(
|
|
map[string]dyn.Value{
|
|
"key1": dyn.V("value1"),
|
|
"key2": dyn.V("value2"),
|
|
},
|
|
[]dyn.Location{{Line: -1}},
|
|
),
|
|
"long_name_field": dyn.NewValue("long name goes here", []dyn.Location{{Line: 1}}),
|
|
}), result)
|
|
}
|