git.frostfs.info/TrueCloudLab/frostfs-sdk-go@v0.0.0-20241022124111-5361f0ecebd3/object/test/generate.go (about) 1 package objecttest 2 3 import ( 4 checksumtest "git.frostfs.info/TrueCloudLab/frostfs-sdk-go/checksum/test" 5 cidtest "git.frostfs.info/TrueCloudLab/frostfs-sdk-go/container/id/test" 6 "git.frostfs.info/TrueCloudLab/frostfs-sdk-go/object" 7 oid "git.frostfs.info/TrueCloudLab/frostfs-sdk-go/object/id" 8 oidtest "git.frostfs.info/TrueCloudLab/frostfs-sdk-go/object/id/test" 9 sessiontest "git.frostfs.info/TrueCloudLab/frostfs-sdk-go/session/test" 10 usertest "git.frostfs.info/TrueCloudLab/frostfs-sdk-go/user/test" 11 "git.frostfs.info/TrueCloudLab/frostfs-sdk-go/version" 12 "github.com/google/uuid" 13 ) 14 15 // Range returns random object.Range. 16 func Range() *object.Range { 17 x := object.NewRange() 18 19 x.SetOffset(1024) 20 x.SetLength(2048) 21 22 return x 23 } 24 25 // Attribute returns random object.Attribute. 26 func Attribute() *object.Attribute { 27 x := object.NewAttribute() 28 29 x.SetKey("key") 30 x.SetValue("value") 31 32 return x 33 } 34 35 // SplitID returns random object.SplitID. 36 func SplitID() *object.SplitID { 37 x := object.NewSplitID() 38 39 x.SetUUID(uuid.New()) 40 41 return x 42 } 43 44 func generate(withParent bool) *object.Object { 45 x := object.New() 46 ver := version.Current() 47 48 x.SetID(oidtest.ID()) 49 x.SetSessionToken(sessiontest.Object()) 50 x.SetPayload([]byte{1, 2, 3}) 51 x.SetOwnerID(usertest.ID()) 52 x.SetContainerID(cidtest.ID()) 53 x.SetType(object.TypeTombstone) 54 x.SetVersion(&ver) 55 x.SetPayloadSize(111) 56 x.SetCreationEpoch(222) 57 x.SetPreviousID(oidtest.ID()) 58 x.SetParentID(oidtest.ID()) 59 x.SetChildren(oidtest.ID(), oidtest.ID()) 60 x.SetAttributes(*Attribute(), *Attribute()) 61 x.SetSplitID(SplitID()) 62 x.SetPayloadChecksum(checksumtest.Checksum()) 63 x.SetPayloadHomomorphicHash(checksumtest.Checksum()) 64 65 if withParent { 66 x.SetParent(generate(false)) 67 } 68 69 return x 70 } 71 72 // Raw returns random object.Object. 73 // Deprecated: (v1.0.0) use Object instead. 74 func Raw() *object.Object { 75 return Object() 76 } 77 78 // Object returns random object.Object. 79 func Object() *object.Object { 80 return generate(true) 81 } 82 83 // Tombstone returns random object.Tombstone. 84 func Tombstone() *object.Tombstone { 85 x := object.NewTombstone() 86 87 x.SetSplitID(SplitID()) 88 x.SetExpirationEpoch(13) 89 x.SetMembers([]oid.ID{oidtest.ID(), oidtest.ID()}) 90 91 return x 92 } 93 94 // SplitInfo returns random object.SplitInfo. 95 func SplitInfo() *object.SplitInfo { 96 x := object.NewSplitInfo() 97 98 x.SetSplitID(SplitID()) 99 x.SetLink(oidtest.ID()) 100 x.SetLastPart(oidtest.ID()) 101 102 return x 103 } 104 105 // SearchFilters returns random object.SearchFilters. 106 func SearchFilters() object.SearchFilters { 107 x := object.NewSearchFilters() 108 109 x.AddObjectIDFilter(object.MatchStringEqual, oidtest.ID()) 110 x.AddObjectContainerIDFilter(object.MatchStringNotEqual, cidtest.ID()) 111 112 return x 113 } 114 115 // Lock returns random object.Lock. 116 func Lock() *object.Lock { 117 var l object.Lock 118 l.WriteMembers([]oid.ID{oidtest.ID(), oidtest.ID()}) 119 120 return &l 121 }