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  }