Index: golang-github-imdario-mergo/mergo_test.go
===================================================================
--- golang-github-imdario-mergo.orig/mergo_test.go
+++ golang-github-imdario-mergo/mergo_test.go
@@ -6,11 +6,8 @@
package mergo
import (
- "io/ioutil"
"reflect"
"testing"
-
- "gopkg.in/yaml.v1"
)
type simpleTest struct {
@@ -311,131 +308,3 @@ func TestMaps(t *testing.T) {
t.Fatalf(`n overwritten in m: m["c"].Value(%d) != n["c"].Value(%d)`, m["c"].Value, n["c"].Value)
}
}
-
-func TestYAMLMaps(t *testing.T) {
- thing := loadYAML("testdata/thing.yml")
- license := loadYAML("testdata/license.yml")
- ft := thing["fields"].(map[interface{}]interface{})
- fl := license["fields"].(map[interface{}]interface{})
- expectedLength := len(ft) + len(fl)
- if err := Merge(&license, thing); err != nil {
- t.Fatal(err.Error())
- }
- currentLength := len(license["fields"].(map[interface{}]interface{}))
- if currentLength != expectedLength {
- t.Fatalf(`thing not merged in license properly, license must have %d elements instead of %d`, expectedLength, currentLength)
- }
- fields := license["fields"].(map[interface{}]interface{})
- if _, ok := fields["id"]; !ok {
- t.Fatalf(`thing not merged in license properly, license must have a new id field from thing`)
- }
-}
-
-func TestTwoPointerValues(t *testing.T) {
- a := &simpleTest{}
- b := &simpleTest{42}
- if err := Merge(a, b); err != nil {
- t.Fatalf(`Boom. You crossed the streams: %s`, err)
- }
-}
-
-func TestMap(t *testing.T) {
- a := complexTest{}
- a.Id = "athing"
- c := moreComplextText{a, simpleTest{}, simpleTest{}}
- b := map[string]interface{}{
- "ct": map[string]interface{}{
- "st": map[string]interface{}{
- "value": 42,
- },
- "sz": 1,
- "id": "bthing",
- },
- "st": &simpleTest{144}, // Mapping a reference
- "zt": simpleTest{299}, // Mapping a missing field (zt doesn't exist)
- "nt": simpleTest{3},
- }
- if err := Map(&c, b); err != nil {
- t.FailNow()
- }
- m := b["ct"].(map[string]interface{})
- n := m["st"].(map[string]interface{})
- o := b["st"].(*simpleTest)
- p := b["nt"].(simpleTest)
- if c.Ct.St.Value != 42 {
- t.Fatalf("b not merged in properly: c.Ct.St.Value(%d) != b.Ct.St.Value(%d)", c.Ct.St.Value, n["value"])
- }
- if c.St.Value != 144 {
- t.Fatalf("b not merged in properly: c.St.Value(%d) != b.St.Value(%d)", c.St.Value, o.Value)
- }
- if c.Nt.Value != 3 {
- t.Fatalf("b not merged in properly: c.Nt.Value(%d) != b.Nt.Value(%d)", c.St.Value, p.Value)
- }
- if c.Ct.sz == 1 {
- t.Fatalf("a's private field sz not preserved from merge: c.Ct.sz(%d) == b.Ct.sz(%d)", c.Ct.sz, m["sz"])
- }
- if c.Ct.Id == m["id"] {
- t.Fatalf("a's field Id merged unexpectedly: c.Ct.Id(%s) == b.Ct.Id(%s)", c.Ct.Id, m["id"])
- }
-}
-
-func TestSimpleMap(t *testing.T) {
- a := simpleTest{}
- b := map[string]interface{}{
- "value": 42,
- }
- if err := Map(&a, b); err != nil {
- t.FailNow()
- }
- if a.Value != 42 {
- t.Fatalf("b not merged in properly: a.Value(%d) != b.Value(%v)", a.Value, b["value"])
- }
-}
-
-type pointerMapTest struct {
- A int
- hidden int
- B *simpleTest
-}
-
-func TestBackAndForth(t *testing.T) {
- pt := pointerMapTest{42, 1, &simpleTest{66}}
- m := make(map[string]interface{})
- if err := Map(&m, pt); err != nil {
- t.FailNow()
- }
- var (
- v interface{}
- ok bool
- )
- if v, ok = m["a"]; v.(int) != pt.A || !ok {
- t.Fatalf("pt not merged in properly: m[`a`](%d) != pt.A(%d)", v, pt.A)
- }
- if v, ok = m["b"]; !ok {
- t.Fatalf("pt not merged in properly: B is missing in m")
- }
- var st *simpleTest
- if st = v.(*simpleTest); st.Value != 66 {
- t.Fatalf("something went wrong while mapping pt on m, B wasn't copied")
- }
- bpt := pointerMapTest{}
- if err := Map(&bpt, m); err != nil {
- t.Fatal(err)
- }
- if bpt.A != pt.A {
- t.Fatalf("pt not merged in properly: bpt.A(%d) != pt.A(%d)", bpt.A, pt.A)
- }
- if bpt.hidden == pt.hidden {
- t.Fatalf("pt unexpectedly merged: bpt.hidden(%d) == pt.hidden(%d)", bpt.hidden, pt.hidden)
- }
- if bpt.B.Value != pt.B.Value {
- t.Fatalf("pt not merged in properly: bpt.B.Value(%d) != pt.B.Value(%d)", bpt.B.Value, pt.B.Value)
- }
-}
-
-func loadYAML(path string) (m map[string]interface{}) {
- m = make(map[string]interface{})
- raw, _ := ioutil.ReadFile(path)
- _ = yaml.Unmarshal(raw, &m)
- return
-}