package writecachebitcask import ( "context" "testing" "git.frostfs.info/TrueCloudLab/frostfs-node/pkg/local_object_storage/blobstor/common" "git.frostfs.info/TrueCloudLab/frostfs-node/pkg/local_object_storage/blobstor/teststore" "git.frostfs.info/TrueCloudLab/frostfs-node/pkg/local_object_storage/internal/testutil" meta "git.frostfs.info/TrueCloudLab/frostfs-node/pkg/local_object_storage/metabase" "git.frostfs.info/TrueCloudLab/frostfs-sdk-go/client" oid "git.frostfs.info/TrueCloudLab/frostfs-sdk-go/object/id" "github.com/stretchr/testify/require" ) func TestAPI(t *testing.T) { ctx := context.Background() bs := teststore.New( teststore.WithPut(func(pp common.PutPrm) (common.PutRes, error) { return common.PutRes{}, nil }), ) c := New( WithPath(t.TempDir()), WithBlobstor(bs), WithMetabase(testMetabase{}), ) require.NoError(t, c.Open(false)) require.NoError(t, c.Init()) obj := testutil.GenerateObject() addr := testutil.AddressFromObject(t, obj) data, err := obj.Marshal() require.NoError(t, err) // Get nonexistent object { _, gotErr := c.Get(ctx, oid.Address{}) require.True(t, client.IsErrObjectNotFound(gotErr)) } // Put an object { _, err := c.Put(ctx, common.PutPrm{ Address: addr, Object: obj, RawData: data, }) require.NoError(t, err) } // Get the object previously put { gotObj, err := c.Get(ctx, addr) require.NoError(t, err) gotData, err := gotObj.Marshal() require.NoError(t, err) require.Equal(t, data, gotData) } // Delete the object previously put { require.NoError(t, c.Delete(ctx, addr)) require.True(t, client.IsErrObjectNotFound(c.Delete(ctx, addr))) } // Get the object previously deleted { _, gotErr := c.Get(ctx, addr) require.True(t, client.IsErrObjectNotFound(gotErr)) } require.NoError(t, c.Close()) } type testMetabase struct{} func (testMetabase) UpdateStorageID(meta.UpdateStorageIDPrm) (meta.UpdateStorageIDRes, error) { return meta.UpdateStorageIDRes{}, nil }