[#168] refs: Implement binary/JSON encoders/decoders on Checksum
Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
This commit is contained in:
parent
4b55b06780
commit
93df2fd765
6 changed files with 112 additions and 6 deletions
|
@ -9,6 +9,14 @@ import (
|
|||
"github.com/stretchr/testify/require"
|
||||
)
|
||||
|
||||
func randSHA256(t *testing.T) [sha256.Size]byte {
|
||||
cSHA256 := [sha256.Size]byte{}
|
||||
_, err := rand.Read(cSHA256[:])
|
||||
require.NoError(t, err)
|
||||
|
||||
return cSHA256
|
||||
}
|
||||
|
||||
func TestChecksum(t *testing.T) {
|
||||
c := NewChecksum()
|
||||
|
||||
|
@ -58,3 +66,28 @@ func TestEqualChecksums(t *testing.T) {
|
|||
|
||||
require.False(t, EqualChecksums(cs1, cs2))
|
||||
}
|
||||
|
||||
func TestChecksumEncoding(t *testing.T) {
|
||||
cs := NewChecksum()
|
||||
cs.SetSHA256(randSHA256(t))
|
||||
|
||||
t.Run("binary", func(t *testing.T) {
|
||||
data, err := cs.Marshal()
|
||||
require.NoError(t, err)
|
||||
|
||||
c2 := NewChecksum()
|
||||
require.NoError(t, c2.Unmarshal(data))
|
||||
|
||||
require.Equal(t, cs, c2)
|
||||
})
|
||||
|
||||
t.Run("json", func(t *testing.T) {
|
||||
data, err := cs.MarshalJSON()
|
||||
require.NoError(t, err)
|
||||
|
||||
cs2 := NewChecksum()
|
||||
require.NoError(t, cs2.UnmarshalJSON(data))
|
||||
|
||||
require.Equal(t, cs, cs2)
|
||||
})
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue