github.com/treeverse/lakefs@v1.24.1-0.20240520134607-95648127bfb0/pkg/gateway/operations/mock_adapter_test.go (about)

     1  package operations_test
     2  
     3  import (
     4  	"context"
     5  	"errors"
     6  	"io"
     7  	"net/http"
     8  	"net/url"
     9  	"time"
    10  
    11  	"github.com/treeverse/lakefs/pkg/block"
    12  )
    13  
    14  type mockAdapter struct {
    15  	totalSize        int64
    16  	count            int
    17  	lastBucket       string
    18  	lastStorageClass *string
    19  }
    20  
    21  func newMockAdapter() *mockAdapter {
    22  	adapter := mockAdapter{
    23  		totalSize:        0,
    24  		count:            0,
    25  		lastStorageClass: nil,
    26  	}
    27  	return &adapter
    28  }
    29  
    30  func (a *mockAdapter) GetPreSignedURL(_ context.Context, _ block.ObjectPointer, _ block.PreSignMode) (string, time.Time, error) {
    31  	return "", time.Time{}, block.ErrOperationNotSupported
    32  }
    33  
    34  func (a *mockAdapter) GetPresignUploadPartURL(_ context.Context, _ block.ObjectPointer, _ string, _ int) (string, error) {
    35  	return "", block.ErrOperationNotSupported
    36  }
    37  
    38  func (a *mockAdapter) Put(_ context.Context, obj block.ObjectPointer, _ int64, reader io.Reader, opts block.PutOpts) error {
    39  	data, err := io.ReadAll(reader)
    40  	if err != nil {
    41  		return err
    42  	}
    43  	a.totalSize += int64(len(data))
    44  	a.count++
    45  	a.lastBucket = obj.StorageNamespace
    46  	a.lastStorageClass = opts.StorageClass
    47  	return nil
    48  }
    49  
    50  func (a *mockAdapter) Exists(_ context.Context, _ block.ObjectPointer) (bool, error) {
    51  	return false, nil
    52  }
    53  
    54  func (a *mockAdapter) Get(_ context.Context, _ block.ObjectPointer, _ int64) (io.ReadCloser, error) {
    55  	return nil, nil
    56  }
    57  
    58  func (a *mockAdapter) GetWalker(_ *url.URL) (block.Walker, error) {
    59  	return nil, nil
    60  }
    61  
    62  func (a *mockAdapter) GetRange(_ context.Context, _ block.ObjectPointer, _ int64, _ int64) (io.ReadCloser, error) {
    63  	return nil, nil
    64  }
    65  
    66  func (a *mockAdapter) GetProperties(_ context.Context, _ block.ObjectPointer) (block.Properties, error) {
    67  	return block.Properties{}, errors.New("getProperties method not implemented in mock adapter")
    68  }
    69  
    70  func (a *mockAdapter) Remove(_ context.Context, _ block.ObjectPointer) error {
    71  	return errors.New("remove method not implemented in mock adapter")
    72  }
    73  
    74  func (a *mockAdapter) Copy(_ context.Context, _, _ block.ObjectPointer) error {
    75  	return errors.New("copy method not implemented in mock adapter")
    76  }
    77  
    78  func (a *mockAdapter) CreateMultiPartUpload(_ context.Context, _ block.ObjectPointer, _ *http.Request, _ block.CreateMultiPartUploadOpts) (*block.CreateMultiPartUploadResponse, error) {
    79  	panic("try to create multipart in mock adapter")
    80  }
    81  
    82  func (a *mockAdapter) UploadPart(_ context.Context, _ block.ObjectPointer, _ int64, _ io.Reader, _ string, _ int) (*block.UploadPartResponse, error) {
    83  	panic("try to upload part in mock adapter")
    84  }
    85  
    86  func (a *mockAdapter) AbortMultiPartUpload(_ context.Context, _ block.ObjectPointer, _ string) error {
    87  	panic("try to abort multipart in mock adapter")
    88  }
    89  
    90  func (a *mockAdapter) CompleteMultiPartUpload(_ context.Context, _ block.ObjectPointer, _ string, _ *block.MultipartUploadCompletion) (*block.CompleteMultiPartUploadResponse, error) {
    91  	panic("try to complete multipart in mock adapter")
    92  }
    93  
    94  func (a *mockAdapter) UploadCopyPart(_ context.Context, _, _ block.ObjectPointer, _ string, _ int) (*block.UploadPartResponse, error) {
    95  	panic("try to upload copy part in mock adapter")
    96  }
    97  
    98  func (a *mockAdapter) UploadCopyPartRange(_ context.Context, _, _ block.ObjectPointer, _ string, _ int, _, _ int64) (*block.UploadPartResponse, error) {
    99  	panic("try to upload copy part range in mock adapter")
   100  }
   101  
   102  func (a *mockAdapter) ListParts(_ context.Context, _ block.ObjectPointer, _ string, _ block.ListPartsOpts) (*block.ListPartsResponse, error) {
   103  	panic("try to list parts in mock adapter")
   104  }
   105  
   106  func (a *mockAdapter) BlockstoreType() string {
   107  	return "s3"
   108  }
   109  
   110  func (a *mockAdapter) GetStorageNamespaceInfo() block.StorageNamespaceInfo {
   111  	info := block.DefaultStorageNamespaceInfo("mock")
   112  	info.PreSignSupport = false
   113  	info.ImportSupport = false
   114  	return info
   115  }
   116  
   117  func (a *mockAdapter) ResolveNamespace(storageNamespace, key string, identifierType block.IdentifierType) (block.QualifiedKey, error) {
   118  	return block.DefaultResolveNamespace(storageNamespace, key, identifierType)
   119  }
   120  
   121  func (a *mockAdapter) RuntimeStats() map[string]string {
   122  	return nil
   123  }