git.frostfs.info/TrueCloudLab/frostfs-sdk-go@v0.0.0-20241022124111-5361f0ecebd3/object/lock_test.go (about)

     1  package object_test
     2  
     3  import (
     4  	"testing"
     5  
     6  	"git.frostfs.info/TrueCloudLab/frostfs-sdk-go/object"
     7  	objecttest "git.frostfs.info/TrueCloudLab/frostfs-sdk-go/object/test"
     8  	"github.com/stretchr/testify/require"
     9  )
    10  
    11  func TestLockEncoding(t *testing.T) {
    12  	l := *objecttest.Lock()
    13  
    14  	t.Run("binary", func(t *testing.T) {
    15  		data := l.Marshal()
    16  
    17  		var l2 object.Lock
    18  		require.NoError(t, l2.Unmarshal(data))
    19  
    20  		require.Equal(t, l, l2)
    21  	})
    22  }
    23  
    24  func TestWriteLock(t *testing.T) {
    25  	l := *objecttest.Lock()
    26  	var o object.Object
    27  
    28  	object.WriteLock(&o, l)
    29  
    30  	var l2 object.Lock
    31  
    32  	require.NoError(t, object.ReadLock(&l2, o))
    33  	require.Equal(t, l, l2)
    34  
    35  	// corrupt payload
    36  	o.Payload()[0]++
    37  
    38  	require.Error(t, object.ReadLock(&l2, o))
    39  }