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 }