[#198] sdk: Implement XHeader type
Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
This commit is contained in:
parent
5f5e5ac5dd
commit
5452554b58
2 changed files with 72 additions and 0 deletions
47
pkg/xheader.go
Normal file
47
pkg/xheader.go
Normal file
|
@ -0,0 +1,47 @@
|
|||
package pkg
|
||||
|
||||
import (
|
||||
"github.com/nspcc-dev/neofs-api-go/v2/session"
|
||||
)
|
||||
|
||||
// XHeader represents v2-compatible XHeader.
|
||||
type XHeader session.XHeader
|
||||
|
||||
// NewXHeaderFromV2 wraps v2 XHeader message to XHeader.
|
||||
func NewXHeaderFromV2(v *session.XHeader) *XHeader {
|
||||
return (*XHeader)(v)
|
||||
}
|
||||
|
||||
// NewXHeader creates, initializes and returns blank XHeader instance.
|
||||
func NewXHeader() *XHeader {
|
||||
return NewXHeaderFromV2(new(session.XHeader))
|
||||
}
|
||||
|
||||
// ToV2 converts XHeader to v2 XHeader message.
|
||||
func (x *XHeader) ToV2() *session.XHeader {
|
||||
return (*session.XHeader)(x)
|
||||
}
|
||||
|
||||
// Key returns key to X-Header.
|
||||
func (x *XHeader) Key() string {
|
||||
return (*session.XHeader)(x).
|
||||
GetKey()
|
||||
}
|
||||
|
||||
// SetKey sets key to X-Header.
|
||||
func (x *XHeader) SetKey(k string) {
|
||||
(*session.XHeader)(x).
|
||||
SetKey(k)
|
||||
}
|
||||
|
||||
// Value returns value of X-Header.
|
||||
func (x *XHeader) Value() string {
|
||||
return (*session.XHeader)(x).
|
||||
GetValue()
|
||||
}
|
||||
|
||||
// SetValue sets value of X-Header.
|
||||
func (x *XHeader) SetValue(k string) {
|
||||
(*session.XHeader)(x).
|
||||
SetValue(k)
|
||||
}
|
25
pkg/xheader_test.go
Normal file
25
pkg/xheader_test.go
Normal file
|
@ -0,0 +1,25 @@
|
|||
package pkg
|
||||
|
||||
import (
|
||||
"testing"
|
||||
|
||||
"github.com/stretchr/testify/require"
|
||||
)
|
||||
|
||||
func TestXHeader(t *testing.T) {
|
||||
x := NewXHeader()
|
||||
|
||||
key := "some key"
|
||||
val := "some value"
|
||||
|
||||
x.SetKey(key)
|
||||
x.SetValue(val)
|
||||
|
||||
require.Equal(t, key, x.Key())
|
||||
require.Equal(t, val, x.Value())
|
||||
|
||||
xV2 := x.ToV2()
|
||||
|
||||
require.Equal(t, key, xV2.GetKey())
|
||||
require.Equal(t, val, xV2.GetValue())
|
||||
}
|
Loading…
Reference in a new issue