forked from TrueCloudLab/frostfs-node
0b95a21701
This tests check that each blobstor component behaves similarly when same methods are being used. It is intended to serve as a specification for all future components. Signed-off-by: Evgenii Stratonikov <evgeniy@morphbits.ru>
50 lines
1.3 KiB
Go
50 lines
1.3 KiB
Go
package blobstortest
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/nspcc-dev/neofs-node/pkg/local_object_storage/blobstor/common"
|
|
apistatus "github.com/nspcc-dev/neofs-sdk-go/client/status"
|
|
oidtest "github.com/nspcc-dev/neofs-sdk-go/object/id/test"
|
|
"github.com/stretchr/testify/require"
|
|
)
|
|
|
|
func TestGet(t *testing.T, cons Constructor, min, max uint64) {
|
|
s := cons(t)
|
|
require.NoError(t, s.Open(false))
|
|
require.NoError(t, s.Init())
|
|
t.Cleanup(func() { require.NoError(t, s.Close()) })
|
|
|
|
objects := prepare(t, 2, s, min, max)
|
|
|
|
t.Run("missing object", func(t *testing.T) {
|
|
gPrm := common.GetPrm{Address: oidtest.Address()}
|
|
_, err := s.Get(gPrm)
|
|
require.ErrorAs(t, err, new(apistatus.ObjectNotFound))
|
|
})
|
|
|
|
for i := range objects {
|
|
var gPrm common.GetPrm
|
|
gPrm.Address = objects[i].addr
|
|
|
|
// With storage ID.
|
|
gPrm.StorageID = objects[i].storageID
|
|
res, err := s.Get(gPrm)
|
|
require.NoError(t, err)
|
|
require.Equal(t, objects[i].obj, res.Object)
|
|
|
|
// Without storage ID.
|
|
gPrm.StorageID = nil
|
|
res, err = s.Get(gPrm)
|
|
require.NoError(t, err)
|
|
require.Equal(t, objects[i].obj, res.Object)
|
|
|
|
// With raw flag.
|
|
gPrm.StorageID = objects[i].storageID
|
|
gPrm.Raw = true
|
|
|
|
res, err = s.Get(gPrm)
|
|
require.NoError(t, err)
|
|
require.Equal(t, objects[i].raw, res.RawData)
|
|
}
|
|
}
|