git.frostfs.info/TrueCloudLab/frostfs-sdk-go@v0.0.0-20241022124111-5361f0ecebd3/object/error_test.go (about) 1 package object_test 2 3 import ( 4 "crypto/rand" 5 "errors" 6 "testing" 7 8 objectV2 "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/object" 9 "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/refs" 10 "git.frostfs.info/TrueCloudLab/frostfs-sdk-go/object" 11 "github.com/stretchr/testify/require" 12 ) 13 14 func TestNewSplitInfoError(t *testing.T) { 15 var ( 16 si = generateSplitInfo() 17 18 err error = object.NewSplitInfoError(si) 19 expectedErr *object.SplitInfoError 20 ) 21 22 require.True(t, errors.As(err, &expectedErr)) 23 24 siErr, ok := err.(*object.SplitInfoError) 25 require.True(t, ok) 26 require.Equal(t, si, siErr.SplitInfo()) 27 } 28 29 func generateSplitInfo() *object.SplitInfo { 30 si := object.NewSplitInfo() 31 si.SetSplitID(object.NewSplitID()) 32 si.SetLastPart(generateID()) 33 si.SetLink(generateID()) 34 35 return si 36 } 37 38 func TestNewECInfoError(t *testing.T) { 39 var ( 40 ei = generateECInfo() 41 42 err error = object.NewECInfoError(ei) 43 expectedErr *object.ECInfoError 44 ) 45 46 require.True(t, errors.As(err, &expectedErr)) 47 48 eiErr, ok := err.(*object.ECInfoError) 49 require.True(t, ok) 50 require.Equal(t, ei, eiErr.ECInfo()) 51 } 52 53 func generateECInfo() *object.ECInfo { 54 ei := object.NewECInfo() 55 ei.Chunks = append(ei.Chunks, objectV2.ECChunk{ 56 ID: generateV2ID(), 57 Index: 0, 58 Total: 2, 59 }) 60 ei.Chunks = append(ei.Chunks, objectV2.ECChunk{ 61 ID: generateV2ID(), 62 Index: 1, 63 Total: 2, 64 }) 65 return ei 66 } 67 68 func generateV2ID() refs.ObjectID { 69 var buf [32]byte 70 _, _ = rand.Read(buf[:]) 71 72 var id refs.ObjectID 73 id.SetValue(buf[:]) 74 75 return id 76 }