frostfs-sdk-go/object/lock_test.go
Airat Arifullin 6281a25556
All checks were successful
/ DCO (pull_request) Successful in 1m17s
/ Lint (pull_request) Successful in 2m7s
/ Tests (1.19) (pull_request) Successful in 5m56s
/ Tests (1.20) (pull_request) Successful in 6m37s
[#100] types: Make sdk types as protobuf wrappers
Signed-off-by: Airat Arifullin a.arifullin@yadro.com
2023-07-12 19:08:37 +03:00

40 lines
806 B
Go

package object_test
import (
"testing"
"git.frostfs.info/TrueCloudLab/frostfs-sdk-go/object"
objecttest "git.frostfs.info/TrueCloudLab/frostfs-sdk-go/object/test"
"github.com/stretchr/testify/require"
"google.golang.org/protobuf/proto"
)
func TestLockEncoding(t *testing.T) {
l := *objecttest.Lock()
t.Run("binary", func(t *testing.T) {
data := l.Marshal()
l2 := object.NewLock()
require.NoError(t, l2.Unmarshal(data))
require.True(t, proto.Equal(l.ToV2(), l2.ToV2()))
})
}
func TestWriteLock(t *testing.T) {
l := *objecttest.Lock()
o := object.New()
object.WriteLock(o, l)
l2 := object.NewLock()
require.NoError(t, object.ReadLock(l2, o))
require.True(t, proto.Equal(l.ToV2(), l2.ToV2()))
// corrupt payload
o.Payload()[0]++
require.Error(t, object.ReadLock(l2, o))
}