github.com/yankunsam/loki/v2@v2.6.3-0.20220817130409-389df5235c27/pkg/util/mapmerge_test.go (about) 1 package util 2 3 import ( 4 "testing" 5 6 "github.com/stretchr/testify/require" 7 ) 8 9 func TestMerge(t *testing.T) { 10 var base = map[string]string{ 11 "a": "b", 12 "c": "10", 13 "y": "z", 14 } 15 16 var overlay = map[string]string{ 17 "a": "z", 18 "c": "10", 19 "d": "e", 20 } 21 22 merged := MergeMaps(base, overlay) 23 require.Equal(t, merged, map[string]string{ 24 "a": "z", 25 "c": "10", 26 "d": "e", 27 "y": "z", 28 }) 29 } 30 31 func TestCopy(t *testing.T) { 32 var base = map[string]string{ 33 "a": "b", 34 "c": "10", 35 "y": "z", 36 } 37 38 copy := CopyMap(base) 39 require.EqualValues(t, base, copy) 40 require.NotSame(t, base, copy) 41 } 42 43 func TestNilCopy(t *testing.T) { 44 var base map[string]string 45 46 copy := CopyMap(base) 47 require.EqualValues(t, base, copy) 48 require.NotSame(t, base, copy) 49 } 50 51 func TestNilBase(t *testing.T) { 52 var overlay = map[string]string{ 53 "a": "z", 54 "c": "10", 55 "d": "e", 56 } 57 58 merged := MergeMaps(nil, overlay) 59 require.Equal(t, merged, overlay) 60 } 61 62 func TestNilOverlay(t *testing.T) { 63 var base = map[string]string{ 64 "a": "b", 65 "c": "10", 66 "y": "z", 67 } 68 69 merged := MergeMaps(base, nil) 70 require.Equal(t, merged, base) 71 } 72 73 // TestImmutability tests that both given maps are unaltered 74 func TestImmutability(t *testing.T) { 75 var base = map[string]string{ 76 "a": "b", 77 "c": "10", 78 "y": "z", 79 } 80 81 var overlay = map[string]string{ 82 "a": "z", 83 "c": "10", 84 "d": "e", 85 } 86 87 beforeBase := CopyMap(base) 88 beforeOverlay := CopyMap(overlay) 89 require.EqualValues(t, base, beforeBase) 90 require.EqualValues(t, overlay, beforeOverlay) 91 92 MergeMaps(base, overlay) 93 94 require.EqualValues(t, base, beforeBase) 95 require.EqualValues(t, overlay, beforeOverlay) 96 }