diff --git a/Makefile b/Makefile index a1458110a..09e369e1d 100644 --- a/Makefile +++ b/Makefile @@ -125,6 +125,7 @@ mocks: $(GOMOCK) $(MOCKGEN) -package service -source sam/service/message.go -destination sam/service/message_mock_test.go $(MOCKGEN) -package service -source sam/service/organisation.go -destination sam/service/organisation_mock_test.go $(MOCKGEN) -package service -source sam/service/team.go -destination sam/service/team_mock_test.go + $(MOCKGEN) -package service -source auth/service/user.go -destination auth/service/user_mock_test.go ######################################################################################################################## diff --git a/auth/service/user_mock_test.go b/auth/service/user_mock_test.go new file mode 100644 index 000000000..96e305925 --- /dev/null +++ b/auth/service/user_mock_test.go @@ -0,0 +1,125 @@ +// Code generated by MockGen. DO NOT EDIT. +// Source: auth/service/user.go + +// Package service is a generated GoMock package. +package service + +import ( + context "context" + types "github.com/crusttech/crust/auth/types" + gomock "github.com/golang/mock/gomock" + reflect "reflect" +) + +// MockUserService is a mock of UserService interface +type MockUserService struct { + ctrl *gomock.Controller + recorder *MockUserServiceMockRecorder +} + +// MockUserServiceMockRecorder is the mock recorder for MockUserService +type MockUserServiceMockRecorder struct { + mock *MockUserService +} + +// NewMockUserService creates a new mock instance +func NewMockUserService(ctrl *gomock.Controller) *MockUserService { + mock := &MockUserService{ctrl: ctrl} + mock.recorder = &MockUserServiceMockRecorder{mock} + return mock +} + +// EXPECT returns an object that allows the caller to indicate expected use +func (m *MockUserService) EXPECT() *MockUserServiceMockRecorder { + return m.recorder +} + +// With mocks base method +func (m *MockUserService) With(ctx context.Context) UserService { + ret := m.ctrl.Call(m, "With", ctx) + ret0, _ := ret[0].(UserService) + return ret0 +} + +// With indicates an expected call of With +func (mr *MockUserServiceMockRecorder) With(ctx interface{}) *gomock.Call { + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "With", reflect.TypeOf((*MockUserService)(nil).With), ctx) +} + +// FindByID mocks base method +func (m *MockUserService) FindByID(id uint64) (*types.User, error) { + ret := m.ctrl.Call(m, "FindByID", id) + ret0, _ := ret[0].(*types.User) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// FindByID indicates an expected call of FindByID +func (mr *MockUserServiceMockRecorder) FindByID(id interface{}) *gomock.Call { + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "FindByID", reflect.TypeOf((*MockUserService)(nil).FindByID), id) +} + +// Find mocks base method +func (m *MockUserService) Find(filter *types.UserFilter) (types.UserSet, error) { + ret := m.ctrl.Call(m, "Find", filter) + ret0, _ := ret[0].(types.UserSet) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// Find indicates an expected call of Find +func (mr *MockUserServiceMockRecorder) Find(filter interface{}) *gomock.Call { + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Find", reflect.TypeOf((*MockUserService)(nil).Find), filter) +} + +// Create mocks base method +func (m *MockUserService) Create(input *types.User) (*types.User, error) { + ret := m.ctrl.Call(m, "Create", input) + ret0, _ := ret[0].(*types.User) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// Create indicates an expected call of Create +func (mr *MockUserServiceMockRecorder) Create(input interface{}) *gomock.Call { + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Create", reflect.TypeOf((*MockUserService)(nil).Create), input) +} + +// Update mocks base method +func (m *MockUserService) Update(mod *types.User) (*types.User, error) { + ret := m.ctrl.Call(m, "Update", mod) + ret0, _ := ret[0].(*types.User) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// Update indicates an expected call of Update +func (mr *MockUserServiceMockRecorder) Update(mod interface{}) *gomock.Call { + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Update", reflect.TypeOf((*MockUserService)(nil).Update), mod) +} + +// FindOrCreate mocks base method +func (m *MockUserService) FindOrCreate(arg0 *types.User) (*types.User, error) { + ret := m.ctrl.Call(m, "FindOrCreate", arg0) + ret0, _ := ret[0].(*types.User) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// FindOrCreate indicates an expected call of FindOrCreate +func (mr *MockUserServiceMockRecorder) FindOrCreate(arg0 interface{}) *gomock.Call { + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "FindOrCreate", reflect.TypeOf((*MockUserService)(nil).FindOrCreate), arg0) +} + +// ValidateCredentials mocks base method +func (m *MockUserService) ValidateCredentials(username, password string) (*types.User, error) { + ret := m.ctrl.Call(m, "ValidateCredentials", username, password) + ret0, _ := ret[0].(*types.User) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// ValidateCredentials indicates an expected call of ValidateCredentials +func (mr *MockUserServiceMockRecorder) ValidateCredentials(username, password interface{}) *gomock.Call { + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ValidateCredentials", reflect.TypeOf((*MockUserService)(nil).ValidateCredentials), username, password) +} diff --git a/auth/service/user_test.go b/auth/service/user_test.go index c8481c52d..8b70eb094 100644 --- a/auth/service/user_test.go +++ b/auth/service/user_test.go @@ -2,10 +2,11 @@ package service import ( "context" + "testing" + "github.com/crusttech/crust/sam/types" "github.com/golang/mock/gomock" "github.com/titpetric/factory" - "testing" ) func TestUser(t *testing.T) { diff --git a/sam/repository/message.go b/sam/repository/message.go index f38771d3b..b738faf93 100644 --- a/sam/repository/message.go +++ b/sam/repository/message.go @@ -74,17 +74,13 @@ func (r *message) FindMessages(filter *types.MessageFilter) (types.MessageSet, e sql := sqlMessagesSelect - if filter != nil { - if filter.Query != "" { - sql += " AND message LIKE ?" - params = append(params, filter.Query+"%") - } + if filter == nil { + filter = &types.MessageFilter{} } - if filter.ChannelID == 0 && filter.RepliesTo == 0 { - // Channel history or replies to a message... - // nothing more. - return nil, nil + if filter.Query != "" { + sql += " AND message LIKE ?" + params = append(params, filter.Query+"%") } if filter.ChannelID > 0 { diff --git a/sam/repository/message_test.go b/sam/repository/message_test.go index 234e3c92c..3b45979b4 100644 --- a/sam/repository/message_test.go +++ b/sam/repository/message_test.go @@ -18,43 +18,51 @@ func TestMessage(t *testing.T) { return } - rpo := Message(context.Background(), factory.Database.MustGet()) - msg := &types.Message{} + msgRpo := Message(context.Background(), factory.Database.MustGet()) + chRpo := Channel(context.Background(), factory.Database.MustGet()) var msg1, msg2 = "Test message v1", "Test message v2" var mm types.MessageSet - { + tx(t, func() error { + ch := &types.Channel{} + ch, err = chRpo.CreateChannel(ch) + ch.Type = types.ChannelTypePublic + + msg := &types.Message{ChannelID: ch.ID} + msg.Message = msg1 - msg, err = rpo.CreateMessage(msg) + msg, err = msgRpo.CreateMessage(msg) assert(t, err == nil, "CreateMessage error: %v", err) assert(t, msg.Message == msg1, "Changes were not stored") { msg.Message = msg2 - msg, err = rpo.UpdateMessage(msg) + msg, err = msgRpo.UpdateMessage(msg) assert(t, err == nil, "UpdateMessage error: %v", err) assert(t, msg.Message == msg2, "Changes were not stored") } { - msg, err = rpo.FindMessageByID(msg.ID) + msg, err = msgRpo.FindMessageByID(msg.ID) assert(t, err == nil, "FindMessageByID error: %v", err) assert(t, msg.Message == msg2, "Changes were not stored") } { - mm, err = rpo.FindMessages(&types.MessageFilter{Query: msg2}) + mm, err = msgRpo.FindMessages(&types.MessageFilter{Query: msg2}) assert(t, err == nil, "FindMessages error: %v", err) assert(t, len(mm) > 0, "No results found") } { - err = rpo.DeleteMessageByID(msg.ID) + err = msgRpo.DeleteMessageByID(msg.ID) assert(t, err == nil, "DeleteMessageByID error: %v", err) } - } + + return nil + }) } func TestReplies(t *testing.T) { @@ -65,38 +73,42 @@ func TestReplies(t *testing.T) { return } - chID := factory.Sonyflake.NextID() - - rpo := Message(context.Background(), factory.Database.MustGet()) - msg := &types.Message{ChannelID: chID} - rpl := &types.Message{ChannelID: chID} + msgRpo := Message(context.Background(), factory.Database.MustGet()) + chRpo := Channel(context.Background(), factory.Database.MustGet()) var mm types.MessageSet tx(t, func() error { - msg, err = rpo.CreateMessage(msg) + ch := &types.Channel{} + ch, err = chRpo.CreateChannel(ch) + ch.Type = types.ChannelTypePublic + + msg := &types.Message{ChannelID: ch.ID} + rpl := &types.Message{ChannelID: ch.ID} + + msg, err = msgRpo.CreateMessage(msg) assert(t, err == nil, "CreateMessage error: %v", err) assert(t, msg.ID > 0, "Message did not get its ID") rpl.ReplyTo = msg.ID - rpl, err = rpo.CreateMessage(rpl) + rpl, err = msgRpo.CreateMessage(rpl) assert(t, err == nil, "CreateMessage error: %v", err) assert(t, rpl.ID > 0, "Reply did not get its ID") { - mm, err = rpo.FindMessages(&types.MessageFilter{ + mm, err = msgRpo.FindMessages(&types.MessageFilter{ RepliesTo: msg.ID, - ChannelID: chID, + ChannelID: ch.ID, }) assert(t, err == nil, "FindMessages error: %v", err) - assert(t, len(mm) == 1, "Failed to fetch only reply") + assert(t, len(mm) == 1, "Failed to fetch only reply, got: %d", len(mm)) assert(t, mm[0].ID == rpl.ID, "Reply ID does not match") } { - mm, err = rpo.FindMessages(&types.MessageFilter{ - ChannelID: chID, + mm, err = msgRpo.FindMessages(&types.MessageFilter{ + ChannelID: ch.ID, }) assert(t, err == nil, "FindMessages error: %v", err) @@ -105,18 +117,18 @@ func TestReplies(t *testing.T) { } { - rpo.IncReplyCount(msg.ID) - rpo.IncReplyCount(msg.ID) - rpo.IncReplyCount(msg.ID) + assert(t, msgRpo.IncReplyCount(msg.ID) == nil, "IncReplyCount should not return an error") + assert(t, msgRpo.IncReplyCount(msg.ID) == nil, "IncReplyCount should not return an error") + assert(t, msgRpo.IncReplyCount(msg.ID) == nil, "IncReplyCount should not return an error") - msg, err = rpo.FindMessageByID(msg.ID) + msg, err = msgRpo.FindMessageByID(msg.ID) assert(t, err == nil, "FindMessageByID error: %v", err) assert(t, msg.Replies == 3, "Reply counter check failed, expecting 3, got %v", msg.Replies) - rpo.DecReplyCount(msg.ID) - rpo.DecReplyCount(msg.ID) + assert(t, msgRpo.DecReplyCount(msg.ID) == nil, "DecReplyCount should not return an error") + assert(t, msgRpo.DecReplyCount(msg.ID) == nil, "DecReplyCount should not return an error") - msg, err = rpo.FindMessageByID(msg.ID) + msg, err = msgRpo.FindMessageByID(msg.ID) assert(t, err == nil, "FindMessageByID error: %v", err) assert(t, msg.Replies == 1, "Reply counter check failed, expecting 1, got %v", msg.Replies) } diff --git a/sam/service/attachment_mock_test.go b/sam/service/attachment_mock_test.go index 527c0fd09..65e6e8492 100644 --- a/sam/service/attachment_mock_test.go +++ b/sam/service/attachment_mock_test.go @@ -61,16 +61,16 @@ func (mr *MockAttachmentServiceMockRecorder) FindByID(id interface{}) *gomock.Ca } // Create mocks base method -func (m *MockAttachmentService) Create(channelId uint64, name string, size int64, fh io.ReadSeeker) (*types.Attachment, error) { - ret := m.ctrl.Call(m, "Create", channelId, name, size, fh) +func (m *MockAttachmentService) Create(name string, size int64, fh io.ReadSeeker, channelId, replyTo uint64) (*types.Attachment, error) { + ret := m.ctrl.Call(m, "Create", name, size, fh, channelId, replyTo) ret0, _ := ret[0].(*types.Attachment) ret1, _ := ret[1].(error) return ret0, ret1 } // Create indicates an expected call of Create -func (mr *MockAttachmentServiceMockRecorder) Create(channelId, name, size, fh interface{}) *gomock.Call { - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Create", reflect.TypeOf((*MockAttachmentService)(nil).Create), channelId, name, size, fh) +func (mr *MockAttachmentServiceMockRecorder) Create(name, size, fh, channelId, replyTo interface{}) *gomock.Call { + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "Create", reflect.TypeOf((*MockAttachmentService)(nil).Create), name, size, fh, channelId, replyTo) } // OpenOriginal mocks base method diff --git a/sam/service/channel_mock_test.go b/sam/service/channel_mock_test.go index 4791c431f..5354124de 100644 --- a/sam/service/channel_mock_test.go +++ b/sam/service/channel_mock_test.go @@ -214,13 +214,13 @@ func (mr *MockChannelServiceMockRecorder) Delete(ID interface{}) *gomock.Call { } // RecordView mocks base method -func (m *MockChannelService) RecordView(channelID, userID, lastMessageID uint64) error { - ret := m.ctrl.Call(m, "RecordView", channelID, userID, lastMessageID) +func (m *MockChannelService) RecordView(userID, channelID, lastMessageID uint64) error { + ret := m.ctrl.Call(m, "RecordView", userID, channelID, lastMessageID) ret0, _ := ret[0].(error) return ret0 } // RecordView indicates an expected call of RecordView -func (mr *MockChannelServiceMockRecorder) RecordView(channelID, userID, lastMessageID interface{}) *gomock.Call { - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "RecordView", reflect.TypeOf((*MockChannelService)(nil).RecordView), channelID, userID, lastMessageID) +func (mr *MockChannelServiceMockRecorder) RecordView(userID, channelID, lastMessageID interface{}) *gomock.Call { + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "RecordView", reflect.TypeOf((*MockChannelService)(nil).RecordView), userID, channelID, lastMessageID) }