internal/storage/testify_mock_bucket.go (113 lines of code) (raw):
// Copyright 2025 Google LLC
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package storage
import (
"context"
"github.com/googlecloudplatform/gcsfuse/v2/internal/storage/gcs"
"github.com/stretchr/testify/mock"
)
// TODO: Rename to mock bucket once deprecated ogle mock bucket is removed from all usages in unit tests
type TestifyMockBucket struct {
mock.Mock
}
func (m *TestifyMockBucket) Name() string {
args := m.Called()
return args.String(0)
}
func (m *TestifyMockBucket) BucketType() gcs.BucketType {
args := m.Called()
return args.Get(0).(gcs.BucketType)
}
func (m *TestifyMockBucket) NewReaderWithReadHandle(ctx context.Context, req *gcs.ReadObjectRequest) (gcs.StorageReader, error) {
args := m.Called(ctx, req)
if args.Get(0) == nil {
return nil, args.Error(1)
}
return args.Get(0).(gcs.StorageReader), args.Error(1)
}
func (m *TestifyMockBucket) CreateObject(ctx context.Context, req *gcs.CreateObjectRequest) (*gcs.Object, error) {
args := m.Called(ctx, req)
if args.Get(1) != nil {
return nil, args.Error(1)
}
return args.Get(0).(*gcs.Object), nil
}
func (m *TestifyMockBucket) CreateObjectChunkWriter(ctx context.Context, req *gcs.CreateObjectRequest, chunkSize int, callBack func(bytesUploadedSoFar int64)) (wc gcs.Writer, err error) {
args := m.Called(ctx, req)
if args.Get(1) != nil {
return nil, args.Error(1)
}
return args.Get(0).(gcs.Writer), nil
}
func (m *TestifyMockBucket) FinalizeUpload(ctx context.Context, w gcs.Writer) (*gcs.MinObject, error) {
args := m.Called(ctx, w.ObjectName())
return args.Get(0).(*gcs.MinObject), args.Error(1)
}
func (m *TestifyMockBucket) FlushPendingWrites(ctx context.Context, w gcs.Writer) (*gcs.MinObject, error) {
args := m.Called(ctx, w)
return args.Get(0).(*gcs.MinObject), args.Error(1)
}
func (m *TestifyMockBucket) CopyObject(ctx context.Context, req *gcs.CopyObjectRequest) (*gcs.Object, error) {
args := m.Called(ctx, req)
return args.Get(0).(*gcs.Object), args.Error(1)
}
func (m *TestifyMockBucket) ComposeObjects(ctx context.Context, req *gcs.ComposeObjectsRequest) (*gcs.Object, error) {
args := m.Called(ctx, req)
return args.Get(0).(*gcs.Object), args.Error(1)
}
func (m *TestifyMockBucket) StatObject(ctx context.Context, req *gcs.StatObjectRequest) (*gcs.MinObject, *gcs.ExtendedObjectAttributes, error) {
args := m.Called(ctx, req)
if args.Get(2) != nil {
return nil, nil, args.Error(2)
}
return args.Get(0).(*gcs.MinObject), args.Get(1).(*gcs.ExtendedObjectAttributes), nil
}
func (m *TestifyMockBucket) ListObjects(ctx context.Context, req *gcs.ListObjectsRequest) (*gcs.Listing, error) {
args := m.Called(ctx, req)
return args.Get(0).(*gcs.Listing), args.Error(1)
}
func (m *TestifyMockBucket) UpdateObject(ctx context.Context, req *gcs.UpdateObjectRequest) (*gcs.Object, error) {
args := m.Called(ctx, req)
return args.Get(0).(*gcs.Object), args.Error(1)
}
func (m *TestifyMockBucket) DeleteObject(ctx context.Context, req *gcs.DeleteObjectRequest) error {
args := m.Called(ctx, req)
return args.Error(0)
}
func (m *TestifyMockBucket) MoveObject(ctx context.Context, req *gcs.MoveObjectRequest) (*gcs.Object, error) {
args := m.Called(ctx, req)
if args.Get(0) != nil {
return args.Get(0).(*gcs.Object), nil
}
return nil, args.Error(1)
}
func (m *TestifyMockBucket) DeleteFolder(ctx context.Context, folderName string) error {
args := m.Called(ctx, folderName)
return args.Error(0)
}
func (m *TestifyMockBucket) GetFolder(ctx context.Context, folderName string) (*gcs.Folder, error) {
args := m.Called(ctx, folderName)
if args.Get(0) != nil {
return args.Get(0).(*gcs.Folder), nil
}
return nil, args.Error(1)
}
func (m *TestifyMockBucket) RenameFolder(ctx context.Context, folderName string, destinationFolderId string) (*gcs.Folder, error) {
args := m.Called(ctx, folderName, destinationFolderId)
if args.Get(0) != nil {
return args.Get(0).(*gcs.Folder), nil
}
return nil, args.Error(1)
}
func (m *TestifyMockBucket) CreateFolder(ctx context.Context, folderName string) (*gcs.Folder, error) {
args := m.Called(ctx, folderName)
if args.Get(0) != nil {
return args.Get(0).(*gcs.Folder), nil
}
return nil, args.Error(1)
}
func (m *TestifyMockBucket) NewMultiRangeDownloader(
ctx context.Context, req *gcs.MultiRangeDownloaderRequest) (gcs.MultiRangeDownloader, error) {
args := m.Called(ctx, req)
if args.Get(0) != nil {
return args.Get(0).(gcs.MultiRangeDownloader), nil
}
return nil, args.Error(1)
}