...
1 package mergo_test
2
3 import (
4 "testing"
5 "time"
6
7 "github.com/imdario/mergo"
8 )
9
10 type structWithoutTimePointer struct {
11 Created time.Time
12 }
13
14 func 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
33 func 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
50 func 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
View as plain text