forked from TrueCloudLab/frostfs-api-go
[#140] sdk/object: Define Attribute type
Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
This commit is contained in:
parent
5902f96f3e
commit
20d644758b
2 changed files with 68 additions and 0 deletions
45
pkg/object/attribute.go
Normal file
45
pkg/object/attribute.go
Normal file
|
@ -0,0 +1,45 @@
|
|||
package object
|
||||
|
||||
import (
|
||||
"github.com/nspcc-dev/neofs-api-go/v2/object"
|
||||
)
|
||||
|
||||
// Attribute represents v2-compatible object attribute.
|
||||
type Attribute object.Attribute
|
||||
|
||||
// NewAttributeFromV2 wraps v2 Attribute message to Attribute.
|
||||
func NewAttributeFromV2(aV2 *object.Attribute) *Attribute {
|
||||
return (*Attribute)(aV2)
|
||||
}
|
||||
|
||||
// NewAttribute creates and initializes blank Attribute.
|
||||
//
|
||||
// Works similar as NewAttributeFromV2(new(Attribute)).
|
||||
func NewAttribute() *Attribute {
|
||||
return NewAttributeFromV2(new(object.Attribute))
|
||||
}
|
||||
|
||||
// GetKey returns key to the object attribute.
|
||||
func (a *Attribute) GetKey() string {
|
||||
return (*object.Attribute)(a).GetKey()
|
||||
}
|
||||
|
||||
// SetKey sets key to the object attribute.
|
||||
func (a *Attribute) SetKey(v string) {
|
||||
(*object.Attribute)(a).SetKey(v)
|
||||
}
|
||||
|
||||
// GetValue return value of the object attribute.
|
||||
func (a *Attribute) GetValue() string {
|
||||
return (*object.Attribute)(a).GetValue()
|
||||
}
|
||||
|
||||
// SetValue sets value of the object attribute.
|
||||
func (a *Attribute) SetValue(v string) {
|
||||
(*object.Attribute)(a).SetValue(v)
|
||||
}
|
||||
|
||||
// ToV2 converts Attribute to v2 Attribute message.
|
||||
func (a *Attribute) ToV2() *object.Attribute {
|
||||
return (*object.Attribute)(a)
|
||||
}
|
23
pkg/object/attribute_test.go
Normal file
23
pkg/object/attribute_test.go
Normal file
|
@ -0,0 +1,23 @@
|
|||
package object
|
||||
|
||||
import (
|
||||
"testing"
|
||||
|
||||
"github.com/stretchr/testify/require"
|
||||
)
|
||||
|
||||
func TestAttribute(t *testing.T) {
|
||||
key, val := "some key", "some value"
|
||||
|
||||
a := NewAttribute()
|
||||
a.SetKey(key)
|
||||
a.SetValue(val)
|
||||
|
||||
require.Equal(t, key, a.GetKey())
|
||||
require.Equal(t, val, a.GetValue())
|
||||
|
||||
aV2 := a.ToV2()
|
||||
|
||||
require.Equal(t, key, aV2.GetKey())
|
||||
require.Equal(t, val, aV2.GetValue())
|
||||
}
|
Loading…
Reference in a new issue