forked from TrueCloudLab/frostfs-node
69 lines
1.7 KiB
Go
69 lines
1.7 KiB
Go
|
package memstore
|
||
|
|
||
|
import (
|
||
|
"testing"
|
||
|
|
||
|
"git.frostfs.info/TrueCloudLab/frostfs-node/pkg/core/object"
|
||
|
"git.frostfs.info/TrueCloudLab/frostfs-node/pkg/local_object_storage/blobstor/common"
|
||
|
"git.frostfs.info/TrueCloudLab/frostfs-node/pkg/local_object_storage/blobstor/internal/blobstortest"
|
||
|
"git.frostfs.info/TrueCloudLab/frostfs-node/pkg/util/logger"
|
||
|
objectSDK "git.frostfs.info/TrueCloudLab/frostfs-sdk-go/object"
|
||
|
"github.com/stretchr/testify/require"
|
||
|
"go.uber.org/zap/zaptest"
|
||
|
)
|
||
|
|
||
|
func TestSimpleLifecycle(t *testing.T) {
|
||
|
s := New(
|
||
|
WithRootPath("memstore"),
|
||
|
WithLogger(&logger.Logger{Logger: zaptest.NewLogger(t)}),
|
||
|
)
|
||
|
t.Cleanup(func() { _ = s.Close() })
|
||
|
require.NoError(t, s.Open(false))
|
||
|
require.NoError(t, s.Init())
|
||
|
|
||
|
obj := blobstortest.NewObject(1024)
|
||
|
addr := object.AddressOf(obj)
|
||
|
d, err := obj.Marshal()
|
||
|
require.NoError(t, err)
|
||
|
|
||
|
{
|
||
|
_, err := s.Put(common.PutPrm{Address: addr, RawData: d, DontCompress: true})
|
||
|
require.NoError(t, err)
|
||
|
}
|
||
|
|
||
|
{
|
||
|
resp, err := s.Exists(common.ExistsPrm{Address: addr})
|
||
|
require.NoError(t, err)
|
||
|
require.True(t, resp.Exists)
|
||
|
}
|
||
|
|
||
|
{
|
||
|
resp, err := s.Get(common.GetPrm{Address: addr})
|
||
|
require.NoError(t, err)
|
||
|
require.Equal(t, obj.Payload(), resp.Object.Payload())
|
||
|
}
|
||
|
|
||
|
{
|
||
|
var objRange objectSDK.Range
|
||
|
objRange.SetOffset(256)
|
||
|
objRange.SetLength(512)
|
||
|
resp, err := s.GetRange(common.GetRangePrm{
|
||
|
Address: addr,
|
||
|
Range: objRange,
|
||
|
})
|
||
|
require.NoError(t, err)
|
||
|
require.Equal(t, obj.Payload()[objRange.GetOffset():objRange.GetOffset()+objRange.GetLength()], resp.Data)
|
||
|
}
|
||
|
|
||
|
{
|
||
|
_, err := s.Delete(common.DeletePrm{Address: addr})
|
||
|
require.NoError(t, err)
|
||
|
}
|
||
|
|
||
|
{
|
||
|
resp, err := s.Exists(common.ExistsPrm{Address: addr})
|
||
|
require.NoError(t, err)
|
||
|
require.False(t, resp.Exists)
|
||
|
}
|
||
|
}
|