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  }