github.com/argoproj/argo-cd/v3@v3.2.1/util/collections/maps_test.go (about)

     1  package collections
     2  
     3  import (
     4  	"testing"
     5  
     6  	"github.com/stretchr/testify/assert"
     7  )
     8  
     9  func TestMergeStringMaps(t *testing.T) {
    10  	tests := []struct {
    11  		name string
    12  		args []map[string]string
    13  		want map[string]string
    14  	}{
    15  		{
    16  			name: "test single map",
    17  			args: []map[string]string{
    18  				{"foo": "bar"},
    19  				{"foo1": "bar1"},
    20  			},
    21  			want: map[string]string{
    22  				"foo":  "bar",
    23  				"foo1": "bar1",
    24  			},
    25  		},
    26  		{
    27  			name: "test contains nil map",
    28  			args: []map[string]string{
    29  				{"foo": "bar"},
    30  				nil,
    31  				{"foo1": "bar1"},
    32  			},
    33  			want: map[string]string{
    34  				"foo":  "bar",
    35  				"foo1": "bar1",
    36  			},
    37  		},
    38  		{
    39  			name: "test contains multiple maps",
    40  			args: []map[string]string{
    41  				{"foo": "bar"},
    42  				{
    43  					"foo1": "bar1",
    44  					"foo2": "bar2",
    45  				},
    46  				{
    47  					"foo":  "bar1",
    48  					"foo2": "bar2",
    49  					"foo3": "bar3",
    50  				},
    51  			},
    52  			want: map[string]string{
    53  				"foo":  "bar1",
    54  				"foo1": "bar1",
    55  				"foo2": "bar2",
    56  				"foo3": "bar3",
    57  			},
    58  		},
    59  	}
    60  	for _, tt := range tests {
    61  		t.Run(tt.name, func(t *testing.T) {
    62  			assert.Equalf(t, tt.want, Merge(tt.args...), "Merge[string, string](%v)", tt.args)
    63  		})
    64  	}
    65  }