forked from TrueCloudLab/frostfs-api-go
[#146] sdk/object: Add structures for object search rpc call
Signed-off-by: Alex Vanin <alexey@nspcc.ru>
This commit is contained in:
parent
f60069ec9f
commit
fea8cd48f2
2 changed files with 149 additions and 0 deletions
53
pkg/object/search_test.go
Normal file
53
pkg/object/search_test.go
Normal file
|
@ -0,0 +1,53 @@
|
|||
package object_test
|
||||
|
||||
import (
|
||||
"testing"
|
||||
|
||||
"github.com/nspcc-dev/neofs-api-go/pkg/object"
|
||||
v2object "github.com/nspcc-dev/neofs-api-go/v2/object"
|
||||
"github.com/stretchr/testify/require"
|
||||
)
|
||||
|
||||
var (
|
||||
eqV2Matches = map[object.SearchMatchType]v2object.MatchType{
|
||||
object.MatchUnknown: v2object.MatchUnknown,
|
||||
object.MatchStringEqual: v2object.MatchStringEqual,
|
||||
}
|
||||
)
|
||||
|
||||
func TestMatch(t *testing.T) {
|
||||
t.Run("known matches", func(t *testing.T) {
|
||||
for i := object.MatchUnknown; i <= object.MatchStringEqual; i++ {
|
||||
require.Equal(t, eqV2Matches[i], i.ToV2())
|
||||
require.Equal(t, object.SearchMatchFromV2(i.ToV2()), i)
|
||||
}
|
||||
})
|
||||
|
||||
t.Run("unknown matches", func(t *testing.T) {
|
||||
require.Equal(t, (object.MatchStringEqual + 1).ToV2(), v2object.MatchUnknown)
|
||||
require.Equal(t, object.SearchMatchFromV2(v2object.MatchStringEqual+1), object.MatchUnknown)
|
||||
})
|
||||
}
|
||||
|
||||
func TestFilter(t *testing.T) {
|
||||
inputs := [][]string{
|
||||
{"user-header", "user-value"},
|
||||
{object.HdrSysNameID, "objectID"},
|
||||
}
|
||||
|
||||
filters := object.NewSearchFilters()
|
||||
for i := range inputs {
|
||||
filters.AddFilter(inputs[i][0], inputs[i][1], object.MatchStringEqual)
|
||||
}
|
||||
|
||||
require.Len(t, filters, len(inputs))
|
||||
for i := range inputs {
|
||||
require.Equal(t, inputs[i][0], filters[i].Header())
|
||||
require.Equal(t, inputs[i][1], filters[i].Value())
|
||||
require.Equal(t, object.MatchStringEqual, filters[i].Operation())
|
||||
}
|
||||
|
||||
v2 := filters.ToV2()
|
||||
newFilters := object.NewSearchFiltersFromV2(v2)
|
||||
require.Equal(t, filters, newFilters)
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue