Skip to content

Commit

Permalink
add test for writer
Browse files Browse the repository at this point in the history
Signed-off-by: hlts2 <hiroto.funakoshi.hiroto@gmail.com>
  • Loading branch information
hlts2 committed Sep 7, 2020
1 parent 9b93b1a commit 1eb1158
Show file tree
Hide file tree
Showing 3 changed files with 293 additions and 208 deletions.
@@ -0,0 +1,3 @@
package s3manager

type Mock struct{}
58 changes: 58 additions & 0 deletions internal/db/storage/blob/s3/writer/mock_test.go
@@ -0,0 +1,58 @@
package writer

import (
"github.com/aws/aws-sdk-go/aws"
"github.com/vdaas/vald/internal/db/storage/blob/s3/sdk/s3/s3iface"
"github.com/vdaas/vald/internal/db/storage/blob/s3/sdk/s3/s3manager"
)

// S3Manager represents mock of s3manager.S3Manager.
type MockS3Manager struct {
NewUploaderWithClientFunc func(s3iface.S3API, ...func(*s3manager.Uploader)) s3manager.UploadClient
}

// NewUploaderWithClient calls NewUNewUploaderWithClientFunc.
func (m *MockS3Manager) NewUploaderWithClient(svc s3iface.S3API, opts ...func(*s3manager.Uploader)) s3manager.UploadClient {
return m.NewUploaderWithClientFunc(svc, opts...)
}

type MockUploadClient struct {
UploadWithContextFunc func(aws.Context, *s3manager.UploadInput, ...func(*s3manager.Uploader)) (*s3manager.UploadOutput, error)
}

func (m *MockUploadClient) UploadWithContext(ctx aws.Context, input *s3manager.UploadInput, opts ...func(*s3manager.Uploader)) (*s3manager.UploadOutput, error) {
return m.UploadWithContextFunc(ctx, input, opts...)
}

// MockWriteCloser represents mock of io.WriteCloser.
type MockWriteCloser struct {
WriteFunc func(p []byte) (n int, err error)
CloseFunc func() error
}

func (m *MockWriteCloser) Write(p []byte) (n int, err error) {
return m.WriteFunc(p)
}

func (m *MockWriteCloser) Close() error {
return m.CloseFunc()
}

// MockGroup represents mock of errorgroup.Group.
type MockGroup struct {
GoFunc func(func() error)
LimitationFunc func(int)
WaitFunc func() error
}

func (m *MockGroup) Go(f func() error) {
m.GoFunc(f)
}

func (m *MockGroup) Limitation(n int) {
m.LimitationFunc(n)
}

func (m *MockGroup) Wait() error {
return m.WaitFunc()
}

0 comments on commit 1eb1158

Please sign in to comment.