1package mergo_test 2 3import ( 4 "testing" 5 "time" 6 7 "github.com/imdario/mergo" 8) 9 10type structWithoutTimePointer struct { 11 Created time.Time 12} 13 14func TestIssue38Merge(t *testing.T) { 15 dst := structWithoutTimePointer{ 16 time.Now(), 17 } 18 19 expected := time.Date(2009, time.November, 10, 23, 0, 0, 0, time.UTC) 20 src := structWithoutTimePointer{ 21 expected, 22 } 23 24 if err := mergo.Merge(&dst, src); err != nil { 25 t.Errorf("Error while merging %s", err) 26 } 27 28 if dst.Created == src.Created { 29 t.Errorf("Created merged unexpectedly: dst.Created(%v) == src.Created(%v)", dst.Created, src.Created) 30 } 31} 32 33func TestIssue38MergeEmptyStruct(t *testing.T) { 34 dst := structWithoutTimePointer{} 35 36 expected := time.Date(2009, time.November, 10, 23, 0, 0, 0, time.UTC) 37 src := structWithoutTimePointer{ 38 expected, 39 } 40 41 if err := mergo.Merge(&dst, src); err != nil { 42 t.Errorf("Error while merging %s", err) 43 } 44 45 if dst.Created == src.Created { 46 t.Errorf("Created merged unexpectedly: dst.Created(%v) == src.Created(%v)", dst.Created, src.Created) 47 } 48} 49 50func TestIssue38MergeWithOverwrite(t *testing.T) { 51 dst := structWithoutTimePointer{ 52 time.Now(), 53 } 54 55 expected := time.Date(2009, time.November, 10, 23, 0, 0, 0, time.UTC) 56 src := structWithoutTimePointer{ 57 expected, 58 } 59 60 if err := mergo.MergeWithOverwrite(&dst, src); err != nil { 61 t.Errorf("Error while merging %s", err) 62 } 63 64 if dst.Created != src.Created { 65 t.Errorf("Created not merged in properly: dst.Created(%v) != src.Created(%v)", dst.Created, src.Created) 66 } 67} 68