...

Source file src/github.com/imdario/mergo/issue38_test.go

Documentation: github.com/imdario/mergo

     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