forked from TrueCloudLab/frostfs-node
61 lines
1.3 KiB
Go
61 lines
1.3 KiB
Go
|
package acl
|
||
|
|
||
|
import (
|
||
|
"testing"
|
||
|
|
||
|
"github.com/nspcc-dev/neofs-api-go/acl"
|
||
|
"github.com/nspcc-dev/neofs-api-go/object"
|
||
|
"github.com/stretchr/testify/require"
|
||
|
)
|
||
|
|
||
|
func TestNewTypedObjectExtendedHeader(t *testing.T) {
|
||
|
var res acl.TypedHeader
|
||
|
|
||
|
hdr := object.Header{}
|
||
|
|
||
|
// nil value
|
||
|
require.Nil(t, newTypedObjectExtendedHeader(hdr))
|
||
|
|
||
|
// UserHeader
|
||
|
{
|
||
|
key := "key"
|
||
|
val := "val"
|
||
|
hdr.Value = &object.Header_UserHeader{
|
||
|
UserHeader: &object.UserHeader{
|
||
|
Key: key,
|
||
|
Value: val,
|
||
|
},
|
||
|
}
|
||
|
|
||
|
res = newTypedObjectExtendedHeader(hdr)
|
||
|
require.Equal(t, acl.HdrTypeObjUsr, res.HeaderType())
|
||
|
require.Equal(t, key, res.Name())
|
||
|
require.Equal(t, val, res.Value())
|
||
|
}
|
||
|
|
||
|
{ // Link
|
||
|
link := new(object.Link)
|
||
|
link.ID = object.ID{1, 2, 3}
|
||
|
|
||
|
hdr.Value = &object.Header_Link{
|
||
|
Link: link,
|
||
|
}
|
||
|
|
||
|
check := func(lt object.Link_Type, name string) {
|
||
|
link.Type = lt
|
||
|
|
||
|
res = newTypedObjectExtendedHeader(hdr)
|
||
|
|
||
|
require.Equal(t, acl.HdrTypeObjSys, res.HeaderType())
|
||
|
require.Equal(t, name, res.Name())
|
||
|
require.Equal(t, link.ID.String(), res.Value())
|
||
|
}
|
||
|
|
||
|
check(object.Link_Previous, acl.HdrObjSysLinkPrev)
|
||
|
check(object.Link_Next, acl.HdrObjSysLinkNext)
|
||
|
check(object.Link_Parent, acl.HdrObjSysLinkPar)
|
||
|
check(object.Link_Child, acl.HdrObjSysLinkChild)
|
||
|
check(object.Link_StorageGroup, acl.HdrObjSysLinkSG)
|
||
|
}
|
||
|
}
|