...

Source file src/dario.cat/mergo/issue125_test.go

Documentation: dario.cat/mergo

     1  package mergo_test
     2  
     3  import (
     4  	"encoding/json"
     5  	"testing"
     6  
     7  	"dario.cat/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