From b50697063693708f9ff37232d73cf42b39a35c5d Mon Sep 17 00:00:00 2001 From: Pavel Karpy Date: Tue, 8 Jun 2021 21:12:17 +0300 Subject: [PATCH] [#302] pkg/signature: Convert nil `Signature` to nil message Document that `Signature.ToV2` method return `nil` when called on `nil`. Document that `NewSignatureFromV2` function return `nil` when called on `nil`. Write corresponding unit tests. Signed-off-by: Pavel Karpy --- pkg/signature.go | 5 +++++ pkg/signature_test.go | 17 +++++++++++++++++ 2 files changed, 22 insertions(+) diff --git a/pkg/signature.go b/pkg/signature.go index 7cf318d..1847dcd 100644 --- a/pkg/signature.go +++ b/pkg/signature.go @@ -8,6 +8,8 @@ import ( type Signature refs.Signature // NewSignatureFromV2 wraps v2 Signature message to Signature. +// +// Nil refs.Signature converts to nil. func NewSignatureFromV2(sV2 *refs.Signature) *Signature { return (*Signature)(sV2) } @@ -39,6 +41,9 @@ func (s *Signature) SetSign(v []byte) { (*refs.Signature)(s).SetSign(v) } +// ToV2 converts Signature to v2 Signature message. +// +// Nil Signature converts to nil. func (s *Signature) ToV2() *refs.Signature { return (*refs.Signature)(s) } diff --git a/pkg/signature_test.go b/pkg/signature_test.go index 72196c8..5b8c32f 100644 --- a/pkg/signature_test.go +++ b/pkg/signature_test.go @@ -1,6 +1,7 @@ package pkg import ( + "github.com/nspcc-dev/neofs-api-go/v2/refs" "testing" "github.com/stretchr/testify/require" @@ -31,3 +32,19 @@ func TestSignatureEncoding(t *testing.T) { require.Equal(t, s, s2) }) } + +func TestNewSignatureFromV2(t *testing.T) { + t.Run("from nil", func(t *testing.T) { + var x *refs.Signature + + require.Nil(t, NewSignatureFromV2(x)) + }) +} + +func TestSignature_ToV2(t *testing.T) { + t.Run("nil", func(t *testing.T) { + var x *Signature + + require.Nil(t, x.ToV2()) + }) +}