frostfs-sdk-go/object/test/generate.go
Evgenii Baidakov 36b1e8442c
tests: Use dedicated function to generate signers in tests
Signed-off-by: Evgenii Baidakov <evgenii@nspcc.io>
2023-04-26 15:03:55 +04:00

123 lines
2.7 KiB
Go

package objecttest
import (
"testing"
"github.com/google/uuid"
checksumtest "github.com/nspcc-dev/neofs-sdk-go/checksum/test"
cidtest "github.com/nspcc-dev/neofs-sdk-go/container/id/test"
"github.com/nspcc-dev/neofs-sdk-go/object"
oid "github.com/nspcc-dev/neofs-sdk-go/object/id"
oidtest "github.com/nspcc-dev/neofs-sdk-go/object/id/test"
sessiontest "github.com/nspcc-dev/neofs-sdk-go/session/test"
usertest "github.com/nspcc-dev/neofs-sdk-go/user/test"
"github.com/nspcc-dev/neofs-sdk-go/version"
)
// Range returns random object.Range.
func Range() *object.Range {
x := object.NewRange()
x.SetOffset(1024)
x.SetLength(2048)
return x
}
// Attribute returns random object.Attribute.
func Attribute() *object.Attribute {
x := object.NewAttribute()
x.SetKey("key")
x.SetValue("value")
return x
}
// SplitID returns random object.SplitID.
func SplitID() *object.SplitID {
x := object.NewSplitID()
x.SetUUID(uuid.New())
return x
}
func generate(t *testing.T, withParent bool) *object.Object {
x := object.New()
ver := version.Current()
x.SetID(oidtest.ID())
x.SetSessionToken(sessiontest.Object())
x.SetPayload([]byte{1, 2, 3})
x.SetOwnerID(usertest.ID(t))
x.SetContainerID(cidtest.ID())
x.SetType(object.TypeTombstone)
x.SetVersion(&ver)
x.SetPayloadSize(111)
x.SetCreationEpoch(222)
x.SetPreviousID(oidtest.ID())
x.SetParentID(oidtest.ID())
x.SetChildren(oidtest.ID(), oidtest.ID())
x.SetAttributes(*Attribute(), *Attribute())
x.SetSplitID(SplitID())
x.SetPayloadChecksum(checksumtest.Checksum())
x.SetPayloadHomomorphicHash(checksumtest.Checksum())
if withParent {
x.SetParent(generate(t, false))
}
return x
}
// Raw returns random object.Object.
// Deprecated: (v1.0.0) use Object instead.
func Raw(t *testing.T) *object.Object {
return Object(t)
}
// Object returns random object.Object.
func Object(t *testing.T) *object.Object {
return generate(t, true)
}
// Tombstone returns random object.Tombstone.
func Tombstone() *object.Tombstone {
x := object.NewTombstone()
x.SetSplitID(SplitID())
x.SetExpirationEpoch(13)
x.SetMembers([]oid.ID{oidtest.ID(), oidtest.ID()})
return x
}
// SplitInfo returns random object.SplitInfo.
func SplitInfo() *object.SplitInfo {
x := object.NewSplitInfo()
x.SetSplitID(SplitID())
x.SetLink(oidtest.ID())
x.SetLastPart(oidtest.ID())
return x
}
// SearchFilters returns random object.SearchFilters.
func SearchFilters() object.SearchFilters {
x := object.NewSearchFilters()
x.AddObjectIDFilter(object.MatchStringEqual, oidtest.ID())
x.AddObjectContainerIDFilter(object.MatchStringNotEqual, cidtest.ID())
return x
}
// Lock returns random object.Lock.
func Lock() *object.Lock {
var l object.Lock
l.WriteMembers([]oid.ID{oidtest.ID(), oidtest.ID()})
return &l
}