forked from TrueCloudLab/frostfs-node
f58234aa2f
Reduce public interface of this package. Later each result will contain an additional status, so it makes more sense to use the same functions and result processing everywhere. Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
87 lines
2.1 KiB
Go
87 lines
2.1 KiB
Go
package meta_test
|
|
|
|
import (
|
|
"os"
|
|
"testing"
|
|
|
|
meta "github.com/nspcc-dev/neofs-node/pkg/local_object_storage/metabase"
|
|
"github.com/nspcc-dev/neofs-sdk-go/checksum"
|
|
checksumtest "github.com/nspcc-dev/neofs-sdk-go/checksum/test"
|
|
cid "github.com/nspcc-dev/neofs-sdk-go/container/id"
|
|
cidtest "github.com/nspcc-dev/neofs-sdk-go/container/id/test"
|
|
"github.com/nspcc-dev/neofs-sdk-go/object"
|
|
oid "github.com/nspcc-dev/neofs-sdk-go/object/id"
|
|
oidtest "github.com/nspcc-dev/neofs-sdk-go/object/id/test"
|
|
usertest "github.com/nspcc-dev/neofs-sdk-go/user/test"
|
|
"github.com/nspcc-dev/neofs-sdk-go/version"
|
|
"github.com/nspcc-dev/tzhash/tz"
|
|
"github.com/stretchr/testify/require"
|
|
)
|
|
|
|
// saves "big" object in DB.
|
|
func putBig(db *meta.DB, obj *object.Object) error {
|
|
return metaPut(db, obj, nil)
|
|
}
|
|
|
|
func testSelect(t *testing.T, db *meta.DB, cnr cid.ID, fs object.SearchFilters, exp ...oid.Address) {
|
|
res, err := metaSelect(db, cnr, fs)
|
|
require.NoError(t, err)
|
|
require.Len(t, res, len(exp))
|
|
|
|
for i := range exp {
|
|
require.Contains(t, res, exp[i])
|
|
}
|
|
}
|
|
|
|
func newDB(t testing.TB, opts ...meta.Option) *meta.DB {
|
|
path := t.Name()
|
|
|
|
bdb := meta.New(append([]meta.Option{meta.WithPath(path), meta.WithPermissions(0600)},
|
|
opts...)...)
|
|
|
|
require.NoError(t, bdb.Open())
|
|
require.NoError(t, bdb.Init())
|
|
|
|
t.Cleanup(func() {
|
|
bdb.Close()
|
|
os.Remove(bdb.DumpInfo().Path)
|
|
})
|
|
|
|
return bdb
|
|
}
|
|
|
|
func generateObject(t testing.TB) *object.Object {
|
|
return generateObjectWithCID(t, cidtest.ID())
|
|
}
|
|
|
|
func generateObjectWithCID(t testing.TB, cnr cid.ID) *object.Object {
|
|
var ver version.Version
|
|
ver.SetMajor(2)
|
|
ver.SetMinor(1)
|
|
|
|
csum := checksumtest.Checksum()
|
|
|
|
var csumTZ checksum.Checksum
|
|
csumTZ.SetTillichZemor(tz.Sum(csum.Value()))
|
|
|
|
obj := object.New()
|
|
obj.SetID(oidtest.ID())
|
|
obj.SetOwnerID(usertest.ID())
|
|
obj.SetContainerID(cnr)
|
|
obj.SetVersion(&ver)
|
|
obj.SetPayloadChecksum(csum)
|
|
obj.SetPayloadHomomorphicHash(csumTZ)
|
|
obj.SetPayload([]byte{1, 2, 3, 4, 5})
|
|
|
|
return obj
|
|
}
|
|
|
|
func addAttribute(obj *object.Object, key, val string) {
|
|
var attr object.Attribute
|
|
attr.SetKey(key)
|
|
attr.SetValue(val)
|
|
|
|
attrs := obj.Attributes()
|
|
attrs = append(attrs, attr)
|
|
obj.SetAttributes(attrs...)
|
|
}
|