diff options
| author | Jeff Halter <868228+jhalter@users.noreply.github.com> | 2026-07-10 09:45:04 -0700 |
|---|---|---|
| committer | Jeff Halter <868228+jhalter@users.noreply.github.com> | 2026-07-10 09:48:18 -0700 |
| commit | f50aad709075c1f06bfc7285c3185382dfcdcf20 (patch) | |
| tree | f709b2e312505b51236cabea0b06adec265913f7 /internal | |
| parent | 21f24d24fd6f501b32f15a2bef41c89cc461f623 (diff) | |
Move testify mocks out of production files into hotline/hltest
The manager mocks lived in production source so that internal/mobius
tests could import them (test files are not importable across
packages), which pulled testify into the production dependency graph
of hotline importers, counted the mocks against coverage, and put them
in the library's godoc. They now live in hotline/hltest, an
httptest-style test-support package.
The hotline package's own in-package tests cannot import hltest (import
cycle), so the mocks they use are duplicated in mocks_test.go;
conformance assertions in both files catch signature drift.
MockAccountManager was only ever used inside internal/mobius and moves
to a _test.go file there.
Diffstat (limited to 'internal')
| -rw-r--r-- | internal/mobius/account_manager.go | 41 | ||||
| -rw-r--r-- | internal/mobius/handlers_accounts_test.go | 21 | ||||
| -rw-r--r-- | internal/mobius/handlers_chat_test.go | 93 | ||||
| -rw-r--r-- | internal/mobius/handlers_files_test.go | 73 | ||||
| -rw-r--r-- | internal/mobius/handlers_news_test.go | 57 | ||||
| -rw-r--r-- | internal/mobius/handlers_session_test.go | 67 | ||||
| -rw-r--r-- | internal/mobius/handlers_transfers_test.go | 4 | ||||
| -rw-r--r-- | internal/mobius/mocks_test.go | 48 |
8 files changed, 208 insertions, 196 deletions
diff --git a/internal/mobius/account_manager.go b/internal/mobius/account_manager.go index 44c054a..362f2c8 100644 --- a/internal/mobius/account_manager.go +++ b/internal/mobius/account_manager.go @@ -9,7 +9,6 @@ import ( "sync" "github.com/jhalter/mobius/hotline" - "github.com/stretchr/testify/mock" "gopkg.in/yaml.v3" ) @@ -172,43 +171,3 @@ func (am *YAMLAccountManager) Delete(login string) error { return nil } - -// MockAccountManager provides a test double implementation of AccountManager using testify/mock. -type MockAccountManager struct { - mock.Mock -} - -// Create mocks the Create method for testing. -func (m *MockAccountManager) Create(account hotline.Account) error { - args := m.Called(account) - - return args.Error(0) -} - -// Update mocks the Update method for testing. -func (m *MockAccountManager) Update(account hotline.Account, newLogin string) error { - args := m.Called(account, newLogin) - - return args.Error(0) -} - -// Get mocks the Get method for testing. -func (m *MockAccountManager) Get(login string) *hotline.Account { - args := m.Called(login) - - return args.Get(0).(*hotline.Account) -} - -// List mocks the List method for testing. -func (m *MockAccountManager) List() []hotline.Account { - args := m.Called() - - return args.Get(0).([]hotline.Account) -} - -// Delete mocks the Delete method for testing. -func (m *MockAccountManager) Delete(login string) error { - args := m.Called(login) - - return args.Error(0) -} diff --git a/internal/mobius/handlers_accounts_test.go b/internal/mobius/handlers_accounts_test.go index a7fe827..60b4f6e 100644 --- a/internal/mobius/handlers_accounts_test.go +++ b/internal/mobius/handlers_accounts_test.go @@ -6,6 +6,7 @@ import ( "testing" "github.com/jhalter/mobius/hotline" + "github.com/jhalter/mobius/hotline/hltest" "github.com/stretchr/testify/mock" "golang.org/x/text/encoding/charmap" ) @@ -170,8 +171,8 @@ func TestHandleDeleteUser(t *testing.T) { m.On("Delete", "testuser").Return(nil) return &m }(), - ClientMgr: func() *hotline.MockClientMgr { - m := hotline.MockClientMgr{} + ClientMgr: func() *hltest.MockClientMgr { + m := hltest.MockClientMgr{} m.On("List").Return([]*hotline.ClientConn{}) // TODO return &m }(), @@ -240,8 +241,8 @@ func TestHandleDeleteUser(t *testing.T) { m.On("Delete", "testuser").Return(nil) return &m }(), - ClientMgr: func() *hotline.MockClientMgr { - m := hotline.MockClientMgr{} + ClientMgr: func() *hltest.MockClientMgr { + m := hltest.MockClientMgr{} m.On("List").Return([]*hotline.ClientConn{ { ID: [2]byte{0, 2}, @@ -302,8 +303,8 @@ func TestHandleDeleteUser(t *testing.T) { m.On("Delete", "testuser").Return(nil) return &m }(), - ClientMgr: func() *hotline.MockClientMgr { - m := hotline.MockClientMgr{} + ClientMgr: func() *hltest.MockClientMgr { + m := hltest.MockClientMgr{} m.On("List").Return([]*hotline.ClientConn{ { ID: [2]byte{0, 3}, @@ -776,8 +777,8 @@ func TestHandleUpdateUser(t *testing.T) { m.On("Delete", "testuser").Return(nil) return &m }(), - ClientMgr: func() *hotline.MockClientMgr { - m := hotline.MockClientMgr{} + ClientMgr: func() *hltest.MockClientMgr { + m := hltest.MockClientMgr{} m.On("List").Return([]*hotline.ClientConn{ { Account: &hotline.Account{ @@ -1313,8 +1314,8 @@ func TestHandleSetUser(t *testing.T) { m.On("Update", mock.Anything, "testuser").Return(nil) return &m }(), - ClientMgr: func() *hotline.MockClientMgr { - m := hotline.MockClientMgr{} + ClientMgr: func() *hltest.MockClientMgr { + m := hltest.MockClientMgr{} m.On("List").Return([]*hotline.ClientConn{}) return &m }(), diff --git a/internal/mobius/handlers_chat_test.go b/internal/mobius/handlers_chat_test.go index af16159..e3f6031 100644 --- a/internal/mobius/handlers_chat_test.go +++ b/internal/mobius/handlers_chat_test.go @@ -4,6 +4,7 @@ import ( "testing" "github.com/jhalter/mobius/hotline" + "github.com/jhalter/mobius/hotline/hltest" "github.com/stretchr/testify/mock" "golang.org/x/text/encoding/charmap" ) @@ -26,8 +27,8 @@ func TestHandleSetChatSubject(t *testing.T) { Server: &hotline.Server{ TextDecoder: charmap.Macintosh.NewDecoder(), TextEncoder: charmap.Macintosh.NewEncoder(), - ChatMgr: func() *hotline.MockChatManager { - m := hotline.MockChatManager{} + ChatMgr: func() *hltest.MockChatManager { + m := hltest.MockChatManager{} m.On("Members", hotline.ChatID{0x0, 0x0, 0x0, 0x1}).Return([]*hotline.ClientConn{ { Account: &hotline.Account{ @@ -64,8 +65,8 @@ func TestHandleSetChatSubject(t *testing.T) { // }, // }, //}, - ClientMgr: func() *hotline.MockClientMgr { - m := hotline.MockClientMgr{} + ClientMgr: func() *hltest.MockClientMgr { + m := hltest.MockClientMgr{} m.On("List").Return([]*hotline.ClientConn{ { Account: &hotline.Account{ @@ -142,8 +143,8 @@ func TestHandleLeaveChat(t *testing.T) { Server: &hotline.Server{ TextDecoder: charmap.Macintosh.NewDecoder(), TextEncoder: charmap.Macintosh.NewEncoder(), - ChatMgr: func() *hotline.MockChatManager { - m := hotline.MockChatManager{} + ChatMgr: func() *hltest.MockChatManager { + m := hltest.MockChatManager{} m.On("Members", hotline.ChatID{0x0, 0x0, 0x0, 0x1}).Return([]*hotline.ClientConn{ { Account: &hotline.Account{ @@ -156,8 +157,8 @@ func TestHandleLeaveChat(t *testing.T) { m.On("GetSubject").Return("unset") return &m }(), - ClientMgr: func() *hotline.MockClientMgr { - m := hotline.MockClientMgr{} + ClientMgr: func() *hltest.MockClientMgr { + m := hltest.MockClientMgr{} m.On("Get").Return([]*hotline.ClientConn{ { Account: &hotline.Account{ @@ -226,8 +227,8 @@ func TestHandleChatSend(t *testing.T) { Server: &hotline.Server{ TextDecoder: charmap.Macintosh.NewDecoder(), TextEncoder: charmap.Macintosh.NewEncoder(), - ClientMgr: func() *hotline.MockClientMgr { - m := hotline.MockClientMgr{} + ClientMgr: func() *hltest.MockClientMgr { + m := hltest.MockClientMgr{} m.On("List").Return([]*hotline.ClientConn{ { Account: &hotline.Account{ @@ -289,8 +290,8 @@ func TestHandleChatSend(t *testing.T) { Server: &hotline.Server{ TextDecoder: charmap.Macintosh.NewDecoder(), TextEncoder: charmap.Macintosh.NewEncoder(), - ClientMgr: func() *hotline.MockClientMgr { - m := hotline.MockClientMgr{} + ClientMgr: func() *hltest.MockClientMgr { + m := hltest.MockClientMgr{} m.On("List").Return([]*hotline.ClientConn{ { Account: &hotline.Account{ @@ -380,8 +381,8 @@ func TestHandleChatSend(t *testing.T) { Server: &hotline.Server{ TextDecoder: charmap.Macintosh.NewDecoder(), TextEncoder: charmap.Macintosh.NewEncoder(), - ClientMgr: func() *hotline.MockClientMgr { - m := hotline.MockClientMgr{} + ClientMgr: func() *hltest.MockClientMgr { + m := hltest.MockClientMgr{} m.On("List").Return([]*hotline.ClientConn{ { Account: &hotline.Account{ @@ -444,8 +445,8 @@ func TestHandleChatSend(t *testing.T) { Server: &hotline.Server{ TextDecoder: charmap.Macintosh.NewDecoder(), TextEncoder: charmap.Macintosh.NewEncoder(), - ClientMgr: func() *hotline.MockClientMgr { - m := hotline.MockClientMgr{} + ClientMgr: func() *hltest.MockClientMgr { + m := hltest.MockClientMgr{} m.On("List").Return([]*hotline.ClientConn{ { Account: &hotline.Account{ @@ -504,8 +505,8 @@ func TestHandleChatSend(t *testing.T) { Server: &hotline.Server{ TextDecoder: charmap.Macintosh.NewDecoder(), TextEncoder: charmap.Macintosh.NewEncoder(), - ClientMgr: func() *hotline.MockClientMgr { - m := hotline.MockClientMgr{} + ClientMgr: func() *hltest.MockClientMgr { + m := hltest.MockClientMgr{} m.On("List").Return([]*hotline.ClientConn{ { Account: &hotline.Account{ @@ -558,8 +559,8 @@ func TestHandleChatSend(t *testing.T) { Server: &hotline.Server{ TextDecoder: charmap.Macintosh.NewDecoder(), TextEncoder: charmap.Macintosh.NewEncoder(), - ChatMgr: func() *hotline.MockChatManager { - m := hotline.MockChatManager{} + ChatMgr: func() *hltest.MockChatManager { + m := hltest.MockChatManager{} m.On("Members", hotline.ChatID{0x0, 0x0, 0x0, 0x1}).Return([]*hotline.ClientConn{ { ID: [2]byte{0, 1}, @@ -571,8 +572,8 @@ func TestHandleChatSend(t *testing.T) { m.On("GetSubject").Return("unset") return &m }(), - ClientMgr: func() *hotline.MockClientMgr { - m := hotline.MockClientMgr{} + ClientMgr: func() *hltest.MockClientMgr { + m := hltest.MockClientMgr{} m.On("List").Return([]*hotline.ClientConn{ { Account: &hotline.Account{ @@ -685,8 +686,8 @@ func TestHandleSendInstantMsg(t *testing.T) { Server: &hotline.Server{ TextDecoder: charmap.Macintosh.NewDecoder(), TextEncoder: charmap.Macintosh.NewEncoder(), - ClientMgr: func() *hotline.MockClientMgr { - m := hotline.MockClientMgr{} + ClientMgr: func() *hltest.MockClientMgr { + m := hltest.MockClientMgr{} m.On("Get", hotline.ClientID{0x0, 0x2}).Return(&hotline.ClientConn{ AutoReply: []byte(nil), Flags: [2]byte{0, 0}, @@ -735,8 +736,8 @@ func TestHandleSendInstantMsg(t *testing.T) { Server: &hotline.Server{ TextDecoder: charmap.Macintosh.NewDecoder(), TextEncoder: charmap.Macintosh.NewEncoder(), - ClientMgr: func() *hotline.MockClientMgr { - m := hotline.MockClientMgr{} + ClientMgr: func() *hltest.MockClientMgr { + m := hltest.MockClientMgr{} m.On("Get", hotline.ClientID{0x0, 0x2}).Return(&hotline.ClientConn{ Flags: [2]byte{0, 0}, ID: [2]byte{0, 2}, @@ -794,8 +795,8 @@ func TestHandleSendInstantMsg(t *testing.T) { Server: &hotline.Server{ TextDecoder: charmap.Macintosh.NewDecoder(), TextEncoder: charmap.Macintosh.NewEncoder(), - ClientMgr: func() *hotline.MockClientMgr { - m := hotline.MockClientMgr{} + ClientMgr: func() *hltest.MockClientMgr { + m := hltest.MockClientMgr{} m.On("Get", hotline.ClientID{0x0, 0x2}).Return(&hotline.ClientConn{ Flags: [2]byte{255, 255}, ID: [2]byte{0, 2}, @@ -889,16 +890,16 @@ func TestHandleInviteNewChat(t *testing.T) { Server: &hotline.Server{ TextDecoder: charmap.Macintosh.NewDecoder(), TextEncoder: charmap.Macintosh.NewEncoder(), - ClientMgr: func() *hotline.MockClientMgr { - m := hotline.MockClientMgr{} + ClientMgr: func() *hltest.MockClientMgr { + m := hltest.MockClientMgr{} m.On("Get", hotline.ClientID{0x0, 0x2}).Return(&hotline.ClientConn{ ID: [2]byte{0, 2}, UserName: []byte("UserB"), }) return &m }(), - ChatMgr: func() *hotline.MockChatManager { - m := hotline.MockChatManager{} + ChatMgr: func() *hltest.MockChatManager { + m := hltest.MockChatManager{} m.On("New", mock.AnythingOfType("*hotline.ClientConn")).Return(hotline.ChatID{0x52, 0xfd, 0xfc, 0x07}) return &m }(), @@ -950,8 +951,8 @@ func TestHandleInviteNewChat(t *testing.T) { Server: &hotline.Server{ TextDecoder: charmap.Macintosh.NewDecoder(), TextEncoder: charmap.Macintosh.NewEncoder(), - ClientMgr: func() *hotline.MockClientMgr { - m := hotline.MockClientMgr{} + ClientMgr: func() *hltest.MockClientMgr { + m := hltest.MockClientMgr{} m.On("Get", hotline.ClientID{0, 2}).Return(&hotline.ClientConn{ ID: [2]byte{0, 2}, Icon: []byte{0, 1}, @@ -960,8 +961,8 @@ func TestHandleInviteNewChat(t *testing.T) { }) return &m }(), - ChatMgr: func() *hotline.MockChatManager { - m := hotline.MockChatManager{} + ChatMgr: func() *hltest.MockChatManager { + m := hltest.MockChatManager{} m.On("New", mock.AnythingOfType("*hotline.ClientConn")).Return(hotline.ChatID{0x52, 0xfd, 0xfc, 0x07}) return &m }(), @@ -1031,8 +1032,8 @@ func TestHandleJoinChat(t *testing.T) { Server: &hotline.Server{ TextDecoder: charmap.Macintosh.NewDecoder(), TextEncoder: charmap.Macintosh.NewEncoder(), - ChatMgr: func() *hotline.MockChatManager { - m := hotline.MockChatManager{} + ChatMgr: func() *hltest.MockChatManager { + m := hltest.MockChatManager{} // Mock existing members before join m.On("Members", hotline.ChatID{0, 0, 0, 1}).Return([]*hotline.ClientConn{ { @@ -1149,8 +1150,8 @@ func TestHandleJoinChat(t *testing.T) { Server: &hotline.Server{ TextDecoder: charmap.Macintosh.NewDecoder(), TextEncoder: charmap.Macintosh.NewEncoder(), - ChatMgr: func() *hotline.MockChatManager { - m := hotline.MockChatManager{} + ChatMgr: func() *hltest.MockChatManager { + m := hltest.MockChatManager{} // Mock empty chat before join m.On("Members", hotline.ChatID{0, 0, 0, 2}).Return([]*hotline.ClientConn{}) // Mock join operation @@ -1220,8 +1221,8 @@ func TestHandleRejectChatInvite(t *testing.T) { Server: &hotline.Server{ TextDecoder: charmap.Macintosh.NewDecoder(), TextEncoder: charmap.Macintosh.NewEncoder(), - ChatMgr: func() *hotline.MockChatManager { - m := hotline.MockChatManager{} + ChatMgr: func() *hltest.MockChatManager { + m := hltest.MockChatManager{} // Mock current members of the chat m.On("Members", hotline.ChatID{0, 0, 0, 1}).Return([]*hotline.ClientConn{ { @@ -1273,8 +1274,8 @@ func TestHandleRejectChatInvite(t *testing.T) { Server: &hotline.Server{ TextDecoder: charmap.Macintosh.NewDecoder(), TextEncoder: charmap.Macintosh.NewEncoder(), - ChatMgr: func() *hotline.MockChatManager { - m := hotline.MockChatManager{} + ChatMgr: func() *hltest.MockChatManager { + m := hltest.MockChatManager{} // Mock empty chat (no members) m.On("Members", hotline.ChatID{0, 0, 0, 2}).Return([]*hotline.ClientConn{}) return &m @@ -1302,8 +1303,8 @@ func TestHandleRejectChatInvite(t *testing.T) { Server: &hotline.Server{ TextDecoder: charmap.Macintosh.NewDecoder(), TextEncoder: charmap.Macintosh.NewEncoder(), - ChatMgr: func() *hotline.MockChatManager { - m := hotline.MockChatManager{} + ChatMgr: func() *hltest.MockChatManager { + m := hltest.MockChatManager{} // Mock chat with single member m.On("Members", hotline.ChatID{0, 0, 0, 3}).Return([]*hotline.ClientConn{ { diff --git a/internal/mobius/handlers_files_test.go b/internal/mobius/handlers_files_test.go index fd022bb..4aa52e1 100644 --- a/internal/mobius/handlers_files_test.go +++ b/internal/mobius/handlers_files_test.go @@ -12,6 +12,7 @@ import ( "time" "github.com/jhalter/mobius/hotline" + "github.com/jhalter/mobius/hotline/hltest" "golang.org/x/text/encoding/charmap" ) @@ -177,8 +178,8 @@ func TestHandleNewFolder(t *testing.T) { Config: hotline.Config{ FileRoot: "/Files/", }, - FS: func() *hotline.MockFileStore { - mfs := &hotline.MockFileStore{} + FS: func() *hltest.MockFileStore { + mfs := &hltest.MockFileStore{} mfs.On("Mkdir", "/Files/aaa/testFolder", fs.FileMode(0777)).Return(nil) mfs.On("Stat", "/Files/aaa/testFolder").Return(nil, os.ErrNotExist) return mfs @@ -221,8 +222,8 @@ func TestHandleNewFolder(t *testing.T) { Config: hotline.Config{ FileRoot: "/Files", }, - FS: func() *hotline.MockFileStore { - mfs := &hotline.MockFileStore{} + FS: func() *hltest.MockFileStore { + mfs := &hltest.MockFileStore{} mfs.On("Mkdir", "/Files/testFolder", fs.FileMode(0777)).Return(nil) mfs.On("Stat", "/Files/testFolder").Return(nil, os.ErrNotExist) return mfs @@ -260,8 +261,8 @@ func TestHandleNewFolder(t *testing.T) { Config: hotline.Config{ FileRoot: "/Files/", }, - FS: func() *hotline.MockFileStore { - mfs := &hotline.MockFileStore{} + FS: func() *hltest.MockFileStore { + mfs := &hltest.MockFileStore{} mfs.On("Mkdir", "/Files/aaa/testFolder", fs.FileMode(0777)).Return(nil) mfs.On("Stat", "/Files/aaa/testFolder").Return(nil, os.ErrNotExist) return mfs @@ -305,8 +306,8 @@ func TestHandleNewFolder(t *testing.T) { Config: hotline.Config{ FileRoot: "/Files/", }, - FS: func() *hotline.MockFileStore { - mfs := &hotline.MockFileStore{} + FS: func() *hltest.MockFileStore { + mfs := &hltest.MockFileStore{} mfs.On("Mkdir", "/Files/testFolder", fs.FileMode(0777)).Return(nil) mfs.On("Stat", "/Files/testFolder").Return(nil, os.ErrNotExist) return mfs @@ -343,8 +344,8 @@ func TestHandleNewFolder(t *testing.T) { Config: hotline.Config{ FileRoot: "/Files/", }, - FS: func() *hotline.MockFileStore { - mfs := &hotline.MockFileStore{} + FS: func() *hltest.MockFileStore { + mfs := &hltest.MockFileStore{} mfs.On("Mkdir", "/Files/foo/testFolder", fs.FileMode(0777)).Return(nil) mfs.On("Stat", "/Files/foo/testFolder").Return(nil, os.ErrNotExist) return mfs @@ -416,8 +417,8 @@ func TestHandleMakeAlias(t *testing.T) { }(), }, Logger: NewTestLogger(), - FS: func() *hotline.MockFileStore { - mfs := &hotline.MockFileStore{} + FS: func() *hltest.MockFileStore { + mfs := &hltest.MockFileStore{} path, _ := os.Getwd() mfs.On( "Symlink", @@ -464,8 +465,8 @@ func TestHandleMakeAlias(t *testing.T) { }(), }, Logger: NewTestLogger(), - FS: func() *hotline.MockFileStore { - mfs := &hotline.MockFileStore{} + FS: func() *hltest.MockFileStore { + mfs := &hltest.MockFileStore{} path, _ := os.Getwd() mfs.On( "Symlink", @@ -576,15 +577,15 @@ func TestHandleDeleteFile(t *testing.T) { return "/fakeRoot/Files" }(), }, - FS: func() *hotline.MockFileStore { - mfi := &hotline.MockFileInfo{} + FS: func() *hltest.MockFileStore { + mfi := &hltest.MockFileInfo{} mfi.On("Mode").Return(fs.FileMode(0)) mfi.On("Size").Return(int64(100)) mfi.On("ModTime").Return(time.Parse(time.Layout, time.Layout)) mfi.On("IsDir").Return(false) mfi.On("Name").Return("testfile") - mfs := &hotline.MockFileStore{} + mfs := &hltest.MockFileStore{} mfs.On("Stat", "/fakeRoot/Files/aaa/testfile").Return(mfi, nil) mfs.On("Stat", "/fakeRoot/Files/aaa/.info_testfile").Return(nil, errors.New("err")) mfs.On("Stat", "/fakeRoot/Files/aaa/.rsrc_testfile").Return(nil, errors.New("err")) @@ -634,15 +635,15 @@ func TestHandleDeleteFile(t *testing.T) { return "/fakeRoot/Files" }(), }, - FS: func() *hotline.MockFileStore { - mfi := &hotline.MockFileInfo{} + FS: func() *hltest.MockFileStore { + mfi := &hltest.MockFileInfo{} mfi.On("Mode").Return(fs.FileMode(0)) mfi.On("Size").Return(int64(100)) mfi.On("ModTime").Return(time.Parse(time.Layout, time.Layout)) mfi.On("IsDir").Return(false) mfi.On("Name").Return("testfile") - mfs := &hotline.MockFileStore{} + mfs := &hltest.MockFileStore{} mfs.On("Stat", "/fakeRoot/Files/aaa/testfile").Return(mfi, nil) mfs.On("Stat", "/fakeRoot/Files/aaa/.info_testfile").Return(nil, errors.New("err")) mfs.On("Stat", "/fakeRoot/Files/aaa/.rsrc_testfile").Return(nil, errors.New("err")) @@ -681,7 +682,7 @@ func TestHandleDeleteFile(t *testing.T) { gotRes := HandleDeleteFile(tt.args.cc, &tt.args.t) TranAssertEqual(t, tt.wantRes, gotRes) - tt.args.cc.Server.FS.(*hotline.MockFileStore).AssertExpectations(t) + tt.args.cc.Server.FS.(*hltest.MockFileStore).AssertExpectations(t) }) } } @@ -821,15 +822,15 @@ func TestHandleMoveFile(t *testing.T) { Config: hotline.Config{ FileRoot: "/fakeRoot/Files", }, - FS: func() *hotline.MockFileStore { - mfi := &hotline.MockFileInfo{} + FS: func() *hltest.MockFileStore { + mfi := &hltest.MockFileInfo{} mfi.On("Mode").Return(fs.FileMode(0)) mfi.On("Size").Return(int64(100)) mfi.On("ModTime").Return(time.Parse(time.Layout, time.Layout)) mfi.On("IsDir").Return(false) mfi.On("Name").Return("testfile") - mfs := &hotline.MockFileStore{} + mfs := &hltest.MockFileStore{} // NewFile calls: Stat data, Stat info, Stat rsrc mfs.On("Stat", "/fakeRoot/Files/aaa/testfile").Return(mfi, nil) mfs.On("Stat", "/fakeRoot/Files/aaa/.info_testfile").Return(nil, errors.New("err")) @@ -885,15 +886,15 @@ func TestHandleMoveFile(t *testing.T) { Config: hotline.Config{ FileRoot: "/fakeRoot/Files", }, - FS: func() *hotline.MockFileStore { - mfi := &hotline.MockFileInfo{} + FS: func() *hltest.MockFileStore { + mfi := &hltest.MockFileInfo{} mfi.On("Mode").Return(fs.ModeDir) mfi.On("Size").Return(int64(0)) mfi.On("ModTime").Return(time.Parse(time.Layout, time.Layout)) mfi.On("IsDir").Return(true) mfi.On("Name").Return("testfolder") - mfs := &hotline.MockFileStore{} + mfs := &hltest.MockFileStore{} mfs.On("Stat", "/fakeRoot/Files/aaa/testfolder").Return(mfi, nil) mfs.On("Stat", "/fakeRoot/Files/aaa/.info_testfolder").Return(nil, errors.New("err")) mfs.On("Stat", "/fakeRoot/Files/aaa/.rsrc_testfolder").Return(nil, errors.New("err")) @@ -966,15 +967,15 @@ func TestHandleSetFileInfo(t *testing.T) { Config: hotline.Config{ FileRoot: "/fakeRoot/Files", }, - FS: func() *hotline.MockFileStore { - mfi := &hotline.MockFileInfo{} + FS: func() *hltest.MockFileStore { + mfi := &hltest.MockFileInfo{} mfi.On("Mode").Return(fs.FileMode(0)) mfi.On("Size").Return(int64(100)) mfi.On("ModTime").Return(time.Parse(time.Layout, time.Layout)) mfi.On("IsDir").Return(false) mfi.On("Name").Return("testfile") - mfs := &hotline.MockFileStore{} + mfs := &hltest.MockFileStore{} mfs.On("Stat", "/fakeRoot/Files/testfile").Return(mfi, nil) mfs.On("Stat", "/fakeRoot/Files/.info_testfile").Return(nil, errors.New("err")) mfs.On("Stat", "/fakeRoot/Files/.rsrc_testfile").Return(nil, errors.New("err")) @@ -1018,15 +1019,15 @@ func TestHandleSetFileInfo(t *testing.T) { Config: hotline.Config{ FileRoot: "/fakeRoot/Files", }, - FS: func() *hotline.MockFileStore { - mfi := &hotline.MockFileInfo{} + FS: func() *hltest.MockFileStore { + mfi := &hltest.MockFileInfo{} mfi.On("Mode").Return(fs.FileMode(0)) mfi.On("Size").Return(int64(100)) mfi.On("ModTime").Return(time.Parse(time.Layout, time.Layout)) mfi.On("IsDir").Return(false) mfi.On("Name").Return("testfile") - mfs := &hotline.MockFileStore{} + mfs := &hltest.MockFileStore{} mfs.On("Stat", "/fakeRoot/Files/testfile").Return(mfi, nil) mfs.On("Stat", "/fakeRoot/Files/.info_testfile").Return(nil, errors.New("err")) mfs.On("Stat", "/fakeRoot/Files/.rsrc_testfile").Return(nil, errors.New("err")) @@ -1070,15 +1071,15 @@ func TestHandleSetFileInfo(t *testing.T) { Config: hotline.Config{ FileRoot: "/fakeRoot/Files", }, - FS: func() *hotline.MockFileStore { - mfi := &hotline.MockFileInfo{} + FS: func() *hltest.MockFileStore { + mfi := &hltest.MockFileInfo{} mfi.On("Mode").Return(fs.ModeDir) mfi.On("Size").Return(int64(0)) mfi.On("ModTime").Return(time.Parse(time.Layout, time.Layout)) mfi.On("IsDir").Return(true) mfi.On("Name").Return("testfolder") - mfs := &hotline.MockFileStore{} + mfs := &hltest.MockFileStore{} mfs.On("Stat", "/fakeRoot/Files/testfolder").Return(mfi, nil) mfs.On("Stat", "/fakeRoot/Files/.info_testfolder").Return(nil, errors.New("err")) mfs.On("Stat", "/fakeRoot/Files/.rsrc_testfolder").Return(nil, errors.New("err")) diff --git a/internal/mobius/handlers_news_test.go b/internal/mobius/handlers_news_test.go index 3e5125e..2b54c84 100644 --- a/internal/mobius/handlers_news_test.go +++ b/internal/mobius/handlers_news_test.go @@ -8,6 +8,7 @@ import ( "testing" "github.com/jhalter/mobius/hotline" + "github.com/jhalter/mobius/hotline/hltest" "github.com/stretchr/testify/mock" "golang.org/x/text/encoding/charmap" ) @@ -185,8 +186,8 @@ func TestHandleDelNewsArt(t *testing.T) { Server: &hotline.Server{ TextDecoder: charmap.Macintosh.NewDecoder(), TextEncoder: charmap.Macintosh.NewEncoder(), - ThreadedNewsMgr: func() *hotline.MockThreadNewsMgr { - m := hotline.MockThreadNewsMgr{} + ThreadedNewsMgr: func() *hltest.MockThreadNewsMgr { + m := hltest.MockThreadNewsMgr{} m.On("DeleteArticle", []string{"test"}, uint32(1), false).Return(errors.New("write error")) return &m }(), @@ -274,8 +275,8 @@ func TestHandleDelNewsItem(t *testing.T) { Server: &hotline.Server{ TextDecoder: charmap.Macintosh.NewDecoder(), TextEncoder: charmap.Macintosh.NewEncoder(), - ThreadedNewsMgr: func() *hotline.MockThreadNewsMgr { - m := hotline.MockThreadNewsMgr{} + ThreadedNewsMgr: func() *hltest.MockThreadNewsMgr { + m := hltest.MockThreadNewsMgr{} m.On("NewsItem", []string{"test"}).Return(hotline.NewsCategoryListData15{ Type: hotline.NewsCategory, }) @@ -317,8 +318,8 @@ func TestHandleDelNewsItem(t *testing.T) { Server: &hotline.Server{ TextDecoder: charmap.Macintosh.NewDecoder(), TextEncoder: charmap.Macintosh.NewEncoder(), - ThreadedNewsMgr: func() *hotline.MockThreadNewsMgr { - m := hotline.MockThreadNewsMgr{} + ThreadedNewsMgr: func() *hltest.MockThreadNewsMgr { + m := hltest.MockThreadNewsMgr{} m.On("NewsItem", []string{"test"}).Return(hotline.NewsCategoryListData15{ Type: hotline.NewsBundle, }) @@ -364,8 +365,8 @@ func TestHandleDelNewsItem(t *testing.T) { Server: &hotline.Server{ TextDecoder: charmap.Macintosh.NewDecoder(), TextEncoder: charmap.Macintosh.NewEncoder(), - ThreadedNewsMgr: func() *hotline.MockThreadNewsMgr { - m := hotline.MockThreadNewsMgr{} + ThreadedNewsMgr: func() *hltest.MockThreadNewsMgr { + m := hltest.MockThreadNewsMgr{} m.On("NewsItem", []string{"test"}).Return(hotline.NewsCategoryListData15{Type: hotline.NewsBundle}) m.On("DeleteNewsItem", []string{"test"}).Return(nil) return &m @@ -452,8 +453,8 @@ func TestHandleTranOldPostNews(t *testing.T) { Config: hotline.Config{ NewsDateFormat: "", }, - ClientMgr: func() *hotline.MockClientMgr { - m := hotline.MockClientMgr{} + ClientMgr: func() *hltest.MockClientMgr { + m := hltest.MockClientMgr{} m.On("List").Return([]*hotline.ClientConn{}) return &m }(), @@ -532,8 +533,8 @@ func TestHandleGetNewsArtData(t *testing.T) { Server: &hotline.Server{ TextDecoder: charmap.Macintosh.NewDecoder(), TextEncoder: charmap.Macintosh.NewEncoder(), - ThreadedNewsMgr: func() *hotline.MockThreadNewsMgr { - m := hotline.MockThreadNewsMgr{} + ThreadedNewsMgr: func() *hltest.MockThreadNewsMgr { + m := hltest.MockThreadNewsMgr{} m.On("GetArticle", []string{"Example Category"}, uint32(1)).Return(&hotline.NewsArtData{ Title: "title", Poster: "poster", @@ -640,8 +641,8 @@ func TestHandleGetNewsArtNameList(t *testing.T) { Server: &hotline.Server{ TextDecoder: charmap.Macintosh.NewDecoder(), TextEncoder: charmap.Macintosh.NewEncoder(), - ThreadedNewsMgr: func() *hotline.MockThreadNewsMgr { - m := hotline.MockThreadNewsMgr{} + ThreadedNewsMgr: func() *hltest.MockThreadNewsMgr { + m := hltest.MockThreadNewsMgr{} m.On("ListArticles", []string{"Example Category"}).Return(hotline.NewsArtListData{ Name: []byte{}, Description: []byte{}, @@ -741,8 +742,8 @@ func TestHandleNewNewsFldr(t *testing.T) { Server: &hotline.Server{ TextDecoder: charmap.Macintosh.NewDecoder(), TextEncoder: charmap.Macintosh.NewEncoder(), - ThreadedNewsMgr: func() *hotline.MockThreadNewsMgr { - m := hotline.MockThreadNewsMgr{} + ThreadedNewsMgr: func() *hltest.MockThreadNewsMgr { + m := hltest.MockThreadNewsMgr{} m.On("CreateGrouping", []string{"test"}, "testFolder", hotline.NewsBundle).Return(nil) return &m }(), @@ -785,8 +786,8 @@ func TestHandleNewNewsFldr(t *testing.T) { Server: &hotline.Server{ TextDecoder: charmap.Macintosh.NewDecoder(), TextEncoder: charmap.Macintosh.NewEncoder(), - ThreadedNewsMgr: func() *hotline.MockThreadNewsMgr { - m := hotline.MockThreadNewsMgr{} + ThreadedNewsMgr: func() *hltest.MockThreadNewsMgr { + m := hltest.MockThreadNewsMgr{} m.On("CreateGrouping", []string{"test"}, "testFolder", hotline.NewsBundle).Return(errors.New("write error")) return &m }(), @@ -869,8 +870,8 @@ func TestHandlePostNewsArt(t *testing.T) { Server: &hotline.Server{ TextDecoder: charmap.Macintosh.NewDecoder(), TextEncoder: charmap.Macintosh.NewEncoder(), - ThreadedNewsMgr: func() *hotline.MockThreadNewsMgr { - m := hotline.MockThreadNewsMgr{} + ThreadedNewsMgr: func() *hltest.MockThreadNewsMgr { + m := hltest.MockThreadNewsMgr{} m.On("PostArticle", []string{"www"}, uint32(0), mock.AnythingOfType("hotline.NewsArtData")).Return(nil) return &m }(), @@ -905,8 +906,8 @@ func TestHandlePostNewsArt(t *testing.T) { Server: &hotline.Server{ TextDecoder: charmap.Macintosh.NewDecoder(), TextEncoder: charmap.Macintosh.NewEncoder(), - ThreadedNewsMgr: func() *hotline.MockThreadNewsMgr { - m := hotline.MockThreadNewsMgr{} + ThreadedNewsMgr: func() *hltest.MockThreadNewsMgr { + m := hltest.MockThreadNewsMgr{} m.On("PostArticle", []string{"www"}, uint32(0), mock.AnythingOfType("hotline.NewsArtData")).Return(errors.New("write error")) return &m }(), @@ -999,8 +1000,8 @@ func TestHandleNewNewsCat(t *testing.T) { Server: &hotline.Server{ TextDecoder: charmap.Macintosh.NewDecoder(), TextEncoder: charmap.Macintosh.NewEncoder(), - ThreadedNewsMgr: func() *hotline.MockThreadNewsMgr { - m := hotline.MockThreadNewsMgr{} + ThreadedNewsMgr: func() *hltest.MockThreadNewsMgr { + m := hltest.MockThreadNewsMgr{} m.On("CreateGrouping", []string{"test"}, "TestCat", hotline.NewsCategory).Return(errors.New("write error")) return &m }(), @@ -1046,8 +1047,8 @@ func TestHandleNewNewsCat(t *testing.T) { Server: &hotline.Server{ TextDecoder: charmap.Macintosh.NewDecoder(), TextEncoder: charmap.Macintosh.NewEncoder(), - ThreadedNewsMgr: func() *hotline.MockThreadNewsMgr { - m := hotline.MockThreadNewsMgr{} + ThreadedNewsMgr: func() *hltest.MockThreadNewsMgr { + m := hltest.MockThreadNewsMgr{} m.On("CreateGrouping", []string{"test"}, "TestCat", hotline.NewsCategory).Return(nil) return &m }(), @@ -1128,8 +1129,8 @@ func TestHandleGetNewsCatNameList(t *testing.T) { ID: [2]byte{0, 1}, Logger: slog.New(slog.NewTextHandler(os.Stdout, nil)), Server: &hotline.Server{ - ThreadedNewsMgr: func() *hotline.MockThreadNewsMgr { - m := hotline.MockThreadNewsMgr{} + ThreadedNewsMgr: func() *hltest.MockThreadNewsMgr { + m := hltest.MockThreadNewsMgr{} m.On("GetCategories", []string{}).Return([]hotline.NewsCategoryListData15{ { Type: hotline.NewsBundle, diff --git a/internal/mobius/handlers_session_test.go b/internal/mobius/handlers_session_test.go index bffc81c..ea96def 100644 --- a/internal/mobius/handlers_session_test.go +++ b/internal/mobius/handlers_session_test.go @@ -6,6 +6,7 @@ import ( "time" "github.com/jhalter/mobius/hotline" + "github.com/jhalter/mobius/hotline/hltest" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/mock" "golang.org/x/text/encoding/charmap" @@ -29,8 +30,8 @@ func TestHandleGetUserNameList(t *testing.T) { Server: &hotline.Server{ TextDecoder: charmap.Macintosh.NewDecoder(), TextEncoder: charmap.Macintosh.NewEncoder(), - ClientMgr: func() *hotline.MockClientMgr { - m := hotline.MockClientMgr{} + ClientMgr: func() *hltest.MockClientMgr { + m := hltest.MockClientMgr{} m.On("List").Return([]*hotline.ClientConn{ { ID: [2]byte{0, 1}, @@ -121,8 +122,8 @@ func TestHandleDisconnectUser(t *testing.T) { Server: &hotline.Server{ TextDecoder: charmap.Macintosh.NewDecoder(), TextEncoder: charmap.Macintosh.NewEncoder(), - ClientMgr: func() *hotline.MockClientMgr { - m := hotline.MockClientMgr{} + ClientMgr: func() *hltest.MockClientMgr { + m := hltest.MockClientMgr{} m.On("Get", hotline.ClientID{0x0, 0x1}).Return(&hotline.ClientConn{ Account: &hotline.Account{ Login: "unnamed", @@ -169,8 +170,8 @@ func TestHandleDisconnectUser(t *testing.T) { Server: &hotline.Server{ TextDecoder: charmap.Macintosh.NewDecoder(), TextEncoder: charmap.Macintosh.NewEncoder(), - ClientMgr: func() *hotline.MockClientMgr { - m := hotline.MockClientMgr{} + ClientMgr: func() *hltest.MockClientMgr { + m := hltest.MockClientMgr{} m.On("Get", hotline.ClientID{0x0, 0x1}).Return(&hotline.ClientConn{ ID: hotline.ClientID{0x0, 0x1}, UserName: []byte("baduser"), @@ -190,8 +191,8 @@ func TestHandleDisconnectUser(t *testing.T) { }) return &m }(), - BanList: func() *hotline.MockBanMgr { - m := hotline.MockBanMgr{} + BanList: func() *hltest.MockBanMgr { + m := hltest.MockBanMgr{} m.On("Add", "10.0.0.1", mock.AnythingOfType("*time.Time")).Return(nil) return &m }(), @@ -233,8 +234,8 @@ func TestHandleDisconnectUser(t *testing.T) { Server: &hotline.Server{ TextDecoder: charmap.Macintosh.NewDecoder(), TextEncoder: charmap.Macintosh.NewEncoder(), - ClientMgr: func() *hotline.MockClientMgr { - m := hotline.MockClientMgr{} + ClientMgr: func() *hltest.MockClientMgr { + m := hltest.MockClientMgr{} m.On("Get", hotline.ClientID{0x0, 0x1}).Return(&hotline.ClientConn{ ID: hotline.ClientID{0x0, 0x1}, UserName: []byte("baduser"), @@ -254,8 +255,8 @@ func TestHandleDisconnectUser(t *testing.T) { }) return &m }(), - BanList: func() *hotline.MockBanMgr { - m := hotline.MockBanMgr{} + BanList: func() *hltest.MockBanMgr { + m := hltest.MockBanMgr{} m.On("Add", "10.0.0.2", (*time.Time)(nil)).Return(nil) return &m }(), @@ -357,8 +358,8 @@ func TestHandleGetClientInfoText(t *testing.T) { Server: &hotline.Server{ TextDecoder: charmap.Macintosh.NewDecoder(), TextEncoder: charmap.Macintosh.NewEncoder(), - ClientMgr: func() *hotline.MockClientMgr { - m := hotline.MockClientMgr{} + ClientMgr: func() *hltest.MockClientMgr { + m := hltest.MockClientMgr{} m.On("Get", hotline.ClientID{0x0, 0x1}).Return(&hotline.ClientConn{ UserName: []byte("Testy McTest"), RemoteAddr: "1.2.3.4:12345", @@ -461,8 +462,8 @@ func TestHandleTranAgreed(t *testing.T) { Config: hotline.Config{ BannerFile: "Banner.jpg", }, - ClientMgr: func() *hotline.MockClientMgr { - m := hotline.MockClientMgr{} + ClientMgr: func() *hltest.MockClientMgr { + m := hltest.MockClientMgr{} m.On("List").Return([]*hotline.ClientConn{ //{ // ID: [2]byte{0, 2}, @@ -518,8 +519,8 @@ func TestHandleTranAgreed(t *testing.T) { Config: hotline.Config{ BannerFile: "Banner.gif", }, - ClientMgr: func() *hotline.MockClientMgr { - m := hotline.MockClientMgr{} + ClientMgr: func() *hltest.MockClientMgr { + m := hltest.MockClientMgr{} m.On("List").Return([]*hotline.ClientConn{}) return &m }(), @@ -582,8 +583,8 @@ func TestHandleSetClientUserInfo(t *testing.T) { Server: &hotline.Server{ TextDecoder: charmap.Macintosh.NewDecoder(), TextEncoder: charmap.Macintosh.NewEncoder(), - ClientMgr: func() *hotline.MockClientMgr { - m := hotline.MockClientMgr{} + ClientMgr: func() *hltest.MockClientMgr { + m := hltest.MockClientMgr{} m.On("List").Return([]*hotline.ClientConn{ { ID: [2]byte{0, 1}, @@ -628,8 +629,8 @@ func TestHandleSetClientUserInfo(t *testing.T) { Server: &hotline.Server{ TextDecoder: charmap.Macintosh.NewDecoder(), TextEncoder: charmap.Macintosh.NewEncoder(), - ClientMgr: func() *hotline.MockClientMgr { - m := hotline.MockClientMgr{} + ClientMgr: func() *hltest.MockClientMgr { + m := hltest.MockClientMgr{} m.On("List").Return([]*hotline.ClientConn{ { ID: [2]byte{0, 1}, @@ -672,8 +673,8 @@ func TestHandleSetClientUserInfo(t *testing.T) { Server: &hotline.Server{ TextDecoder: charmap.Macintosh.NewDecoder(), TextEncoder: charmap.Macintosh.NewEncoder(), - ClientMgr: func() *hotline.MockClientMgr { - m := hotline.MockClientMgr{} + ClientMgr: func() *hltest.MockClientMgr { + m := hltest.MockClientMgr{} m.On("List").Return([]*hotline.ClientConn{ { ID: [2]byte{0, 1}, @@ -716,8 +717,8 @@ func TestHandleSetClientUserInfo(t *testing.T) { Server: &hotline.Server{ TextDecoder: charmap.Macintosh.NewDecoder(), TextEncoder: charmap.Macintosh.NewEncoder(), - ClientMgr: func() *hotline.MockClientMgr { - m := hotline.MockClientMgr{} + ClientMgr: func() *hltest.MockClientMgr { + m := hltest.MockClientMgr{} m.On("List").Return([]*hotline.ClientConn{ { ID: [2]byte{0, 1}, @@ -761,8 +762,8 @@ func TestHandleSetClientUserInfo(t *testing.T) { Server: &hotline.Server{ TextDecoder: charmap.Macintosh.NewDecoder(), TextEncoder: charmap.Macintosh.NewEncoder(), - ClientMgr: func() *hotline.MockClientMgr { - m := hotline.MockClientMgr{} + ClientMgr: func() *hltest.MockClientMgr { + m := hltest.MockClientMgr{} m.On("List").Return([]*hotline.ClientConn{ { ID: [2]byte{0, 1}, @@ -807,8 +808,8 @@ func TestHandleSetClientUserInfo(t *testing.T) { Server: &hotline.Server{ TextDecoder: charmap.Macintosh.NewDecoder(), TextEncoder: charmap.Macintosh.NewEncoder(), - ClientMgr: func() *hotline.MockClientMgr { - m := hotline.MockClientMgr{} + ClientMgr: func() *hltest.MockClientMgr { + m := hltest.MockClientMgr{} m.On("List").Return([]*hotline.ClientConn{ { ID: [2]byte{0, 1}, @@ -905,8 +906,8 @@ func TestHandleUserBroadcast(t *testing.T) { }, ID: [2]byte{0, 1}, Server: &hotline.Server{ - ClientMgr: func() *hotline.MockClientMgr { - m := hotline.MockClientMgr{} + ClientMgr: func() *hltest.MockClientMgr { + m := hltest.MockClientMgr{} m.On("List").Return([]*hotline.ClientConn{}) return &m }(), @@ -960,7 +961,7 @@ func (f *fakePresenceTracker) UserDisconnected(login, nickname, ip string) { } func newPresenceTestServer(presence hotline.PresenceTracker) *hotline.Server { - m := hotline.MockClientMgr{} + m := hltest.MockClientMgr{} m.On("List").Return([]*hotline.ClientConn{}) return &hotline.Server{ TextDecoder: charmap.Macintosh.NewDecoder(), diff --git a/internal/mobius/handlers_transfers_test.go b/internal/mobius/handlers_transfers_test.go index 4e4ba0f..edd017f 100644 --- a/internal/mobius/handlers_transfers_test.go +++ b/internal/mobius/handlers_transfers_test.go @@ -244,14 +244,14 @@ func TestHandleDownloadFile(t *testing.T) { TextEncoder: charmap.Macintosh.NewEncoder(), FS: &hotline.OSFileStore{}, - // FS: func() *hotline.MockFileStore { + // FS: func() *hltest.MockFileStore { // path, _ := os.Getwd() // testFile, err := os.Open(path + "/test/config/Files/testfile-1k") // if err != nil { // panic(err) // } // - // mfi := &hotline.MockFileInfo{} + // mfi := &hltest.MockFileInfo{} // mfi.On("Mode").Return(fs.FileMode(0)) // mfs := &MockFileStore{} // mfs.On("Stat", "/fakeRoot/Files/testfile.txt").Return(mfi, nil) diff --git a/internal/mobius/mocks_test.go b/internal/mobius/mocks_test.go new file mode 100644 index 0000000..07250fb --- /dev/null +++ b/internal/mobius/mocks_test.go @@ -0,0 +1,48 @@ +package mobius + +import ( + "github.com/jhalter/mobius/hotline" + "github.com/stretchr/testify/mock" +) + +// MockAccountManager provides a test double implementation of AccountManager using testify/mock. +type MockAccountManager struct { + mock.Mock +} + +var _ hotline.AccountManager = (*MockAccountManager)(nil) + +// Create mocks the Create method for testing. +func (m *MockAccountManager) Create(account hotline.Account) error { + args := m.Called(account) + + return args.Error(0) +} + +// Update mocks the Update method for testing. +func (m *MockAccountManager) Update(account hotline.Account, newLogin string) error { + args := m.Called(account, newLogin) + + return args.Error(0) +} + +// Get mocks the Get method for testing. +func (m *MockAccountManager) Get(login string) *hotline.Account { + args := m.Called(login) + + return args.Get(0).(*hotline.Account) +} + +// List mocks the List method for testing. +func (m *MockAccountManager) List() []hotline.Account { + args := m.Called() + + return args.Get(0).([]hotline.Account) +} + +// Delete mocks the Delete method for testing. +func (m *MockAccountManager) Delete(login string) error { + args := m.Called(login) + + return args.Error(0) +} |