about summary refs log tree commit diff
path: root/util/util_test.go
diff options
context:
space:
mode:
authorVincent Ambo <tazjin@gmail.com>2017-02-10T19·52+0100
committerVincent Ambo <tazjin@gmail.com>2017-02-14T18·12+0100
commit7a930aad113703ae3a829bbc1253d218c89f1f20 (patch)
treebbab375c5b7e900d7d55b1296a8c8b66238c3caf /util/util_test.go
parentc181decd9d6584ecd7b5d5596f25f7739442a328 (diff)
feat util: Add silly map-merge function that should be in the stdlib
Diffstat (limited to 'util/util_test.go')
-rw-r--r--util/util_test.go74
1 files changed, 74 insertions, 0 deletions
diff --git a/util/util_test.go b/util/util_test.go
new file mode 100644
index 000000000000..c0805533576a
--- /dev/null
+++ b/util/util_test.go
@@ -0,0 +1,74 @@
+package util
+
+import (
+	"testing"
+	"reflect"
+)
+
+func TestMergeWithEmptyMap(t *testing.T) {
+	testMap := map[string]interface{}{
+		"foo": "bar",
+	}
+
+	empty := make(map[string]interface{})
+
+	res1 := Merge(&testMap, &empty)
+	res2 := Merge(&empty, &testMap)
+
+	if res1 != &testMap || res2 != &testMap {
+		t.Error("A new map was returned incorrectly.")
+		t.Fail()
+	}
+}
+
+func TestMergeWithNilMap(t *testing.T) {
+	testMap := map[string]interface{}{
+		"foo": "bar",
+	}
+
+	res1 := Merge(&testMap, nil)
+	res2 := Merge(nil, &testMap)
+
+	if res1 != &testMap || res2 != &testMap {
+		t.Error("A new map was returned incorrectly.")
+		t.Fail()
+	}
+}
+
+func TestMergeMaps(t *testing.T) {
+	map1 := map[string]interface{}{
+		"foo": "bar",
+	}
+
+	map2 := map[string]interface{}{
+		"bar": "baz",
+	}
+
+	result := Merge(&map1, &map2)
+	expected := map[string]interface{}{
+		"foo": "bar",
+		"bar": "baz",
+	}
+
+	if !reflect.DeepEqual(*result, expected) {
+		t.Error("Maps were merged incorrectly.")
+		t.Fail()
+	}
+}
+
+func TestMergeMapsPrecedence(t *testing.T) {
+	map1 := map[string]interface{}{
+		"foo": "incorrect",
+	}
+
+	map2 := map[string]interface{}{
+		"foo": "correct",
+	}
+
+	result := Merge(&map1, &map2)
+
+	if (*result)["foo"] != "correct" {
+		t.Error("Map merge precedence test failed.")
+		t.Fail()
+	}
+}