package object_test import ( "crypto/rand" "errors" "testing" objectV2 "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/object" "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/refs" "git.frostfs.info/TrueCloudLab/frostfs-sdk-go/object" "github.com/stretchr/testify/require" ) func TestNewSplitInfoError(t *testing.T) { var ( si = generateSplitInfo() err error = object.NewSplitInfoError(si) expectedErr *object.SplitInfoError ) require.True(t, errors.As(err, &expectedErr)) siErr, ok := err.(*object.SplitInfoError) require.True(t, ok) require.Equal(t, si, siErr.SplitInfo()) } func generateSplitInfo() *object.SplitInfo { si := object.NewSplitInfo() si.SetSplitID(object.NewSplitID()) si.SetLastPart(generateID()) si.SetLink(generateID()) return si } func TestNewECInfoError(t *testing.T) { var ( ei = generateECInfo() err error = object.NewECInfoError(ei) expectedErr *object.ECInfoError ) require.True(t, errors.As(err, &expectedErr)) eiErr, ok := err.(*object.ECInfoError) require.True(t, ok) require.Equal(t, ei, eiErr.ECInfo()) } func generateECInfo() *object.ECInfo { ei := object.NewECInfo() ei.Chunks = append(ei.Chunks, objectV2.ECChunk{ ID: generateV2ID(), Index: 0, Total: 2, }) ei.Chunks = append(ei.Chunks, objectV2.ECChunk{ ID: generateV2ID(), Index: 1, Total: 2, }) return ei } func generateV2ID() refs.ObjectID { var buf [32]byte _, _ = rand.Read(buf[:]) var id refs.ObjectID id.SetValue(buf[:]) return id }