1 package awsutil_test
2
3 import (
4 "testing"
5
6 "github.com/aws/aws-sdk-go-v2/internal/awsutil"
7 "github.com/aws/smithy-go/ptr"
8 )
9
10 func TestDeepEqual(t *testing.T) {
11 type StringAlias string
12
13 cases := []struct {
14 a, b interface{}
15 equal bool
16 }{
17 {"a", "a", true},
18 {"a", "b", false},
19 {"a", ptr.String(""), false},
20 {"a", nil, false},
21 {"a", ptr.String("a"), true},
22 {(*bool)(nil), (*bool)(nil), true},
23 {(*bool)(nil), (*string)(nil), false},
24 {nil, nil, true},
25 {StringAlias("abc"), "abc", true},
26 {StringAlias("abc"), "efg", false},
27 {StringAlias("abc"), ptr.String("abc"), true},
28 {"abc", StringAlias("abc"), true},
29 {StringAlias("abc"), StringAlias("abc"), true},
30 {StringAlias("abc"), StringAlias("efg"), false},
31 }
32
33 for i, c := range cases {
34 if awsutil.DeepEqual(c.a, c.b) != c.equal {
35 t.Errorf("%d, a:%v b:%v, %t", i, c.a, c.b, c.equal)
36 }
37 }
38 }
39
View as plain text