You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
77 lines
2.1 KiB
77 lines
2.1 KiB
package tests |
|
|
|
import ( |
|
"testing" |
|
"time" |
|
"unsafe" |
|
|
|
"github.com/stretchr/testify/assert" |
|
|
|
"go-common/app/tool/gengo/cmd/deepcopy-gen/examples/api/v1" |
|
"go-common/app/tool/gengo/cmd/deepcopy-gen/examples/model" |
|
xtime "go-common/library/time" |
|
) |
|
|
|
func TestCopyFromAllBuitin(t *testing.T) { |
|
base := &model.MemberBase{ |
|
Mid: 1, |
|
Name: "name", |
|
Sex: 1, |
|
Face: "aaa.jpg", |
|
Sign: "sign", |
|
Rank: 10000, |
|
Birthday: xtime.Time(time.Now().Unix()), |
|
} |
|
reply := new(v1.BaseInfoReply) |
|
reply.DeepCopyFromMemberBase(base) |
|
|
|
assert.Equal(t, base.Mid, reply.Mid) |
|
assert.Equal(t, base.Name, reply.Name) |
|
assert.Equal(t, base.Sex, reply.Sex) |
|
assert.Equal(t, base.Face, reply.Face) |
|
assert.Equal(t, base.Sign, reply.Sign) |
|
assert.Equal(t, base.Rank, reply.Rank) |
|
assert.Equal(t, base.Birthday, reply.Birthday) |
|
|
|
copied := reply.DeepCopyAsMemberBase() |
|
assert.Equal(t, base, copied) |
|
} |
|
|
|
func TestCopyFromMap(t *testing.T) { |
|
names := &model.Names{ |
|
Names: map[int64]string{ |
|
1: "1", |
|
2: "2", |
|
}, |
|
} |
|
reply := new(v1.NamesReply) |
|
reply.DeepCopyFromNames(names) |
|
|
|
assert.Equal(t, names.Names[1], reply.Names[1]) |
|
assert.Equal(t, names.Names[2], reply.Names[2]) |
|
assert.Equal(t, unsafe.Pointer(&names.Names), unsafe.Pointer(&names.Names)) |
|
assert.Equal(t, unsafe.Pointer(&reply.Names), unsafe.Pointer(&reply.Names)) |
|
assert.NotEqual(t, unsafe.Pointer(&names.Names), unsafe.Pointer(&reply.Names)) |
|
|
|
names.Names[3] = "3" |
|
assert.Contains(t, names.Names, int64(3)) |
|
assert.NotContains(t, reply.Names, int64(3)) |
|
} |
|
|
|
func TestCopyFromSlice(t *testing.T) { |
|
mids := &model.Mids{ |
|
Mids: []int64{1, 2}, |
|
} |
|
reply := new(v1.MidsReply) |
|
reply.DeepCopyFromMids(mids) |
|
|
|
assert.Equal(t, mids.Mids[0], reply.Mids[0]) |
|
assert.Equal(t, mids.Mids[1], reply.Mids[1]) |
|
assert.Equal(t, unsafe.Pointer(&mids.Mids), unsafe.Pointer(&mids.Mids)) |
|
assert.Equal(t, unsafe.Pointer(&reply.Mids), unsafe.Pointer(&reply.Mids)) |
|
assert.NotEqual(t, unsafe.Pointer(&mids.Mids), unsafe.Pointer(&reply.Mids)) |
|
|
|
mids.Mids = append(mids.Mids, 3) |
|
assert.Equal(t, mids.Mids[2], int64(3)) |
|
assert.NotContains(t, reply.Mids, int64(3)) |
|
}
|
|
|