Refactor feeds package

This commit is contained in:
Maksym Pavlenko
2017-11-02 18:03:44 -07:00
parent e403bd5c20
commit 3c43f84cc0
4 changed files with 54 additions and 60 deletions
+17 -4
View File
@@ -13,9 +13,22 @@ const (
maxPageSize = 150
)
type idService interface {
Generate(feed *api.Feed) (string, error)
}
type storageService interface {
CreateFeed(feed *api.Feed) error
GetFeed(hashId string) (*api.Feed, error)
}
type builder interface {
Build(feed *api.Feed) (podcast *itunes.Podcast, err error)
}
type service struct {
id id
storage storage
id idService
storage storageService
builders map[api.Provider]builder
}
@@ -85,13 +98,13 @@ func (s *service) GetMetadata(hashId string) (*api.Feed, error) {
type feedOption func(*service)
func WithStorage(storage storage) feedOption {
func WithStorage(storage storageService) feedOption {
return func(service *service) {
service.storage = storage
}
}
func WithIdGen(id id) feedOption {
func WithIdGen(id idService) feedOption {
return func(service *service) {
service.id = id
}
@@ -1,5 +1,5 @@
// Code generated by MockGen. DO NOT EDIT.
// Source: interfaces.go
// Source: feeds.go
package feeds
@@ -10,31 +10,31 @@ import (
reflect "reflect"
)
// Mockid is a mock of id interface
type Mockid struct {
// MockidService is a mock of idService interface
type MockidService struct {
ctrl *gomock.Controller
recorder *MockidMockRecorder
recorder *MockidServiceMockRecorder
}
// MockidMockRecorder is the mock recorder for Mockid
type MockidMockRecorder struct {
mock *Mockid
// MockidServiceMockRecorder is the mock recorder for MockidService
type MockidServiceMockRecorder struct {
mock *MockidService
}
// NewMockid creates a new mock instance
func NewMockid(ctrl *gomock.Controller) *Mockid {
mock := &Mockid{ctrl: ctrl}
mock.recorder = &MockidMockRecorder{mock}
// NewMockidService creates a new mock instance
func NewMockidService(ctrl *gomock.Controller) *MockidService {
mock := &MockidService{ctrl: ctrl}
mock.recorder = &MockidServiceMockRecorder{mock}
return mock
}
// EXPECT returns an object that allows the caller to indicate expected use
func (_m *Mockid) EXPECT() *MockidMockRecorder {
func (_m *MockidService) EXPECT() *MockidServiceMockRecorder {
return _m.recorder
}
// Generate mocks base method
func (_m *Mockid) Generate(feed *api.Feed) (string, error) {
func (_m *MockidService) Generate(feed *api.Feed) (string, error) {
ret := _m.ctrl.Call(_m, "Generate", feed)
ret0, _ := ret[0].(string)
ret1, _ := ret[1].(error)
@@ -42,47 +42,47 @@ func (_m *Mockid) Generate(feed *api.Feed) (string, error) {
}
// Generate indicates an expected call of Generate
func (_mr *MockidMockRecorder) Generate(arg0 interface{}) *gomock.Call {
return _mr.mock.ctrl.RecordCallWithMethodType(_mr.mock, "Generate", reflect.TypeOf((*Mockid)(nil).Generate), arg0)
func (_mr *MockidServiceMockRecorder) Generate(arg0 interface{}) *gomock.Call {
return _mr.mock.ctrl.RecordCallWithMethodType(_mr.mock, "Generate", reflect.TypeOf((*MockidService)(nil).Generate), arg0)
}
// Mockstorage is a mock of storage interface
type Mockstorage struct {
// MockstorageService is a mock of storageService interface
type MockstorageService struct {
ctrl *gomock.Controller
recorder *MockstorageMockRecorder
recorder *MockstorageServiceMockRecorder
}
// MockstorageMockRecorder is the mock recorder for Mockstorage
type MockstorageMockRecorder struct {
mock *Mockstorage
// MockstorageServiceMockRecorder is the mock recorder for MockstorageService
type MockstorageServiceMockRecorder struct {
mock *MockstorageService
}
// NewMockstorage creates a new mock instance
func NewMockstorage(ctrl *gomock.Controller) *Mockstorage {
mock := &Mockstorage{ctrl: ctrl}
mock.recorder = &MockstorageMockRecorder{mock}
// NewMockstorageService creates a new mock instance
func NewMockstorageService(ctrl *gomock.Controller) *MockstorageService {
mock := &MockstorageService{ctrl: ctrl}
mock.recorder = &MockstorageServiceMockRecorder{mock}
return mock
}
// EXPECT returns an object that allows the caller to indicate expected use
func (_m *Mockstorage) EXPECT() *MockstorageMockRecorder {
func (_m *MockstorageService) EXPECT() *MockstorageServiceMockRecorder {
return _m.recorder
}
// CreateFeed mocks base method
func (_m *Mockstorage) CreateFeed(feed *api.Feed) error {
func (_m *MockstorageService) CreateFeed(feed *api.Feed) error {
ret := _m.ctrl.Call(_m, "CreateFeed", feed)
ret0, _ := ret[0].(error)
return ret0
}
// CreateFeed indicates an expected call of CreateFeed
func (_mr *MockstorageMockRecorder) CreateFeed(arg0 interface{}) *gomock.Call {
return _mr.mock.ctrl.RecordCallWithMethodType(_mr.mock, "CreateFeed", reflect.TypeOf((*Mockstorage)(nil).CreateFeed), arg0)
func (_mr *MockstorageServiceMockRecorder) CreateFeed(arg0 interface{}) *gomock.Call {
return _mr.mock.ctrl.RecordCallWithMethodType(_mr.mock, "CreateFeed", reflect.TypeOf((*MockstorageService)(nil).CreateFeed), arg0)
}
// GetFeed mocks base method
func (_m *Mockstorage) GetFeed(hashId string) (*api.Feed, error) {
func (_m *MockstorageService) GetFeed(hashId string) (*api.Feed, error) {
ret := _m.ctrl.Call(_m, "GetFeed", hashId)
ret0, _ := ret[0].(*api.Feed)
ret1, _ := ret[1].(error)
@@ -90,8 +90,8 @@ func (_m *Mockstorage) GetFeed(hashId string) (*api.Feed, error) {
}
// GetFeed indicates an expected call of GetFeed
func (_mr *MockstorageMockRecorder) GetFeed(arg0 interface{}) *gomock.Call {
return _mr.mock.ctrl.RecordCallWithMethodType(_mr.mock, "GetFeed", reflect.TypeOf((*Mockstorage)(nil).GetFeed), arg0)
func (_mr *MockstorageServiceMockRecorder) GetFeed(arg0 interface{}) *gomock.Call {
return _mr.mock.ctrl.RecordCallWithMethodType(_mr.mock, "GetFeed", reflect.TypeOf((*MockstorageService)(nil).GetFeed), arg0)
}
// Mockbuilder is a mock of builder interface
+5 -5
View File
@@ -1,4 +1,4 @@
//go:generate mockgen -source=interfaces.go -destination=interfaces_mock_test.go -package=feeds
//go:generate mockgen -source=feeds.go -destination=feeds_mock_test.go -package=feeds
package feeds
@@ -14,10 +14,10 @@ func TestService_CreateFeed(t *testing.T) {
ctrl := gomock.NewController(t)
defer ctrl.Finish()
id := NewMockid(ctrl)
id := NewMockidService(ctrl)
id.EXPECT().Generate(gomock.Any()).Times(1).Return("123", nil)
storage := NewMockstorage(ctrl)
storage := NewMockstorageService(ctrl)
storage.EXPECT().CreateFeed(gomock.Any()).Times(1).Return(nil)
s := service{
@@ -44,7 +44,7 @@ func TestService_GetFeed(t *testing.T) {
feed := &api.Feed{Provider: api.Youtube}
storage := NewMockstorage(ctrl)
storage := NewMockstorageService(ctrl)
storage.EXPECT().GetFeed("123").Times(1).Return(feed, nil)
bld := NewMockbuilder(ctrl)
@@ -63,7 +63,7 @@ func TestService_GetMetadata(t *testing.T) {
ctrl := gomock.NewController(t)
defer ctrl.Finish()
storage := NewMockstorage(ctrl)
storage := NewMockstorageService(ctrl)
storage.EXPECT().GetFeed("123").Times(1).Return(&api.Feed{}, nil)
s := service{storage: storage}
-19
View File
@@ -1,19 +0,0 @@
package feeds
import (
itunes "github.com/mxpv/podcast"
"github.com/mxpv/podsync/pkg/api"
)
type id interface {
Generate(feed *api.Feed) (string, error)
}
type storage interface {
CreateFeed(feed *api.Feed) error
GetFeed(hashId string) (*api.Feed, error)
}
type builder interface {
Build(feed *api.Feed) (podcast *itunes.Podcast, err error)
}