Implementing proto.Clone

This commit is contained in:
Evgeniy Kulikov 2020-07-03 09:12:02 +03:00
parent 2456521240
commit d45548c43b
No known key found for this signature in database
GPG key ID: BF6AEE0A2A699BF2
11 changed files with 129 additions and 10 deletions

View file

@ -23,6 +23,19 @@ func TestSGID(t *testing.T) {
require.NoError(t, sgid2.Unmarshal(data))
require.Equal(t, sgid1, sgid2)
})
t.Run("check that proto.Clone works like expected", func(t *testing.T) {
var (
sgid1 UUID
sgid2 *UUID
)
sgid1, err := NewSGID()
require.NoError(t, err)
sgid2 = proto.Clone(&sgid1).(*SGID)
require.Equal(t, sgid1, *sgid2)
})
}
func TestUUID(t *testing.T) {
@ -80,6 +93,18 @@ func TestOwnerID(t *testing.T) {
require.NoError(t, u2.Unmarshal(data))
require.Equal(t, u1, u2)
})
t.Run("check that proto.Clone works like expected", func(t *testing.T) {
var u2 *OwnerID
key := test.DecodeKey(0)
u1, err := NewOwnerID(&key.PublicKey)
require.NoError(t, err)
u2 = proto.Clone(&u1).(*OwnerID)
require.Equal(t, u1, *u2)
})
}
func TestAddress(t *testing.T) {
@ -109,4 +134,8 @@ func TestAddress(t *testing.T) {
actual, err := ParseAddress(expect)
require.NoError(t, err)
require.Equal(t, expect, actual.String())
addr := proto.Clone(actual).(*Address)
require.Equal(t, actual, addr)
require.Equal(t, expect, addr.String())
}