1package mergo 2 3import ( 4 "encoding/json" 5 "testing" 6) 7 8var ( 9 data = `{"FirstSlice":[], "SecondSlice": null}` 10) 11 12type settings struct { 13 FirstSlice []string `json:"FirstSlice"` 14 SecondSlice []string `json:"SecondSlice"` 15} 16 17func TestIssue125MergeWithOverwrite(t *testing.T) { 18 19 defaultSettings := settings{ 20 FirstSlice: []string{}, 21 SecondSlice: []string{}, 22 } 23 24 var something settings 25 if err := json.Unmarshal([]byte(data), &something); err != nil { 26 t.Errorf("Error while Unmarshalling maprequest: %s", err) 27 } 28 if err := Merge(&something, defaultSettings, WithOverrideEmptySlice); err != nil { 29 t.Errorf("Error while merging: %s", err) 30 } 31 if something.FirstSlice == nil { 32 t.Error("Invalid merging first slice") 33 } 34 if something.SecondSlice == nil { 35 t.Error("Invalid merging second slice") 36 } 37} 38