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