diff --git a/api/main.go b/api/main.go index 47f80df..cb11ac2 100644 --- a/api/main.go +++ b/api/main.go @@ -9,10 +9,10 @@ import ( "strconv" "time" - brepo "github.com/eminetto/clean-architecture-go-v2/domain/repository/book" - urepo "github.com/eminetto/clean-architecture-go-v2/domain/repository/user" "github.com/eminetto/clean-architecture-go-v2/domain/usecase/book" "github.com/eminetto/clean-architecture-go-v2/domain/usecase/user" + brepo "github.com/eminetto/clean-architecture-go-v2/infra/repository/book" + urepo "github.com/eminetto/clean-architecture-go-v2/infra/repository/user" "github.com/eminetto/clean-architecture-go-v2/pkg/password" diff --git a/cmd/main.go b/cmd/main.go index 4964e46..cddf8c5 100644 --- a/cmd/main.go +++ b/cmd/main.go @@ -7,8 +7,8 @@ import ( "log" "os" - repo "github.com/eminetto/clean-architecture-go-v2/domain/repository/book" book "github.com/eminetto/clean-architecture-go-v2/domain/usecase/book" + repo "github.com/eminetto/clean-architecture-go-v2/infra/repository/book" "github.com/eminetto/clean-architecture-go-v2/config" _ "github.com/go-sql-driver/mysql" diff --git a/domain/repository/book/interface.go b/domain/repository/book/interface.go deleted file mode 100644 index 8a1fa36..0000000 --- a/domain/repository/book/interface.go +++ /dev/null @@ -1,25 +0,0 @@ -package book - -import ( - "github.com/eminetto/clean-architecture-go-v2/domain/entity" -) - -//Reader interface -type Reader interface { - Get(id entity.ID) (*entity.Book, error) - Search(query string) ([]*entity.Book, error) - List() ([]*entity.Book, error) -} - -//Writer book writer -type Writer interface { - Create(e *entity.Book) (entity.ID, error) - Update(e *entity.Book) error - Delete(id entity.ID) error -} - -//repository interface -type Repository interface { - Reader - Writer -} diff --git a/domain/repository/user/interface.go b/domain/repository/user/interface.go deleted file mode 100644 index 8180476..0000000 --- a/domain/repository/user/interface.go +++ /dev/null @@ -1,25 +0,0 @@ -package user - -import ( - "github.com/eminetto/clean-architecture-go-v2/domain/entity" -) - -//Reader interface -type Reader interface { - Get(id entity.ID) (*entity.User, error) - Search(query string) ([]*entity.User, error) - List() ([]*entity.User, error) -} - -//Writer user writer -type Writer interface { - Create(e *entity.User) (entity.ID, error) - Update(e *entity.User) error - Delete(id entity.ID) error -} - -//Repository interface -type Repository interface { - Reader - Writer -} diff --git a/domain/usecase/book/interface.go b/domain/usecase/book/interface.go index a9bf4a6..0382f8a 100644 --- a/domain/usecase/book/interface.go +++ b/domain/usecase/book/interface.go @@ -4,6 +4,26 @@ import ( "github.com/eminetto/clean-architecture-go-v2/domain/entity" ) +//Reader interface +type Reader interface { + Get(id entity.ID) (*entity.Book, error) + Search(query string) ([]*entity.Book, error) + List() ([]*entity.Book, error) +} + +//Writer book writer +type Writer interface { + Create(e *entity.Book) (entity.ID, error) + Update(e *entity.Book) error + Delete(id entity.ID) error +} + +//Repository interface +type Repository interface { + Reader + Writer +} + //UseCase interface type UseCase interface { GetBook(id entity.ID) (*entity.Book, error) diff --git a/domain/usecase/book/mock/book.go b/domain/usecase/book/mock/book.go index 9686c0f..932c503 100644 --- a/domain/usecase/book/mock/book.go +++ b/domain/usecase/book/mock/book.go @@ -5,12 +5,256 @@ package mock import ( - reflect "reflect" - entity "github.com/eminetto/clean-architecture-go-v2/domain/entity" gomock "github.com/golang/mock/gomock" + reflect "reflect" ) +// MockReader is a mock of Reader interface +type MockReader struct { + ctrl *gomock.Controller + recorder *MockReaderMockRecorder +} + +// MockReaderMockRecorder is the mock recorder for MockReader +type MockReaderMockRecorder struct { + mock *MockReader +} + +// NewMockReader creates a new mock instance +func NewMockReader(ctrl *gomock.Controller) *MockReader { + mock := &MockReader{ctrl: ctrl} + mock.recorder = &MockReaderMockRecorder{mock} + return mock +} + +// EXPECT returns an object that allows the caller to indicate expected use +func (m *MockReader) EXPECT() *MockReaderMockRecorder { + return m.recorder +} + +// Get mocks base method +func (m *MockReader) Get(id entity.ID) (*entity.Book, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "Get", id) + ret0, _ := ret[0].(*entity.Book) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// Get indicates an expected call of Get +func (mr *MockReaderMockRecorder) Get(id interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Get", reflect.TypeOf((*MockReader)(nil).Get), id) +} + +// Search mocks base method +func (m *MockReader) Search(query string) ([]*entity.Book, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "Search", query) + ret0, _ := ret[0].([]*entity.Book) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// Search indicates an expected call of Search +func (mr *MockReaderMockRecorder) Search(query interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Search", reflect.TypeOf((*MockReader)(nil).Search), query) +} + +// List mocks base method +func (m *MockReader) List() ([]*entity.Book, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "List") + ret0, _ := ret[0].([]*entity.Book) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// List indicates an expected call of List +func (mr *MockReaderMockRecorder) List() *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "List", reflect.TypeOf((*MockReader)(nil).List)) +} + +// MockWriter is a mock of Writer interface +type MockWriter struct { + ctrl *gomock.Controller + recorder *MockWriterMockRecorder +} + +// MockWriterMockRecorder is the mock recorder for MockWriter +type MockWriterMockRecorder struct { + mock *MockWriter +} + +// NewMockWriter creates a new mock instance +func NewMockWriter(ctrl *gomock.Controller) *MockWriter { + mock := &MockWriter{ctrl: ctrl} + mock.recorder = &MockWriterMockRecorder{mock} + return mock +} + +// EXPECT returns an object that allows the caller to indicate expected use +func (m *MockWriter) EXPECT() *MockWriterMockRecorder { + return m.recorder +} + +// Create mocks base method +func (m *MockWriter) Create(e *entity.Book) (entity.ID, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "Create", e) + ret0, _ := ret[0].(entity.ID) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// Create indicates an expected call of Create +func (mr *MockWriterMockRecorder) Create(e interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Create", reflect.TypeOf((*MockWriter)(nil).Create), e) +} + +// Update mocks base method +func (m *MockWriter) Update(e *entity.Book) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "Update", e) + ret0, _ := ret[0].(error) + return ret0 +} + +// Update indicates an expected call of Update +func (mr *MockWriterMockRecorder) Update(e interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Update", reflect.TypeOf((*MockWriter)(nil).Update), e) +} + +// Delete mocks base method +func (m *MockWriter) Delete(id entity.ID) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "Delete", id) + ret0, _ := ret[0].(error) + return ret0 +} + +// Delete indicates an expected call of Delete +func (mr *MockWriterMockRecorder) Delete(id interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Delete", reflect.TypeOf((*MockWriter)(nil).Delete), id) +} + +// MockRepository is a mock of Repository interface +type MockRepository struct { + ctrl *gomock.Controller + recorder *MockRepositoryMockRecorder +} + +// MockRepositoryMockRecorder is the mock recorder for MockRepository +type MockRepositoryMockRecorder struct { + mock *MockRepository +} + +// NewMockRepository creates a new mock instance +func NewMockRepository(ctrl *gomock.Controller) *MockRepository { + mock := &MockRepository{ctrl: ctrl} + mock.recorder = &MockRepositoryMockRecorder{mock} + return mock +} + +// EXPECT returns an object that allows the caller to indicate expected use +func (m *MockRepository) EXPECT() *MockRepositoryMockRecorder { + return m.recorder +} + +// Get mocks base method +func (m *MockRepository) Get(id entity.ID) (*entity.Book, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "Get", id) + ret0, _ := ret[0].(*entity.Book) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// Get indicates an expected call of Get +func (mr *MockRepositoryMockRecorder) Get(id interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Get", reflect.TypeOf((*MockRepository)(nil).Get), id) +} + +// Search mocks base method +func (m *MockRepository) Search(query string) ([]*entity.Book, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "Search", query) + ret0, _ := ret[0].([]*entity.Book) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// Search indicates an expected call of Search +func (mr *MockRepositoryMockRecorder) Search(query interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Search", reflect.TypeOf((*MockRepository)(nil).Search), query) +} + +// List mocks base method +func (m *MockRepository) List() ([]*entity.Book, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "List") + ret0, _ := ret[0].([]*entity.Book) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// List indicates an expected call of List +func (mr *MockRepositoryMockRecorder) List() *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "List", reflect.TypeOf((*MockRepository)(nil).List)) +} + +// Create mocks base method +func (m *MockRepository) Create(e *entity.Book) (entity.ID, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "Create", e) + ret0, _ := ret[0].(entity.ID) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// Create indicates an expected call of Create +func (mr *MockRepositoryMockRecorder) Create(e interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Create", reflect.TypeOf((*MockRepository)(nil).Create), e) +} + +// Update mocks base method +func (m *MockRepository) Update(e *entity.Book) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "Update", e) + ret0, _ := ret[0].(error) + return ret0 +} + +// Update indicates an expected call of Update +func (mr *MockRepositoryMockRecorder) Update(e interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Update", reflect.TypeOf((*MockRepository)(nil).Update), e) +} + +// Delete mocks base method +func (m *MockRepository) Delete(id entity.ID) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "Delete", id) + ret0, _ := ret[0].(error) + return ret0 +} + +// Delete indicates an expected call of Delete +func (mr *MockRepositoryMockRecorder) Delete(id interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Delete", reflect.TypeOf((*MockRepository)(nil).Delete), id) +} + // MockUseCase is a mock of UseCase interface type MockUseCase struct { ctrl *gomock.Controller diff --git a/domain/usecase/book/service.go b/domain/usecase/book/service.go index adf5486..172727c 100644 --- a/domain/usecase/book/service.go +++ b/domain/usecase/book/service.go @@ -4,8 +4,6 @@ import ( "strings" "time" - repo "github.com/eminetto/clean-architecture-go-v2/domain/repository/book" - "github.com/eminetto/clean-architecture-go-v2/domain" "github.com/eminetto/clean-architecture-go-v2/domain/entity" @@ -13,24 +11,24 @@ import ( //Service book usecase type Service struct { - repo repo.Repository + repo Repository } //NewService create new service -func NewService(r repo.Repository) *Service { +func NewService(r Repository) *Service { return &Service{ repo: r, } } -//Create a book +//CreateBook create a book func (s *Service) CreateBook(e *entity.Book) (entity.ID, error) { e.ID = entity.NewID() e.CreatedAt = time.Now() return s.repo.Create(e) } -//Get a book +//GetBook get a book func (s *Service) GetBook(id entity.ID) (*entity.Book, error) { b, err := s.repo.Get(id) if b == nil { @@ -43,7 +41,7 @@ func (s *Service) GetBook(id entity.ID) (*entity.Book, error) { return b, nil } -//Search books +//SearchBooks search books func (s *Service) SearchBooks(query string) ([]*entity.Book, error) { books, err := s.repo.Search(strings.ToLower(query)) if err != nil { @@ -55,7 +53,7 @@ func (s *Service) SearchBooks(query string) ([]*entity.Book, error) { return books, nil } -//List books +//ListBooks list books func (s *Service) ListBooks() ([]*entity.Book, error) { books, err := s.repo.List() if err != nil { @@ -67,7 +65,7 @@ func (s *Service) ListBooks() ([]*entity.Book, error) { return books, nil } -//Delete a book +//DeleteBook Delete a book func (s *Service) DeleteBook(id entity.ID) error { _, err := s.GetBook(id) if err != nil { @@ -76,7 +74,7 @@ func (s *Service) DeleteBook(id entity.ID) error { return s.repo.Delete(id) } -//Update a book +//UpdateBook Update a book func (s *Service) UpdateBook(e *entity.Book) error { return s.repo.Update(e) } diff --git a/domain/usecase/book/service_test.go b/domain/usecase/book/service_test.go index 803292d..479db7f 100644 --- a/domain/usecase/book/service_test.go +++ b/domain/usecase/book/service_test.go @@ -5,7 +5,7 @@ import ( "github.com/eminetto/clean-architecture-go-v2/domain/entity" - "github.com/eminetto/clean-architecture-go-v2/domain/repository/book" + "github.com/eminetto/clean-architecture-go-v2/infra/repository/book" "github.com/eminetto/clean-architecture-go-v2/domain" diff --git a/domain/usecase/loan/mock/loan.go b/domain/usecase/loan/mock/loan.go index 5d5b355..0d25a74 100644 --- a/domain/usecase/loan/mock/loan.go +++ b/domain/usecase/loan/mock/loan.go @@ -5,10 +5,9 @@ package mock import ( - reflect "reflect" - entity "github.com/eminetto/clean-architecture-go-v2/domain/entity" gomock "github.com/golang/mock/gomock" + reflect "reflect" ) // MockUseCase is a mock of UseCase interface diff --git a/domain/usecase/user/interface.go b/domain/usecase/user/interface.go index 7a81232..454af47 100644 --- a/domain/usecase/user/interface.go +++ b/domain/usecase/user/interface.go @@ -4,6 +4,26 @@ import ( "github.com/eminetto/clean-architecture-go-v2/domain/entity" ) +//Reader interface +type Reader interface { + Get(id entity.ID) (*entity.User, error) + Search(query string) ([]*entity.User, error) + List() ([]*entity.User, error) +} + +//Writer user writer +type Writer interface { + Create(e *entity.User) (entity.ID, error) + Update(e *entity.User) error + Delete(id entity.ID) error +} + +//Repository interface +type Repository interface { + Reader + Writer +} + //UseCase interface type UseCase interface { GetUser(id entity.ID) (*entity.User, error) diff --git a/domain/usecase/user/mock/user.go b/domain/usecase/user/mock/user.go index 9b0b802..a184132 100644 --- a/domain/usecase/user/mock/user.go +++ b/domain/usecase/user/mock/user.go @@ -5,12 +5,256 @@ package mock import ( - reflect "reflect" - entity "github.com/eminetto/clean-architecture-go-v2/domain/entity" gomock "github.com/golang/mock/gomock" + reflect "reflect" ) +// MockReader is a mock of Reader interface +type MockReader struct { + ctrl *gomock.Controller + recorder *MockReaderMockRecorder +} + +// MockReaderMockRecorder is the mock recorder for MockReader +type MockReaderMockRecorder struct { + mock *MockReader +} + +// NewMockReader creates a new mock instance +func NewMockReader(ctrl *gomock.Controller) *MockReader { + mock := &MockReader{ctrl: ctrl} + mock.recorder = &MockReaderMockRecorder{mock} + return mock +} + +// EXPECT returns an object that allows the caller to indicate expected use +func (m *MockReader) EXPECT() *MockReaderMockRecorder { + return m.recorder +} + +// Get mocks base method +func (m *MockReader) Get(id entity.ID) (*entity.User, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "Get", id) + ret0, _ := ret[0].(*entity.User) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// Get indicates an expected call of Get +func (mr *MockReaderMockRecorder) Get(id interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Get", reflect.TypeOf((*MockReader)(nil).Get), id) +} + +// Search mocks base method +func (m *MockReader) Search(query string) ([]*entity.User, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "Search", query) + ret0, _ := ret[0].([]*entity.User) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// Search indicates an expected call of Search +func (mr *MockReaderMockRecorder) Search(query interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Search", reflect.TypeOf((*MockReader)(nil).Search), query) +} + +// List mocks base method +func (m *MockReader) List() ([]*entity.User, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "List") + ret0, _ := ret[0].([]*entity.User) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// List indicates an expected call of List +func (mr *MockReaderMockRecorder) List() *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "List", reflect.TypeOf((*MockReader)(nil).List)) +} + +// MockWriter is a mock of Writer interface +type MockWriter struct { + ctrl *gomock.Controller + recorder *MockWriterMockRecorder +} + +// MockWriterMockRecorder is the mock recorder for MockWriter +type MockWriterMockRecorder struct { + mock *MockWriter +} + +// NewMockWriter creates a new mock instance +func NewMockWriter(ctrl *gomock.Controller) *MockWriter { + mock := &MockWriter{ctrl: ctrl} + mock.recorder = &MockWriterMockRecorder{mock} + return mock +} + +// EXPECT returns an object that allows the caller to indicate expected use +func (m *MockWriter) EXPECT() *MockWriterMockRecorder { + return m.recorder +} + +// Create mocks base method +func (m *MockWriter) Create(e *entity.User) (entity.ID, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "Create", e) + ret0, _ := ret[0].(entity.ID) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// Create indicates an expected call of Create +func (mr *MockWriterMockRecorder) Create(e interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Create", reflect.TypeOf((*MockWriter)(nil).Create), e) +} + +// Update mocks base method +func (m *MockWriter) Update(e *entity.User) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "Update", e) + ret0, _ := ret[0].(error) + return ret0 +} + +// Update indicates an expected call of Update +func (mr *MockWriterMockRecorder) Update(e interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Update", reflect.TypeOf((*MockWriter)(nil).Update), e) +} + +// Delete mocks base method +func (m *MockWriter) Delete(id entity.ID) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "Delete", id) + ret0, _ := ret[0].(error) + return ret0 +} + +// Delete indicates an expected call of Delete +func (mr *MockWriterMockRecorder) Delete(id interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Delete", reflect.TypeOf((*MockWriter)(nil).Delete), id) +} + +// MockRepository is a mock of Repository interface +type MockRepository struct { + ctrl *gomock.Controller + recorder *MockRepositoryMockRecorder +} + +// MockRepositoryMockRecorder is the mock recorder for MockRepository +type MockRepositoryMockRecorder struct { + mock *MockRepository +} + +// NewMockRepository creates a new mock instance +func NewMockRepository(ctrl *gomock.Controller) *MockRepository { + mock := &MockRepository{ctrl: ctrl} + mock.recorder = &MockRepositoryMockRecorder{mock} + return mock +} + +// EXPECT returns an object that allows the caller to indicate expected use +func (m *MockRepository) EXPECT() *MockRepositoryMockRecorder { + return m.recorder +} + +// Get mocks base method +func (m *MockRepository) Get(id entity.ID) (*entity.User, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "Get", id) + ret0, _ := ret[0].(*entity.User) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// Get indicates an expected call of Get +func (mr *MockRepositoryMockRecorder) Get(id interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Get", reflect.TypeOf((*MockRepository)(nil).Get), id) +} + +// Search mocks base method +func (m *MockRepository) Search(query string) ([]*entity.User, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "Search", query) + ret0, _ := ret[0].([]*entity.User) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// Search indicates an expected call of Search +func (mr *MockRepositoryMockRecorder) Search(query interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Search", reflect.TypeOf((*MockRepository)(nil).Search), query) +} + +// List mocks base method +func (m *MockRepository) List() ([]*entity.User, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "List") + ret0, _ := ret[0].([]*entity.User) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// List indicates an expected call of List +func (mr *MockRepositoryMockRecorder) List() *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "List", reflect.TypeOf((*MockRepository)(nil).List)) +} + +// Create mocks base method +func (m *MockRepository) Create(e *entity.User) (entity.ID, error) { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "Create", e) + ret0, _ := ret[0].(entity.ID) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// Create indicates an expected call of Create +func (mr *MockRepositoryMockRecorder) Create(e interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Create", reflect.TypeOf((*MockRepository)(nil).Create), e) +} + +// Update mocks base method +func (m *MockRepository) Update(e *entity.User) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "Update", e) + ret0, _ := ret[0].(error) + return ret0 +} + +// Update indicates an expected call of Update +func (mr *MockRepositoryMockRecorder) Update(e interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Update", reflect.TypeOf((*MockRepository)(nil).Update), e) +} + +// Delete mocks base method +func (m *MockRepository) Delete(id entity.ID) error { + m.ctrl.T.Helper() + ret := m.ctrl.Call(m, "Delete", id) + ret0, _ := ret[0].(error) + return ret0 +} + +// Delete indicates an expected call of Delete +func (mr *MockRepositoryMockRecorder) Delete(id interface{}) *gomock.Call { + mr.mock.ctrl.T.Helper() + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Delete", reflect.TypeOf((*MockRepository)(nil).Delete), id) +} + // MockUseCase is a mock of UseCase interface type MockUseCase struct { ctrl *gomock.Controller diff --git a/domain/usecase/user/service.go b/domain/usecase/user/service.go index d270db4..5fa50e9 100644 --- a/domain/usecase/user/service.go +++ b/domain/usecase/user/service.go @@ -4,8 +4,6 @@ import ( "strings" "time" - repo "github.com/eminetto/clean-architecture-go-v2/domain/repository/user" - "github.com/eminetto/clean-architecture-go-v2/domain" "github.com/eminetto/clean-architecture-go-v2/pkg/password" @@ -15,19 +13,19 @@ import ( //Service interface type Service struct { - repo repo.Repository + repo Repository pwd password.Service } //NewService create new use case -func NewService(r repo.Repository, pwd password.Service) *Service { +func NewService(r Repository, pwd password.Service) *Service { return &Service{ repo: r, pwd: pwd, } } -//Create an user +//CreateUser Create an user func (s *Service) CreateUser(e *entity.User) (entity.ID, error) { e.ID = entity.NewID() e.CreatedAt = time.Now() @@ -39,22 +37,22 @@ func (s *Service) CreateUser(e *entity.User) (entity.ID, error) { return s.repo.Create(e) } -//Get an user +//GetUser Get an user func (s *Service) GetUser(id entity.ID) (*entity.User, error) { return s.repo.Get(id) } -//Search users +//SearchUsers Search users func (s *Service) SearchUsers(query string) ([]*entity.User, error) { return s.repo.Search(strings.ToLower(query)) } -//List users +//ListUsers List users func (s *Service) ListUsers() ([]*entity.User, error) { return s.repo.List() } -//Delete an user +//DeleteUser Delete an user func (s *Service) DeleteUser(id entity.ID) error { u, err := s.GetUser(id) if u == nil { @@ -69,7 +67,7 @@ func (s *Service) DeleteUser(id entity.ID) error { return s.repo.Delete(id) } -//Update an user +//UpdateUser Update an user func (s *Service) UpdateUser(e *entity.User) error { e.UpdatedAt = time.Now() return s.repo.Update(e) diff --git a/domain/usecase/user/service_test.go b/domain/usecase/user/service_test.go index f44042a..6a9fb8e 100644 --- a/domain/usecase/user/service_test.go +++ b/domain/usecase/user/service_test.go @@ -3,7 +3,7 @@ package user import ( "testing" - "github.com/eminetto/clean-architecture-go-v2/domain/repository/user" + "github.com/eminetto/clean-architecture-go-v2/infra/repository/user" "github.com/eminetto/clean-architecture-go-v2/pkg/password" diff --git a/infra/init.sql b/infra/db/init.sql similarity index 100% rename from infra/init.sql rename to infra/db/init.sql diff --git a/domain/repository/book/repository_inmem.go b/infra/repository/book/repository_inmem.go similarity index 100% rename from domain/repository/book/repository_inmem.go rename to infra/repository/book/repository_inmem.go diff --git a/domain/repository/book/repository_mysql.go b/infra/repository/book/repository_mysql.go similarity index 100% rename from domain/repository/book/repository_mysql.go rename to infra/repository/book/repository_mysql.go diff --git a/domain/repository/user/repository_inmem.go b/infra/repository/user/repository_inmem.go similarity index 100% rename from domain/repository/user/repository_inmem.go rename to infra/repository/user/repository_inmem.go diff --git a/domain/repository/user/repository_mysql.go b/infra/repository/user/repository_mysql.go similarity index 100% rename from domain/repository/user/repository_mysql.go rename to infra/repository/user/repository_mysql.go