forked from TrueCloudLab/frostfs-api-go
Aleksey Savchuk
9c5e32a183
Some tests are using invalid data that do not meet the requirements of the FrostFS protocol, e.g. - Container/Object IDs aren't 32 bytes long - Signature key and sign have invalid length - Split IDs aren't valid UUIDv4 and etc. Signed-off-by: Aleksey Savchuk <a.savchuk@yadro.com>
290 lines
6.5 KiB
Go
290 lines
6.5 KiB
Go
package containertest
|
|
|
|
import (
|
|
"crypto/rand"
|
|
|
|
acltest "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/acl/test"
|
|
"git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/container"
|
|
netmaptest "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/netmap/test"
|
|
refstest "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/refs/test"
|
|
sessiontest "git.frostfs.info/TrueCloudLab/frostfs-api-go/v2/session/test"
|
|
)
|
|
|
|
func GenerateAttribute(empty bool) *container.Attribute {
|
|
m := new(container.Attribute)
|
|
|
|
if !empty {
|
|
m.SetKey("key")
|
|
m.SetValue("val")
|
|
}
|
|
|
|
return m
|
|
}
|
|
|
|
func GenerateAttributes(empty bool) []container.Attribute {
|
|
var res []container.Attribute
|
|
|
|
if !empty {
|
|
res = append(res,
|
|
*GenerateAttribute(false),
|
|
*GenerateAttribute(false),
|
|
)
|
|
}
|
|
|
|
return res
|
|
}
|
|
|
|
func GenerateContainer(empty bool) *container.Container {
|
|
m := new(container.Container)
|
|
|
|
if !empty {
|
|
nonce := make([]byte, 16)
|
|
_, _ = rand.Read(nonce)
|
|
|
|
m.SetBasicACL(12)
|
|
m.SetNonce(nonce)
|
|
m.SetOwnerID(refstest.GenerateOwnerID(false))
|
|
m.SetAttributes(GenerateAttributes(false))
|
|
m.SetPlacementPolicy(netmaptest.GeneratePlacementPolicy(false))
|
|
}
|
|
|
|
m.SetVersion(refstest.GenerateVersion(empty))
|
|
|
|
return m
|
|
}
|
|
|
|
func GeneratePutRequestBody(empty bool) *container.PutRequestBody {
|
|
m := new(container.PutRequestBody)
|
|
|
|
if !empty {
|
|
m.SetContainer(GenerateContainer(false))
|
|
}
|
|
|
|
m.SetSignature(refstest.GenerateSignature(empty))
|
|
|
|
return m
|
|
}
|
|
|
|
func GeneratePutRequest(empty bool) *container.PutRequest {
|
|
m := new(container.PutRequest)
|
|
|
|
if !empty {
|
|
m.SetBody(GeneratePutRequestBody(false))
|
|
}
|
|
|
|
m.SetMetaHeader(sessiontest.GenerateRequestMetaHeader(empty))
|
|
m.SetVerificationHeader(sessiontest.GenerateRequestVerificationHeader(empty))
|
|
|
|
return m
|
|
}
|
|
|
|
func GeneratePutResponseBody(empty bool) *container.PutResponseBody {
|
|
m := new(container.PutResponseBody)
|
|
|
|
if !empty {
|
|
m.SetContainerID(refstest.GenerateContainerID(false))
|
|
}
|
|
|
|
return m
|
|
}
|
|
|
|
func GeneratePutResponse(empty bool) *container.PutResponse {
|
|
m := new(container.PutResponse)
|
|
|
|
if !empty {
|
|
m.SetBody(GeneratePutResponseBody(false))
|
|
}
|
|
|
|
m.SetMetaHeader(sessiontest.GenerateResponseMetaHeader(empty))
|
|
m.SetVerificationHeader(sessiontest.GenerateResponseVerificationHeader(empty))
|
|
|
|
return m
|
|
}
|
|
|
|
func GenerateGetRequestBody(empty bool) *container.GetRequestBody {
|
|
m := new(container.GetRequestBody)
|
|
|
|
if !empty {
|
|
m.SetContainerID(refstest.GenerateContainerID(false))
|
|
}
|
|
|
|
return m
|
|
}
|
|
|
|
func GenerateGetRequest(empty bool) *container.GetRequest {
|
|
m := new(container.GetRequest)
|
|
|
|
if !empty {
|
|
m.SetBody(GenerateGetRequestBody(false))
|
|
}
|
|
|
|
m.SetMetaHeader(sessiontest.GenerateRequestMetaHeader(empty))
|
|
m.SetVerificationHeader(sessiontest.GenerateRequestVerificationHeader(empty))
|
|
|
|
return m
|
|
}
|
|
|
|
func GenerateGetResponseBody(empty bool) *container.GetResponseBody {
|
|
m := new(container.GetResponseBody)
|
|
|
|
if !empty {
|
|
m.SetContainer(GenerateContainer(false))
|
|
}
|
|
|
|
m.SetSignature(refstest.GenerateSignature(empty))
|
|
m.SetSessionToken(sessiontest.GenerateSessionToken(empty))
|
|
|
|
return m
|
|
}
|
|
|
|
func GenerateGetResponse(empty bool) *container.GetResponse {
|
|
m := new(container.GetResponse)
|
|
|
|
if !empty {
|
|
m.SetBody(GenerateGetResponseBody(false))
|
|
}
|
|
|
|
m.SetMetaHeader(sessiontest.GenerateResponseMetaHeader(empty))
|
|
m.SetVerificationHeader(sessiontest.GenerateResponseVerificationHeader(empty))
|
|
|
|
return m
|
|
}
|
|
|
|
func GenerateDeleteRequestBody(empty bool) *container.DeleteRequestBody {
|
|
m := new(container.DeleteRequestBody)
|
|
|
|
if !empty {
|
|
m.SetContainerID(refstest.GenerateContainerID(false))
|
|
}
|
|
|
|
m.SetSignature(refstest.GenerateSignature(empty))
|
|
|
|
return m
|
|
}
|
|
|
|
func GenerateDeleteRequest(empty bool) *container.DeleteRequest {
|
|
m := new(container.DeleteRequest)
|
|
|
|
if !empty {
|
|
m.SetBody(GenerateDeleteRequestBody(false))
|
|
}
|
|
|
|
m.SetMetaHeader(sessiontest.GenerateRequestMetaHeader(empty))
|
|
m.SetVerificationHeader(sessiontest.GenerateRequestVerificationHeader(empty))
|
|
|
|
return m
|
|
}
|
|
|
|
func GenerateDeleteResponseBody(_ bool) *container.DeleteResponseBody {
|
|
m := new(container.DeleteResponseBody)
|
|
|
|
return m
|
|
}
|
|
|
|
func GenerateDeleteResponse(empty bool) *container.DeleteResponse {
|
|
m := new(container.DeleteResponse)
|
|
|
|
if !empty {
|
|
m.SetBody(GenerateDeleteResponseBody(false))
|
|
}
|
|
|
|
m.SetMetaHeader(sessiontest.GenerateResponseMetaHeader(empty))
|
|
m.SetVerificationHeader(sessiontest.GenerateResponseVerificationHeader(empty))
|
|
|
|
return m
|
|
}
|
|
|
|
func GenerateListRequestBody(empty bool) *container.ListRequestBody {
|
|
m := new(container.ListRequestBody)
|
|
|
|
if !empty {
|
|
m.SetOwnerID(refstest.GenerateOwnerID(false))
|
|
}
|
|
|
|
return m
|
|
}
|
|
|
|
func GenerateListRequest(empty bool) *container.ListRequest {
|
|
m := new(container.ListRequest)
|
|
|
|
if !empty {
|
|
m.SetBody(GenerateListRequestBody(false))
|
|
}
|
|
|
|
m.SetMetaHeader(sessiontest.GenerateRequestMetaHeader(empty))
|
|
m.SetVerificationHeader(sessiontest.GenerateRequestVerificationHeader(empty))
|
|
|
|
return m
|
|
}
|
|
|
|
func GenerateListResponseBody(empty bool) *container.ListResponseBody {
|
|
m := new(container.ListResponseBody)
|
|
|
|
if !empty {
|
|
m.SetContainerIDs(refstest.GenerateContainerIDs(false))
|
|
}
|
|
|
|
return m
|
|
}
|
|
|
|
func GenerateListResponse(empty bool) *container.ListResponse {
|
|
m := new(container.ListResponse)
|
|
|
|
if !empty {
|
|
m.SetBody(GenerateListResponseBody(false))
|
|
}
|
|
|
|
m.SetMetaHeader(sessiontest.GenerateResponseMetaHeader(empty))
|
|
m.SetVerificationHeader(sessiontest.GenerateResponseVerificationHeader(empty))
|
|
|
|
return m
|
|
}
|
|
|
|
func GenerateGetExtendedACLRequestBody(empty bool) *container.GetExtendedACLRequestBody {
|
|
m := new(container.GetExtendedACLRequestBody)
|
|
|
|
if !empty {
|
|
m.SetContainerID(refstest.GenerateContainerID(false))
|
|
}
|
|
|
|
return m
|
|
}
|
|
|
|
func GenerateGetExtendedACLRequest(empty bool) *container.GetExtendedACLRequest {
|
|
m := new(container.GetExtendedACLRequest)
|
|
|
|
if !empty {
|
|
m.SetBody(GenerateGetExtendedACLRequestBody(false))
|
|
}
|
|
|
|
m.SetMetaHeader(sessiontest.GenerateRequestMetaHeader(empty))
|
|
m.SetVerificationHeader(sessiontest.GenerateRequestVerificationHeader(empty))
|
|
|
|
return m
|
|
}
|
|
|
|
func GenerateGetExtendedACLResponseBody(empty bool) *container.GetExtendedACLResponseBody {
|
|
m := new(container.GetExtendedACLResponseBody)
|
|
|
|
if !empty {
|
|
m.SetEACL(acltest.GenerateTable(false))
|
|
}
|
|
|
|
m.SetSignature(refstest.GenerateSignature(empty))
|
|
m.SetSessionToken(sessiontest.GenerateSessionToken(empty))
|
|
|
|
return m
|
|
}
|
|
|
|
func GenerateGetExtendedACLResponse(empty bool) *container.GetExtendedACLResponse {
|
|
m := new(container.GetExtendedACLResponse)
|
|
|
|
if !empty {
|
|
m.SetBody(GenerateGetExtendedACLResponseBody(false))
|
|
}
|
|
|
|
m.SetMetaHeader(sessiontest.GenerateResponseMetaHeader(empty))
|
|
m.SetVerificationHeader(sessiontest.GenerateResponseVerificationHeader(empty))
|
|
|
|
return m
|
|
}
|