Skip to content

Commit

Permalink
Adding failing test from #9. Thanks @mikedanese.
Browse files Browse the repository at this point in the history
  • Loading branch information
darccio committed Apr 6, 2015
1 parent a5ed71b commit f4940f4
Showing 1 changed file with 61 additions and 0 deletions.
61 changes: 61 additions & 0 deletions mergo_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -109,6 +109,67 @@ func TestPointerStruct(t *testing.T) {
}
}

type embeddingStruct struct {
embeddedStruct
}

type embeddedStruct struct {
A string
}

func TestEmbeddedStruct(t *testing.T) {
tests := []struct {
src embeddingStruct
dst embeddingStruct
expected embeddingStruct
}{
{
src: embeddingStruct{
embeddedStruct{"foo"},
},
dst: embeddingStruct{
embeddedStruct{""},
},
expected: embeddingStruct{
embeddedStruct{"foo"},
},
},
{
src: embeddingStruct{
embeddedStruct{""},
},
dst: embeddingStruct{
embeddedStruct{"bar"},
},
expected: embeddingStruct{
embeddedStruct{"bar"},
},
},
{
src: embeddingStruct{
embeddedStruct{"foo"},
},
dst: embeddingStruct{
embeddedStruct{"bar"},
},
expected: embeddingStruct{
embeddedStruct{"bar"},
},
},
}

for _, test := range tests {
err := Merge(&test.dst, test.src)
if err != nil {
t.Errorf("unexpected error: %v", err)
continue
}
if !reflect.DeepEqual(test.dst, test.expected) {
t.Errorf("unexpected output\nexpected:\n%+v\nsaw:\n%+v\n", test.expected, test.dst)
}
}
}

func TestPointerStructNil(t *testing.T) {
a := pointerTest{nil}
b := pointerTest{&simpleTest{19}}
Expand Down

0 comments on commit f4940f4

Please sign in to comment.