@@ -11,36 +11,71 @@ type BucketCreator interface {
1111 MakeBucket (bucketName string , acl s3.BucketACL , location string ) error
1212}
1313
14+ type FakeMakeBucketCall struct {
15+ BucketName string
16+ ACL s3.BucketACL
17+ Location string
18+ }
19+
1420// FakeBucketCreator is a mock function that can be swapped in for an BucketCreator, so you can unit test your code
15- type FakeBucketCreator func (string , s3.BucketACL , string ) error
21+ type FakeBucketCreator struct {
22+ Fn func (string , s3.BucketACL , string ) error
23+ Calls []FakeMakeBucketCall
24+ }
1625
1726// PutObject is the interface definition
18- func (f FakeBucketCreator ) MakeBucket (name string , acl s3.BucketACL , location string ) error {
19- return f (name , acl , location )
27+ func (f * FakeBucketCreator ) MakeBucket (name string , acl s3.BucketACL , location string ) error {
28+ f .Calls = append (f .Calls , FakeMakeBucketCall {BucketName : name , ACL : acl , Location : location })
29+ return f .Fn (name , acl , location )
2030}
2131
2232// ObjectStatter is a *(github.com/minio/minio-go).Client compatible interface, restricted to just the StatObject function. You can use it in your code for easier unit testing without any external dependencies
2333type ObjectStatter interface {
2434 StatObject (bucketName , objectKey string ) (s3.ObjectInfo , error )
2535}
2636
37+ type FakeStatObjectCall struct {
38+ BucketName string
39+ ObjectKey string
40+ }
41+
2742// FakeObjectStatter is a mock function that can be swapped in for an ObjectStatter, so you can unit test your code
28- type FakeObjectStatter func (string , string ) (s3.ObjectInfo , error )
43+ type FakeObjectStatter struct {
44+ Fn func (string , string ) (s3.ObjectInfo , error )
45+ Calls []FakeStatObjectCall
46+ }
2947
3048// PutObject is the interface definition
31- func (f FakeObjectStatter ) StatObject (bucketName , objectKey string ) (s3.ObjectInfo , error ) {
32- return f (bucketName , objectKey )
49+ func (f * FakeObjectStatter ) StatObject (bucketName , objectKey string ) (s3.ObjectInfo , error ) {
50+ f .Calls = append (f .Calls , FakeStatObjectCall {BucketName : bucketName , ObjectKey : objectKey })
51+ return f .Fn (bucketName , objectKey )
3352}
3453
3554// ObjectPutter is a *(github.com/minio/minio-go).Client compatible interface, restricted to just the PutObject function. You can use it in your code for easier unit testing without any external dependencies
3655type ObjectPutter interface {
3756 PutObject (bucketName , objectKey string , reader io.Reader , contentType string ) (int64 , error )
3857}
3958
59+ type FakePutObjectCall struct {
60+ BucketName string
61+ ObjectKey string
62+ Reader io.Reader
63+ ContentType string
64+ }
65+
4066// FakeObjectPutter is a mock function that can be swapped in for an ObjectPutter, so you can unit test your code
41- type FakeObjectPutter func (bucketName , objectKey string , reader io.Reader , contentType string ) (int64 , error )
67+ type FakeObjectPutter struct {
68+ Fn func (bucketName , objectKey string , reader io.Reader , contentType string ) (int64 , error )
69+ Calls []FakePutObjectCall
70+ }
4271
4372// PutObject is the interface definition
44- func (f FakeObjectPutter ) PutObject (bucketName , objectKey string , reader io.Reader , contentType string ) (int64 , error ) {
45- return f (bucketName , objectKey , reader , contentType )
73+ func (f * FakeObjectPutter ) PutObject (bucketName , objectKey string , reader io.Reader , contentType string ) (int64 , error ) {
74+ f .Calls = append (f .Calls , FakePutObjectCall {
75+ BucketName : bucketName ,
76+ ObjectKey : objectKey ,
77+ Reader : reader ,
78+ ContentType : contentType ,
79+ })
80+ return f .Fn (bucketName , objectKey , reader , contentType )
4681}
0 commit comments