Documentation
¶
Index ¶
- Variables
- func NewTestConfig() *storagex.Config
- func NewTestKeyBuilder() storagex.KeyBuilder
- type MockStorage
- func (m *MockStorage) AbortMultipart(ctx context.Context, key, uploadID string) error
- func (m *MockStorage) CompleteMultipart(ctx context.Context, key, uploadID string, etags []string) (storagex.Stat, error)
- func (m *MockStorage) CreateMultipart(ctx context.Context, key string, putOpts *storagex.PutOptions) (uploadID string, err error)
- func (m *MockStorage) Delete(ctx context.Context, key string) error
- func (m *MockStorage) DeleteBatch(ctx context.Context, keys []string) ([]string, error)
- func (m *MockStorage) Get(ctx context.Context, key string) (storagex.ReaderAtCloser, storagex.Stat, error)
- func (m *MockStorage) Head(ctx context.Context, key string) (storagex.Stat, error)
- func (m *MockStorage) List(ctx context.Context, opts storagex.ListOptions) (storagex.ListPage, error)
- func (m *MockStorage) MultipartUpload(ctx context.Context, key string, src io.Reader, cfg *storagex.MultipartConfig, ...) (storagex.Stat, error)
- func (m *MockStorage) PresignGet(ctx context.Context, key string, opts *storagex.PresignOptions) (url string, err error)
- func (m *MockStorage) PresignPut(ctx context.Context, key string, opts *storagex.PresignOptions) (url string, err error)
- func (m *MockStorage) Put(ctx context.Context, key string, r io.Reader, opts *storagex.PutOptions) (storagex.Stat, error)
- func (m *MockStorage) PutBytes(ctx context.Context, key string, data []byte, opts *storagex.PutOptions) (storagex.Stat, error)
- func (m *MockStorage) PutFile(ctx context.Context, key string, path string, opts *storagex.PutOptions) (storagex.Stat, error)
- func (m *MockStorage) UploadPart(ctx context.Context, key, uploadID string, partNumber int32, part io.Reader, ...) (etag string, err error)
Constants ¶
This section is empty.
Variables ¶
var TestModule = fx.Module("storagex-test", fx.Provide( NewTestConfig, NewTestKeyBuilder, ), )
TestModule provides a module for testing with mock/test implementations. This module provides a test configuration and key builder suitable for unit tests without requiring external configuration.
Example usage:
import "github.com/gostratum/storagex/internal/testutil"
func TestMyApp(t *testing.T) {
app := fx.New(
testutil.TestModule,
fx.Invoke(func(cfg *storagex.Config) {
// Use test config
}),
)
// ...
}
Functions ¶
func NewTestConfig ¶ added in v0.2.0
NewTestConfig creates a test configuration suitable for unit tests. The configuration points to a local MinIO instance with default credentials.
func NewTestKeyBuilder ¶ added in v0.2.0
func NewTestKeyBuilder() storagex.KeyBuilder
NewTestKeyBuilder creates a test key builder with a "test" prefix.
Types ¶
type MockStorage ¶
type MockStorage struct {
// contains filtered or unexported fields
}
MockStorage is a thread-safe in-memory implementation of storagex.Storage for testing
func NewMockStorage ¶
func NewMockStorage() *MockStorage
NewMockStorage creates a new in-memory mock storage
func (*MockStorage) AbortMultipart ¶
func (m *MockStorage) AbortMultipart(ctx context.Context, key, uploadID string) error
AbortMultipart cancels a multipart upload and cleans up parts
func (*MockStorage) CompleteMultipart ¶
func (m *MockStorage) CompleteMultipart(ctx context.Context, key, uploadID string, etags []string) (storagex.Stat, error)
CompleteMultipart finalizes a multipart upload
func (*MockStorage) CreateMultipart ¶
func (m *MockStorage) CreateMultipart(ctx context.Context, key string, putOpts *storagex.PutOptions) (uploadID string, err error)
CreateMultipart initiates a multipart upload session
func (*MockStorage) Delete ¶
func (m *MockStorage) Delete(ctx context.Context, key string) error
Delete removes a single object
func (*MockStorage) DeleteBatch ¶
DeleteBatch removes multiple objects, returns keys that failed to delete
func (*MockStorage) Get ¶
func (m *MockStorage) Get(ctx context.Context, key string) (storagex.ReaderAtCloser, storagex.Stat, error)
Get retrieves an object as a streaming reader with metadata
func (*MockStorage) List ¶
func (m *MockStorage) List(ctx context.Context, opts storagex.ListOptions) (storagex.ListPage, error)
List retrieves objects with optional filtering and pagination
func (*MockStorage) MultipartUpload ¶
func (m *MockStorage) MultipartUpload(ctx context.Context, key string, src io.Reader, cfg *storagex.MultipartConfig, putOpts *storagex.PutOptions) (storagex.Stat, error)
MultipartUpload uploads large objects using multipart upload
func (*MockStorage) PresignGet ¶
func (m *MockStorage) PresignGet(ctx context.Context, key string, opts *storagex.PresignOptions) (url string, err error)
PresignGet generates a presigned URL for downloading an object
func (*MockStorage) PresignPut ¶
func (m *MockStorage) PresignPut(ctx context.Context, key string, opts *storagex.PresignOptions) (url string, err error)
PresignPut generates a presigned URL for uploading an object
func (*MockStorage) Put ¶
func (m *MockStorage) Put(ctx context.Context, key string, r io.Reader, opts *storagex.PutOptions) (storagex.Stat, error)
Put stores an object from an io.Reader
func (*MockStorage) PutBytes ¶
func (m *MockStorage) PutBytes(ctx context.Context, key string, data []byte, opts *storagex.PutOptions) (storagex.Stat, error)
PutBytes stores an object from a byte slice