forked from TrueCloudLab/frostfs-sdk-go
[#64] object: move package from neofs-api-go
Also, remove deprecated method. Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
This commit is contained in:
parent
bdb99877f6
commit
39d3317ef6
28 changed files with 3268 additions and 0 deletions
88
object/splitinfo_test.go
Normal file
88
object/splitinfo_test.go
Normal file
|
@ -0,0 +1,88 @@
|
|||
package object_test
|
||||
|
||||
import (
|
||||
"crypto/rand"
|
||||
"testing"
|
||||
|
||||
objv2 "github.com/nspcc-dev/neofs-api-go/v2/object"
|
||||
"github.com/nspcc-dev/neofs-sdk-go/object"
|
||||
"github.com/stretchr/testify/require"
|
||||
)
|
||||
|
||||
func TestSplitInfo(t *testing.T) {
|
||||
s := object.NewSplitInfo()
|
||||
splitID := object.NewSplitID()
|
||||
lastPart := generateID()
|
||||
link := generateID()
|
||||
|
||||
s.SetSplitID(splitID)
|
||||
require.Equal(t, splitID, s.SplitID())
|
||||
|
||||
s.SetLastPart(lastPart)
|
||||
require.Equal(t, lastPart, s.LastPart())
|
||||
|
||||
s.SetLink(link)
|
||||
require.Equal(t, link, s.Link())
|
||||
|
||||
t.Run("to and from v2", func(t *testing.T) {
|
||||
v2 := s.ToV2()
|
||||
newS := object.NewSplitInfoFromV2(v2)
|
||||
|
||||
require.Equal(t, s, newS)
|
||||
})
|
||||
|
||||
t.Run("marshal and unmarshal", func(t *testing.T) {
|
||||
data, err := s.Marshal()
|
||||
require.NoError(t, err)
|
||||
|
||||
newS := object.NewSplitInfo()
|
||||
|
||||
err = newS.Unmarshal(data)
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, s, newS)
|
||||
})
|
||||
}
|
||||
|
||||
func generateID() *object.ID {
|
||||
var buf [32]byte
|
||||
_, _ = rand.Read(buf[:])
|
||||
|
||||
id := object.NewID()
|
||||
id.SetSHA256(buf)
|
||||
|
||||
return id
|
||||
}
|
||||
|
||||
func TestNewSplitInfoFromV2(t *testing.T) {
|
||||
t.Run("from nil", func(t *testing.T) {
|
||||
var x *objv2.SplitInfo
|
||||
|
||||
require.Nil(t, object.NewSplitInfoFromV2(x))
|
||||
})
|
||||
}
|
||||
|
||||
func TestSplitInfo_ToV2(t *testing.T) {
|
||||
t.Run("nil", func(t *testing.T) {
|
||||
var x *object.SplitInfo
|
||||
|
||||
require.Nil(t, x.ToV2())
|
||||
})
|
||||
}
|
||||
|
||||
func TestNewSplitInfo(t *testing.T) {
|
||||
t.Run("default values", func(t *testing.T) {
|
||||
si := object.NewSplitInfo()
|
||||
|
||||
// check initial values
|
||||
require.Nil(t, si.SplitID())
|
||||
require.Nil(t, si.LastPart())
|
||||
require.Nil(t, si.Link())
|
||||
|
||||
// convert to v2 message
|
||||
siV2 := si.ToV2()
|
||||
|
||||
require.Nil(t, siV2.GetSplitID())
|
||||
require.Nil(t, siV2.GetLastPart())
|
||||
require.Nil(t, siV2.GetLink())
|
||||
})
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue