databricks-cli/libs/dyn/yamlsaver/utils_test.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)
}