From c47cf6ec24aa4731562e07fee962b70893b09881 Mon Sep 17 00:00:00 2001 From: Lena Fuhrimann <6780471+cloudlena@users.noreply.github.com> Date: Thu, 31 May 2018 16:10:41 +0200 Subject: [PATCH] Use way instead of mux --- Gopkg.lock | 22 +++----- Gopkg.toml | 6 +- cmd/s3manager/main.go | 59 +++++--------------- internal/app/s3manager/bucket_view.go | 13 ++--- internal/app/s3manager/bucket_view_test.go | 11 ++-- internal/app/s3manager/buckets_view.go | 8 +-- internal/app/s3manager/buckets_view_test.go | 10 +--- internal/app/s3manager/copy_object.go | 50 ----------------- internal/app/s3manager/create_bucket.go | 8 +-- internal/app/s3manager/create_bucket_test.go | 4 +- internal/app/s3manager/create_object.go | 13 +++-- internal/app/s3manager/delete_bucket.go | 12 ++-- internal/app/s3manager/delete_bucket_test.go | 4 +- internal/app/s3manager/delete_object.go | 15 +++-- internal/app/s3manager/delete_object_test.go | 4 +- internal/app/s3manager/get_object.go | 15 +++-- internal/app/s3manager/get_object_test.go | 11 ++-- internal/app/s3manager/s3.go | 1 - internal/app/s3manager/s3_test.go | 49 ---------------- 19 files changed, 82 insertions(+), 233 deletions(-) delete mode 100644 internal/app/s3manager/copy_object.go diff --git a/Gopkg.lock b/Gopkg.lock index 12e1024..d449b7a 100644 --- a/Gopkg.lock +++ b/Gopkg.lock @@ -19,24 +19,18 @@ revision = "06f5f3d67269ccec1fe5fe4134ba6e982984f7f5" version = "v1.37.0" -[[projects]] - name = "github.com/gorilla/context" - packages = ["."] - revision = "08b5f424b9271eedf6f9f0ce86cb9396ed337a42" - version = "v1.1.1" - -[[projects]] - name = "github.com/gorilla/mux" - packages = ["."] - revision = "e3702bed27f0d39777b0b37b664b6280e8ef8fbf" - version = "v1.6.2" - [[projects]] branch = "master" name = "github.com/mastertinner/adapters" packages = ["logging"] revision = "368acae73d1569f0495b00991aaa85ec27d6ee8e" +[[projects]] + branch = "master" + name = "github.com/matryer/way" + packages = ["."] + revision = "9632d0c407b008073d19d0c4da1e0fc3e9477508" + [[projects]] name = "github.com/minio/minio-go" packages = [ @@ -97,7 +91,7 @@ "http/httpguts", "idna" ] - revision = "75944861c7512f64725d687546cfbc757626151f" + revision = "1e491301e022f8f977054da4c2d852decd59571f" [[projects]] branch = "master" @@ -133,6 +127,6 @@ [solve-meta] analyzer-name = "dep" analyzer-version = 1 - inputs-digest = "6db25b97d13bf45e956ff0f573b637705d594109858fb3424eeadf7233fdf517" + inputs-digest = "9f288d84be4931be1d2e9529f7e3350bbfaa9f6cb0968db278c6efddb54e9f64" solver-name = "gps-cdcl" solver-version = 1 diff --git a/Gopkg.toml b/Gopkg.toml index 12c7a13..5e2e70e 100644 --- a/Gopkg.toml +++ b/Gopkg.toml @@ -26,12 +26,12 @@ [[constraint]] - name = "github.com/gorilla/mux" - version = "1.6.2" + branch = "master" + name = "github.com/mastertinner/adapters" [[constraint]] branch = "master" - name = "github.com/mastertinner/adapters" + name = "github.com/matryer/way" [[constraint]] name = "github.com/minio/minio-go" diff --git a/cmd/s3manager/main.go b/cmd/s3manager/main.go index 6d10343..7a62080 100644 --- a/cmd/s3manager/main.go +++ b/cmd/s3manager/main.go @@ -7,9 +7,9 @@ import ( "os" "path/filepath" - "github.com/gorilla/mux" "github.com/mastertinner/adapters/logging" "github.com/mastertinner/s3manager/internal/app/s3manager" + "github.com/matryer/way" minio "github.com/minio/minio-go" "github.com/pkg/errors" ) @@ -29,6 +29,8 @@ func main() { os.Exit(2) } + tmplDir := filepath.Join("web", "template") + // Set up S3 client var s3 *minio.Client var err error @@ -41,50 +43,17 @@ func main() { log.Fatalln(errors.Wrap(err, "error creating s3 client")) } - tmplDir := filepath.Join("web", "template") - // Set up router - r := mux.NewRouter().StrictSlash(true) - r.Use(logging.Handler(os.Stdout)) + r := way.NewRouter() + r.Handle(http.MethodGet, "/", http.RedirectHandler("/buckets", http.StatusPermanentRedirect)) + r.Handle(http.MethodGet, "/buckets", s3manager.HandleBucketsView(s3, tmplDir)) + r.Handle(http.MethodGet, "/buckets/:bucketName", s3manager.HandleBucketView(s3, tmplDir)) + r.Handle(http.MethodPost, "/api/buckets", s3manager.HandleCreateBucket(s3)) + r.Handle(http.MethodDelete, "/api/buckets/:bucketName", s3manager.HandleDeleteBucket(s3)) + r.Handle(http.MethodPost, "/api/buckets/:bucketName/objects", s3manager.HandleCreateObject(s3)) + r.Handle(http.MethodGet, "/api/buckets/:bucketName/objects/:objectName", s3manager.HandleGetObject(s3)) + r.Handle(http.MethodDelete, "/api/buckets/:bucketName/objects/:objectName", s3manager.HandleDeleteObject(s3)) - r. - Methods(http.MethodGet). - Path("/"). - Handler(http.RedirectHandler("/buckets", http.StatusPermanentRedirect)) - r. - Methods(http.MethodGet). - Path("/buckets"). - Handler(s3manager.BucketsViewHandler(s3, tmplDir)) - r. - Methods(http.MethodGet). - Path("/buckets/{bucketName}"). - Handler(s3manager.BucketViewHandler(s3, tmplDir)) - r. - Methods(http.MethodPost). - Path("/api/buckets"). - Handler(s3manager.CreateBucketHandler(s3)) - r. - Methods(http.MethodDelete). - Path("/api/buckets/{bucketName}"). - Handler(s3manager.DeleteBucketHandler(s3)) - r. - Methods(http.MethodPost). - Headers("Content-Type", "application/json; charset=utf-8"). - Path("/api/buckets/{bucketName}/objects"). - Handler(s3manager.CopyObjectHandler(s3)) - r. - Methods(http.MethodPost). - HeadersRegexp("Content-Type", "multipart/form-data"). - Path("/api/buckets/{bucketName}/objects"). - Handler(s3manager.CreateObjectHandler(s3)) - r. - Methods(http.MethodGet). - Path("/api/buckets/{bucketName}/objects/{objectName}"). - Handler(s3manager.GetObjectHandler(s3)) - r. - Methods(http.MethodDelete). - Path("/api/buckets/{bucketName}/objects/{objectName}"). - Handler(s3manager.DeleteObjectHandler(s3)) - - log.Fatal(http.ListenAndServe(":"+*port, r)) + lr := logging.Handler(os.Stdout)(r) + log.Fatal(http.ListenAndServe(":"+*port, lr)) } diff --git a/internal/app/s3manager/bucket_view.go b/internal/app/s3manager/bucket_view.go index 2570735..6ab31bd 100644 --- a/internal/app/s3manager/bucket_view.go +++ b/internal/app/s3manager/bucket_view.go @@ -6,13 +6,13 @@ import ( "path" "path/filepath" - "github.com/gorilla/mux" + "github.com/matryer/way" minio "github.com/minio/minio-go" "github.com/pkg/errors" ) -// BucketViewHandler shows the details page of a bucket. -func BucketViewHandler(s3 S3, tmplDir string) http.Handler { +// HandleBucketView shows the details page of a bucket. +func HandleBucketView(s3 S3, tmplDir string) http.HandlerFunc { type objectWithIcon struct { minio.ObjectInfo Icon string @@ -22,9 +22,8 @@ func BucketViewHandler(s3 S3, tmplDir string) http.Handler { BucketName string Objects []objectWithIcon } - - return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { - bucketName := mux.Vars(r)["bucketName"] + return func(w http.ResponseWriter, r *http.Request) { + bucketName := way.Param(r.Context(), "bucketName") var objs []objectWithIcon doneCh := make(chan struct{}) @@ -55,7 +54,7 @@ func BucketViewHandler(s3 S3, tmplDir string) http.Handler { handleHTTPError(w, errors.Wrap(err, "error executing template")) return } - }) + } } // icon returns an icon for a file type. diff --git a/internal/app/s3manager/bucket_view_test.go b/internal/app/s3manager/bucket_view_test.go index 5664fb0..beb61c0 100644 --- a/internal/app/s3manager/bucket_view_test.go +++ b/internal/app/s3manager/bucket_view_test.go @@ -9,13 +9,13 @@ import ( "path/filepath" "testing" - "github.com/gorilla/mux" "github.com/mastertinner/s3manager/internal/app/s3manager" + "github.com/matryer/way" minio "github.com/minio/minio-go" "github.com/stretchr/testify/assert" ) -func TestBucketViewHandler(t *testing.T) { +func TestHandleBucketView(t *testing.T) { cases := map[string]struct { listObjectsV2Func func(string, string, bool, <-chan struct{}) <-chan minio.ObjectInfo bucketName string @@ -121,11 +121,8 @@ func TestBucketViewHandler(t *testing.T) { } tmplDir := filepath.Join("..", "..", "..", "web", "template") - r := mux.NewRouter() - r. - Methods(http.MethodGet). - Path("/buckets/{bucketName}"). - Handler(s3manager.BucketViewHandler(s3, tmplDir)) + r := way.NewRouter() + r.Handle(http.MethodGet, "/buckets/:bucketName", s3manager.HandleBucketView(s3, tmplDir)) ts := httptest.NewServer(r) defer ts.Close() diff --git a/internal/app/s3manager/buckets_view.go b/internal/app/s3manager/buckets_view.go index c1a140a..1753777 100644 --- a/internal/app/s3manager/buckets_view.go +++ b/internal/app/s3manager/buckets_view.go @@ -8,9 +8,9 @@ import ( "github.com/pkg/errors" ) -// BucketsViewHandler renders all buckets on an HTML page. -func BucketsViewHandler(s3 S3, tmplDir string) http.Handler { - return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { +// HandleBucketsView renders all buckets on an HTML page. +func HandleBucketsView(s3 S3, tmplDir string) http.HandlerFunc { + return func(w http.ResponseWriter, r *http.Request) { buckets, err := s3.ListBuckets() if err != nil { handleHTTPError(w, errors.Wrap(err, "error listing buckets")) @@ -29,5 +29,5 @@ func BucketsViewHandler(s3 S3, tmplDir string) http.Handler { handleHTTPError(w, errors.Wrap(err, "error executing template")) return } - }) + } } diff --git a/internal/app/s3manager/buckets_view_test.go b/internal/app/s3manager/buckets_view_test.go index fbad3b9..5e3515b 100644 --- a/internal/app/s3manager/buckets_view_test.go +++ b/internal/app/s3manager/buckets_view_test.go @@ -7,13 +7,12 @@ import ( "path/filepath" "testing" - "github.com/gorilla/mux" "github.com/mastertinner/s3manager/internal/app/s3manager" minio "github.com/minio/minio-go" "github.com/stretchr/testify/assert" ) -func TestBucketsViewHandler(t *testing.T) { +func TestHandleBucketsView(t *testing.T) { cases := map[string]struct { listBucketsFunc func() ([]minio.BucketInfo, error) expectedStatusCode int @@ -51,17 +50,12 @@ func TestBucketsViewHandler(t *testing.T) { } tmplDir := filepath.Join("..", "..", "..", "web", "template") - r := mux.NewRouter() - r. - Methods(http.MethodGet). - Path("/buckets/{bucketName}"). - Handler(s3manager.BucketViewHandler(s3, tmplDir)) req, err := http.NewRequest(http.MethodGet, "/buckets", nil) assert.NoError(err) rr := httptest.NewRecorder() - handler := s3manager.BucketsViewHandler(s3, tmplDir) + handler := s3manager.HandleBucketsView(s3, tmplDir) handler.ServeHTTP(rr, req) resp := rr.Result() diff --git a/internal/app/s3manager/copy_object.go b/internal/app/s3manager/copy_object.go deleted file mode 100644 index 64e04f0..0000000 --- a/internal/app/s3manager/copy_object.go +++ /dev/null @@ -1,50 +0,0 @@ -package s3manager - -import ( - "encoding/json" - "net/http" - - "github.com/pkg/errors" - - minio "github.com/minio/minio-go" -) - -// CopyObjectHandler copies an existing object under a new name. -func CopyObjectHandler(s3 S3) http.Handler { - // request is the information about an object to copy. - type request struct { - BucketName string `json:"bucketName"` - ObjectName string `json:"objectName"` - SourceBucketName string `json:"sourceBucketName"` - SourceObjectName string `json:"sourceObjectName"` - } - - return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { - var req request - err := json.NewDecoder(r.Body).Decode(&req) - if err != nil { - handleHTTPError(w, errors.Wrap(err, "error decoding body JSON")) - return - } - - src := minio.NewSourceInfo(req.SourceBucketName, req.SourceObjectName, nil) - dst, err := minio.NewDestinationInfo(req.BucketName, req.ObjectName, nil, nil) - if err != nil { - handleHTTPError(w, errors.Wrap(err, "error creating destination for copying")) - return - } - err = s3.CopyObject(dst, src) - if err != nil { - handleHTTPError(w, errors.Wrap(err, "error copying object")) - return - } - - w.Header().Set("Content-Type", "application/json; charset=utf-8") - w.WriteHeader(http.StatusCreated) - err = json.NewEncoder(w).Encode(req) - if err != nil { - handleHTTPError(w, errors.Wrap(err, "error encoding JSON")) - return - } - }) -} diff --git a/internal/app/s3manager/create_bucket.go b/internal/app/s3manager/create_bucket.go index eb1f591..d6137eb 100644 --- a/internal/app/s3manager/create_bucket.go +++ b/internal/app/s3manager/create_bucket.go @@ -8,9 +8,9 @@ import ( "github.com/pkg/errors" ) -// CreateBucketHandler creates a new bucket. -func CreateBucketHandler(s3 S3) http.Handler { - return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { +// HandleCreateBucket creates a new bucket. +func HandleCreateBucket(s3 S3) http.HandlerFunc { + return func(w http.ResponseWriter, r *http.Request) { var bucket minio.BucketInfo err := json.NewDecoder(r.Body).Decode(&bucket) if err != nil { @@ -31,5 +31,5 @@ func CreateBucketHandler(s3 S3) http.Handler { handleHTTPError(w, errors.Wrap(err, "error encoding JSON")) return } - }) + } } diff --git a/internal/app/s3manager/create_bucket_test.go b/internal/app/s3manager/create_bucket_test.go index fac0fe6..62c52db 100644 --- a/internal/app/s3manager/create_bucket_test.go +++ b/internal/app/s3manager/create_bucket_test.go @@ -11,7 +11,7 @@ import ( "github.com/stretchr/testify/assert" ) -func TestCreateBucketHandler(t *testing.T) { +func TestHandleCreateBucket(t *testing.T) { cases := map[string]struct { makeBucketFunc func(string, string) error body string @@ -64,7 +64,7 @@ func TestCreateBucketHandler(t *testing.T) { assert.NoError(err) rr := httptest.NewRecorder() - handler := s3manager.CreateBucketHandler(s3) + handler := s3manager.HandleCreateBucket(s3) handler.ServeHTTP(rr, req) resp := rr.Result() diff --git a/internal/app/s3manager/create_object.go b/internal/app/s3manager/create_object.go index a9ace9f..341be22 100644 --- a/internal/app/s3manager/create_object.go +++ b/internal/app/s3manager/create_object.go @@ -4,15 +4,16 @@ import ( "log" "net/http" - "github.com/gorilla/mux" + "github.com/matryer/way" minio "github.com/minio/minio-go" "github.com/pkg/errors" ) -// CreateObjectHandler uploads a new object. -func CreateObjectHandler(s3 S3) http.Handler { - return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { - bucketName := mux.Vars(r)["bucketName"] +// HandleCreateObject uploads a new object. +func HandleCreateObject(s3 S3) http.HandlerFunc { + return func(w http.ResponseWriter, r *http.Request) { + bucketName := way.Param(r.Context(), "bucketName") + err := r.ParseMultipartForm(32 << 20) if err != nil { handleHTTPError(w, errors.Wrap(err, "error parsing multipart form")) @@ -37,5 +38,5 @@ func CreateObjectHandler(s3 S3) http.Handler { } w.WriteHeader(http.StatusCreated) - }) + } } diff --git a/internal/app/s3manager/delete_bucket.go b/internal/app/s3manager/delete_bucket.go index 2f0180e..3a7e204 100644 --- a/internal/app/s3manager/delete_bucket.go +++ b/internal/app/s3manager/delete_bucket.go @@ -3,14 +3,14 @@ package s3manager import ( "net/http" - "github.com/gorilla/mux" + "github.com/matryer/way" "github.com/pkg/errors" ) -// DeleteBucketHandler deletes a bucket. -func DeleteBucketHandler(s3 S3) http.Handler { - return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { - bucketName := mux.Vars(r)["bucketName"] +// HandleDeleteBucket deletes a bucket. +func HandleDeleteBucket(s3 S3) http.HandlerFunc { + return func(w http.ResponseWriter, r *http.Request) { + bucketName := way.Param(r.Context(), "bucketName") err := s3.RemoveBucket(bucketName) if err != nil { @@ -19,5 +19,5 @@ func DeleteBucketHandler(s3 S3) http.Handler { } w.WriteHeader(http.StatusNoContent) - }) + } } diff --git a/internal/app/s3manager/delete_bucket_test.go b/internal/app/s3manager/delete_bucket_test.go index 7d536f8..8cf6b85 100644 --- a/internal/app/s3manager/delete_bucket_test.go +++ b/internal/app/s3manager/delete_bucket_test.go @@ -10,7 +10,7 @@ import ( "github.com/stretchr/testify/assert" ) -func TestDeleteBucketHandler(t *testing.T) { +func TestHandleDeleteBucket(t *testing.T) { cases := map[string]struct { removeBucketFunc func(string) error expectedStatusCode int @@ -44,7 +44,7 @@ func TestDeleteBucketHandler(t *testing.T) { assert.NoError(err) rr := httptest.NewRecorder() - handler := s3manager.DeleteBucketHandler(s3) + handler := s3manager.HandleDeleteBucket(s3) handler.ServeHTTP(rr, req) resp := rr.Result() diff --git a/internal/app/s3manager/delete_object.go b/internal/app/s3manager/delete_object.go index eb947c6..4e32020 100644 --- a/internal/app/s3manager/delete_object.go +++ b/internal/app/s3manager/delete_object.go @@ -3,16 +3,15 @@ package s3manager import ( "net/http" - "github.com/gorilla/mux" + "github.com/matryer/way" "github.com/pkg/errors" ) -// DeleteObjectHandler deletes an object. -func DeleteObjectHandler(s3 S3) http.Handler { - return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { - vars := mux.Vars(r) - bucketName := vars["bucketName"] - objectName := vars["objectName"] +// HandleDeleteObject deletes an object. +func HandleDeleteObject(s3 S3) http.HandlerFunc { + return func(w http.ResponseWriter, r *http.Request) { + bucketName := way.Param(r.Context(), "bucketName") + objectName := way.Param(r.Context(), "objectName") err := s3.RemoveObject(bucketName, objectName) if err != nil { @@ -21,5 +20,5 @@ func DeleteObjectHandler(s3 S3) http.Handler { } w.WriteHeader(http.StatusNoContent) - }) + } } diff --git a/internal/app/s3manager/delete_object_test.go b/internal/app/s3manager/delete_object_test.go index 44f5c25..275ac11 100644 --- a/internal/app/s3manager/delete_object_test.go +++ b/internal/app/s3manager/delete_object_test.go @@ -10,7 +10,7 @@ import ( "github.com/stretchr/testify/assert" ) -func TestDeleteObjectHandler(t *testing.T) { +func TestHandleDeleteObject(t *testing.T) { cases := map[string]struct { removeObjectFunc func(string, string) error expectedStatusCode int @@ -44,7 +44,7 @@ func TestDeleteObjectHandler(t *testing.T) { assert.NoError(err) rr := httptest.NewRecorder() - handler := s3manager.DeleteObjectHandler(s3) + handler := s3manager.HandleDeleteObject(s3) handler.ServeHTTP(rr, req) diff --git a/internal/app/s3manager/get_object.go b/internal/app/s3manager/get_object.go index 64fe992..67aabef 100644 --- a/internal/app/s3manager/get_object.go +++ b/internal/app/s3manager/get_object.go @@ -5,17 +5,16 @@ import ( "io" "net/http" - "github.com/gorilla/mux" + "github.com/matryer/way" minio "github.com/minio/minio-go" "github.com/pkg/errors" ) -// GetObjectHandler downloads an object to the client. -func GetObjectHandler(s3 S3) http.Handler { - return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { - vars := mux.Vars(r) - bucketName := vars["bucketName"] - objectName := vars["objectName"] +// HandleGetObject downloads an object to the client. +func HandleGetObject(s3 S3) http.HandlerFunc { + return func(w http.ResponseWriter, r *http.Request) { + bucketName := way.Param(r.Context(), "bucketName") + objectName := way.Param(r.Context(), "objectName") object, err := s3.GetObject(bucketName, objectName, minio.GetObjectOptions{}) if err != nil { @@ -30,5 +29,5 @@ func GetObjectHandler(s3 S3) http.Handler { handleHTTPError(w, errors.Wrap(err, "error copying object to response writer")) return } - }) + } } diff --git a/internal/app/s3manager/get_object_test.go b/internal/app/s3manager/get_object_test.go index d9a252b..81eafa1 100644 --- a/internal/app/s3manager/get_object_test.go +++ b/internal/app/s3manager/get_object_test.go @@ -8,13 +8,13 @@ import ( "net/http/httptest" "testing" - "github.com/gorilla/mux" "github.com/mastertinner/s3manager/internal/app/s3manager" + "github.com/matryer/way" minio "github.com/minio/minio-go" "github.com/stretchr/testify/assert" ) -func TestGetObjectHandler(t *testing.T) { +func TestHandleGetObject(t *testing.T) { cases := map[string]struct { getObjectFunc func(string, string, minio.GetObjectOptions) (*minio.Object, error) bucketName string @@ -41,11 +41,8 @@ func TestGetObjectHandler(t *testing.T) { GetObjectFunc: tc.getObjectFunc, } - r := mux.NewRouter() - r. - Methods(http.MethodGet). - Path("/buckets/{bucketName}/objects/{objectName}"). - Handler(s3manager.GetObjectHandler(s3)) + r := way.NewRouter() + r.Handle(http.MethodGet, "/buckets/:bucketName/objects/:objectName", s3manager.HandleGetObject(s3)) ts := httptest.NewServer(r) defer ts.Close() diff --git a/internal/app/s3manager/s3.go b/internal/app/s3manager/s3.go index aaf3ba9..c06e523 100644 --- a/internal/app/s3manager/s3.go +++ b/internal/app/s3manager/s3.go @@ -10,7 +10,6 @@ import ( // S3 is a client to interact with S3 storage. type S3 interface { - CopyObject(minio.DestinationInfo, minio.SourceInfo) error GetObject(string, string, minio.GetObjectOptions) (*minio.Object, error) ListBuckets() ([]minio.BucketInfo, error) ListObjectsV2(string, string, bool, <-chan struct{}) <-chan minio.ObjectInfo diff --git a/internal/app/s3manager/s3_test.go b/internal/app/s3manager/s3_test.go index f82084e..53686c0 100644 --- a/internal/app/s3manager/s3_test.go +++ b/internal/app/s3manager/s3_test.go @@ -10,7 +10,6 @@ import ( ) var ( - lockS3MockCopyObject sync.RWMutex lockS3MockGetObject sync.RWMutex lockS3MockListBuckets sync.RWMutex lockS3MockListObjectsV2 sync.RWMutex @@ -26,9 +25,6 @@ var ( // // // make and configure a mocked S3 // mockedS3 := &S3Mock{ -// CopyObjectFunc: func(in1 minio.DestinationInfo, in2 minio.SourceInfo) error { -// panic("TODO: mock out the CopyObject method") -// }, // GetObjectFunc: func(in1 string, in2 string, in3 minio.GetObjectOptions) (*minio.Object, error) { // panic("TODO: mock out the GetObject method") // }, @@ -57,9 +53,6 @@ var ( // // } type S3Mock struct { - // CopyObjectFunc mocks the CopyObject method. - CopyObjectFunc func(in1 minio.DestinationInfo, in2 minio.SourceInfo) error - // GetObjectFunc mocks the GetObject method. GetObjectFunc func(in1 string, in2 string, in3 minio.GetObjectOptions) (*minio.Object, error) @@ -83,13 +76,6 @@ type S3Mock struct { // calls tracks calls to the methods. calls struct { - // CopyObject holds details about calls to the CopyObject method. - CopyObject []struct { - // In1 is the in1 argument value. - In1 minio.DestinationInfo - // In2 is the in2 argument value. - In2 minio.SourceInfo - } // GetObject holds details about calls to the GetObject method. GetObject []struct { // In1 is the in1 argument value. @@ -148,41 +134,6 @@ type S3Mock struct { } } -// CopyObject calls CopyObjectFunc. -func (mock *S3Mock) CopyObject(in1 minio.DestinationInfo, in2 minio.SourceInfo) error { - if mock.CopyObjectFunc == nil { - panic("moq: S3Mock.CopyObjectFunc is nil but S3.CopyObject was just called") - } - callInfo := struct { - In1 minio.DestinationInfo - In2 minio.SourceInfo - }{ - In1: in1, - In2: in2, - } - lockS3MockCopyObject.Lock() - mock.calls.CopyObject = append(mock.calls.CopyObject, callInfo) - lockS3MockCopyObject.Unlock() - return mock.CopyObjectFunc(in1, in2) -} - -// CopyObjectCalls gets all the calls that were made to CopyObject. -// Check the length with: -// len(mockedS3.CopyObjectCalls()) -func (mock *S3Mock) CopyObjectCalls() []struct { - In1 minio.DestinationInfo - In2 minio.SourceInfo -} { - var calls []struct { - In1 minio.DestinationInfo - In2 minio.SourceInfo - } - lockS3MockCopyObject.RLock() - calls = mock.calls.CopyObject - lockS3MockCopyObject.RUnlock() - return calls -} - // GetObject calls GetObjectFunc. func (mock *S3Mock) GetObject(in1 string, in2 string, in3 minio.GetObjectOptions) (*minio.Object, error) { if mock.GetObjectFunc == nil {