package testutil import ( "crypto/sha256" "git.frostfs.info/TrueCloudLab/frostfs-sdk-go/checksum" cid "git.frostfs.info/TrueCloudLab/frostfs-sdk-go/container/id" cidtest "git.frostfs.info/TrueCloudLab/frostfs-sdk-go/container/id/test" objectSDK "git.frostfs.info/TrueCloudLab/frostfs-sdk-go/object" oidtest "git.frostfs.info/TrueCloudLab/frostfs-sdk-go/object/id/test" usertest "git.frostfs.info/TrueCloudLab/frostfs-sdk-go/user/test" "git.frostfs.info/TrueCloudLab/frostfs-sdk-go/version" "git.frostfs.info/TrueCloudLab/tzhash/tz" "golang.org/x/exp/rand" ) const defaultDataSize = 32 func GenerateObject() *objectSDK.Object { return GenerateObjectWithCID(cidtest.ID()) } func GenerateObjectWithSize(sz int) *objectSDK.Object { data := make([]byte, sz) _, _ = rand.Read(data) return GenerateObjectWithCIDWithPayload(cidtest.ID(), data) } func GenerateObjectWithCID(cnr cid.ID) *objectSDK.Object { data := make([]byte, defaultDataSize) _, _ = rand.Read(data) return GenerateObjectWithCIDWithPayload(cnr, data) } func GenerateObjectWithCIDWithPayload(cnr cid.ID, data []byte) *objectSDK.Object { var ver version.Version ver.SetMajor(2) ver.SetMinor(1) var csum checksum.Checksum csum.SetSHA256(sha256.Sum256(data)) var csumTZ checksum.Checksum csumTZ.SetTillichZemor(tz.Sum(csum.Value())) obj := objectSDK.New() obj.SetID(oidtest.ID()) obj.SetOwnerID(usertest.ID()) obj.SetContainerID(cnr) obj.SetVersion(&ver) obj.SetPayload(data) obj.SetPayloadSize(uint64(len(data))) obj.SetPayloadChecksum(csum) obj.SetPayloadHomomorphicHash(csumTZ) return obj } func AddAttribute(obj *objectSDK.Object, key, val string) { var attr objectSDK.Attribute attr.SetKey(key) attr.SetValue(val) attrs := obj.Attributes() attrs = append(attrs, attr) obj.SetAttributes(attrs...) } func AddPayload(obj *objectSDK.Object, size int) { buf := make([]byte, size) _, _ = rand.Read(buf) obj.SetPayload(buf) obj.SetPayloadSize(uint64(size)) }