bilibili-backup/app/tool/gengo/cmd/deepcopy-gen/examples/tests/example_test.go

78 lines
2.1 KiB
Go
Raw Permalink Normal View History

2019-04-22 10:59:20 +08:00
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))
}