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) }