forked from TrueCloudLab/frostfs-sdk-go
[#53] session: move XHeader from neofs-api-go
Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
This commit is contained in:
parent
ee47683848
commit
ff54fb7647
2 changed files with 113 additions and 0 deletions
55
session/xheader.go
Normal file
55
session/xheader.go
Normal file
|
@ -0,0 +1,55 @@
|
||||||
|
package session
|
||||||
|
|
||||||
|
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.
|
||||||
|
//
|
||||||
|
// Nil session.XHeader converts to nil.
|
||||||
|
func NewXHeaderFromV2(v *session.XHeader) *XHeader {
|
||||||
|
return (*XHeader)(v)
|
||||||
|
}
|
||||||
|
|
||||||
|
// NewXHeader creates, initializes and returns blank XHeader instance.
|
||||||
|
//
|
||||||
|
// Defaults:
|
||||||
|
// - key: "";
|
||||||
|
// - value: "".
|
||||||
|
func NewXHeader() *XHeader {
|
||||||
|
return NewXHeaderFromV2(new(session.XHeader))
|
||||||
|
}
|
||||||
|
|
||||||
|
// ToV2 converts XHeader to v2 XHeader message.
|
||||||
|
//
|
||||||
|
// Nil XHeader converts to nil.
|
||||||
|
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)
|
||||||
|
}
|
58
session/xheader_test.go
Normal file
58
session/xheader_test.go
Normal file
|
@ -0,0 +1,58 @@
|
||||||
|
package session
|
||||||
|
|
||||||
|
import (
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
"github.com/nspcc-dev/neofs-api-go/v2/session"
|
||||||
|
"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())
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestNewXHeaderFromV2(t *testing.T) {
|
||||||
|
t.Run("from nil", func(t *testing.T) {
|
||||||
|
var x *session.XHeader
|
||||||
|
|
||||||
|
require.Nil(t, NewXHeaderFromV2(x))
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestXHeader_ToV2(t *testing.T) {
|
||||||
|
t.Run("nil", func(t *testing.T) {
|
||||||
|
var x *XHeader
|
||||||
|
|
||||||
|
require.Nil(t, x.ToV2())
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
func TestNewXHeader(t *testing.T) {
|
||||||
|
t.Run("default values", func(t *testing.T) {
|
||||||
|
xh := NewXHeader()
|
||||||
|
|
||||||
|
// check initial values
|
||||||
|
require.Empty(t, xh.Value())
|
||||||
|
require.Empty(t, xh.Key())
|
||||||
|
|
||||||
|
// convert to v2 message
|
||||||
|
xhV2 := xh.ToV2()
|
||||||
|
|
||||||
|
require.Empty(t, xhV2.GetValue())
|
||||||
|
require.Empty(t, xhV2.GetKey())
|
||||||
|
})
|
||||||
|
}
|
Loading…
Reference in a new issue