frostfs-api-go/refs/test/generate.go
Aleksey Savchuk 3f35301340
All checks were successful
DCO action / DCO (pull_request) Successful in 1m13s
Tests and linters / Tests (1.23) (pull_request) Successful in 1m21s
Tests and linters / Tests (1.22) (pull_request) Successful in 1m23s
Tests and linters / Tests with -race (pull_request) Successful in 1m45s
Tests and linters / Lint (pull_request) Successful in 3m42s
[#106] test: Generate correct IDs for tests
Signed-off-by: Aleksey Savchuk <a.savchuk@yadro.com>
2024-08-26 14:16:25 +03:00

122 lines
1.8 KiB
Go

package refstest
import (
crand "crypto/rand"
"crypto/sha256"
"math/rand"
"git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/refs"
)
func GenerateVersion(empty bool) *refs.Version {
m := new(refs.Version)
if !empty {
m.SetMajor(2)
m.SetMinor(1)
}
return m
}
func GenerateOwnerID(empty bool) *refs.OwnerID {
m := new(refs.OwnerID)
if !empty {
id := make([]byte, 25)
_, _ = crand.Read(id)
m.SetValue(id)
}
return m
}
func GenerateAddress(empty bool) *refs.Address {
m := new(refs.Address)
if !empty {
m.SetObjectID(GenerateObjectID(false))
m.SetContainerID(GenerateContainerID(false))
}
return m
}
func GenerateObjectID(empty bool) *refs.ObjectID {
m := new(refs.ObjectID)
if !empty {
id := make([]byte, sha256.Size)
_, _ = crand.Read(id)
m.SetValue(id)
}
return m
}
func GenerateObjectIDs(empty bool) []refs.ObjectID {
var ids []refs.ObjectID
if !empty {
ids = append(ids,
*GenerateObjectID(false),
*GenerateObjectID(false),
)
}
return ids
}
func GenerateContainerID(empty bool) *refs.ContainerID {
m := new(refs.ContainerID)
if !empty {
id := make([]byte, sha256.Size)
_, _ = crand.Read(id)
m.SetValue(id)
}
return m
}
func GenerateContainerIDs(empty bool) []refs.ContainerID {
var res []refs.ContainerID
if !empty {
res = append(res,
*GenerateContainerID(false),
*GenerateContainerID(false),
)
}
return res
}
func GenerateSignature(empty bool) *refs.Signature {
m := new(refs.Signature)
if !empty {
m.SetKey([]byte{1})
m.SetSign([]byte{2})
m.SetScheme(refs.SignatureScheme(rand.Int31() % 3))
}
return m
}
func GenerateChecksum(empty bool) *refs.Checksum {
m := new(refs.Checksum)
if !empty {
cs := make([]byte, sha256.Size)
_, _ = crand.Read(cs)
m.SetType(refs.SHA256)
m.SetSum(cs)
}
return m
}