github.com/rakutentech/cli@v6.12.5-0.20151006231303-24468b65536e+incompatible/generic/map_test.go (about)

     1  package generic_test
     2  
     3  import (
     4  	. "github.com/cloudfoundry/cli/generic"
     5  	. "github.com/onsi/ginkgo"
     6  	. "github.com/onsi/gomega"
     7  )
     8  
     9  func init() {
    10  	Describe("generic maps", func() {
    11  		It("deep merges, with the last map taking precedence in conflicts", func() {
    12  			map1 := NewMap(map[interface{}]interface{}{
    13  				"key1": "val1",
    14  				"key2": "val2",
    15  				"nest1": map[interface{}]interface{}{
    16  					"nestKey1": "nest1Val1",
    17  					"nestKey2": "nest1Val2",
    18  				},
    19  				"nest2": []interface{}{
    20  					"nest2Val1",
    21  				},
    22  			})
    23  
    24  			map2 := NewMap(map[interface{}]interface{}{
    25  				"key1": "newVal1",
    26  				"nest1": map[interface{}]interface{}{
    27  					"nestKey1": "newNest1Val1",
    28  				},
    29  				"nest2": []interface{}{
    30  					"something",
    31  				},
    32  			})
    33  
    34  			expectedMap := NewMap(map[interface{}]interface{}{
    35  				"key1": "newVal1",
    36  				"key2": "val2",
    37  				"nest1": NewMap(map[interface{}]interface{}{
    38  					"nestKey1": "newNest1Val1",
    39  					"nestKey2": "nest1Val2",
    40  				}),
    41  				"nest2": []interface{}{
    42  					"nest2Val1",
    43  					"something",
    44  				},
    45  			})
    46  
    47  			mergedMap := DeepMerge(map1, map2)
    48  			Expect(mergedMap).To(Equal(expectedMap))
    49  		})
    50  	})
    51  }