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