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 }