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