From ac21675bd75280f6e0742a198c6d145b34ed57aa Mon Sep 17 00:00:00 2001 From: James Hillyerd Date: Tue, 26 Dec 2017 18:54:02 -0800 Subject: [PATCH] Clean up datastore related linter findings --- datastore/datastore.go | 1 + datastore/retention.go | 10 ++++------ datastore/testing.go | 28 +++++++++++++++++++++++++--- 3 files changed, 30 insertions(+), 9 deletions(-) diff --git a/datastore/datastore.go b/datastore/datastore.go index dee5753..67aebf6 100644 --- a/datastore/datastore.go +++ b/datastore/datastore.go @@ -1,3 +1,4 @@ +// Package datastore contains implementation independent datastore logic package datastore import ( diff --git a/datastore/retention.go b/datastore/retention.go index b5ede4d..7d52c27 100644 --- a/datastore/retention.go +++ b/datastore/retention.go @@ -90,9 +90,9 @@ retentionLoop: dur := time.Minute - since log.Tracef("Retention scanner sleeping for %v", dur) select { - case _ = <-rs.globalShutdown: + case <-rs.globalShutdown: break retentionLoop - case _ = <-time.After(dur): + case <-time.After(dur): } } // Kickoff scan @@ -102,7 +102,7 @@ retentionLoop: } // Check for global shutdown select { - case _ = <-rs.globalShutdown: + case <-rs.globalShutdown: break retentionLoop default: } @@ -159,9 +159,7 @@ func (rs *RetentionScanner) doScan() error { // Join does not retun until the retention scanner has shut down func (rs *RetentionScanner) Join() { if rs.retentionShutdown != nil { - select { - case <-rs.retentionShutdown: - } + <-rs.retentionShutdown } } diff --git a/datastore/testing.go b/datastore/testing.go index 5b891d8..23474f6 100644 --- a/datastore/testing.go +++ b/datastore/testing.go @@ -9,126 +9,148 @@ import ( "github.com/stretchr/testify/mock" ) -// Mock DataStore object +// MockDataStore is a shared mock for unit testing type MockDataStore struct { mock.Mock } +// MailboxFor mock function func (m *MockDataStore) MailboxFor(name string) (Mailbox, error) { args := m.Called(name) return args.Get(0).(Mailbox), args.Error(1) } +// AllMailboxes mock function func (m *MockDataStore) AllMailboxes() ([]Mailbox, error) { args := m.Called() return args.Get(0).([]Mailbox), args.Error(1) } -// Mock Mailbox object +// MockMailbox is a shared mock for unit testing type MockMailbox struct { mock.Mock } +// GetMessages mock function func (m *MockMailbox) GetMessages() ([]Message, error) { args := m.Called() return args.Get(0).([]Message), args.Error(1) } +// GetMessage mock function func (m *MockMailbox) GetMessage(id string) (Message, error) { args := m.Called(id) return args.Get(0).(Message), args.Error(1) } +// Purge mock function func (m *MockMailbox) Purge() error { args := m.Called() return args.Error(0) } +// NewMessage mock function func (m *MockMailbox) NewMessage() (Message, error) { args := m.Called() return args.Get(0).(Message), args.Error(1) } +// Name mock function func (m *MockMailbox) Name() string { args := m.Called() return args.String(0) } +// String mock function func (m *MockMailbox) String() string { args := m.Called() return args.String(0) } -// Mock Message object +// MockMessage is a shared mock for unit testing type MockMessage struct { mock.Mock } +// ID mock function func (m *MockMessage) ID() string { args := m.Called() return args.String(0) } +// From mock function func (m *MockMessage) From() string { args := m.Called() return args.String(0) } +// To mock function func (m *MockMessage) To() []string { args := m.Called() return args.Get(0).([]string) } +// Date mock function func (m *MockMessage) Date() time.Time { args := m.Called() return args.Get(0).(time.Time) } +// Subject mock function func (m *MockMessage) Subject() string { args := m.Called() return args.String(0) } +// ReadHeader mock function func (m *MockMessage) ReadHeader() (msg *mail.Message, err error) { args := m.Called() return args.Get(0).(*mail.Message), args.Error(1) } +// ReadBody mock function func (m *MockMessage) ReadBody() (body *enmime.Envelope, err error) { args := m.Called() return args.Get(0).(*enmime.Envelope), args.Error(1) } +// ReadRaw mock function func (m *MockMessage) ReadRaw() (raw *string, err error) { args := m.Called() return args.Get(0).(*string), args.Error(1) } +// RawReader mock function func (m *MockMessage) RawReader() (reader io.ReadCloser, err error) { args := m.Called() return args.Get(0).(io.ReadCloser), args.Error(1) } +// Size mock function func (m *MockMessage) Size() int64 { args := m.Called() return int64(args.Int(0)) } +// Append mock function func (m *MockMessage) Append(data []byte) error { // []byte arg seems to mess up testify/mock return nil } +// Close mock function func (m *MockMessage) Close() error { args := m.Called() return args.Error(0) } +// Delete mock function func (m *MockMessage) Delete() error { args := m.Called() return args.Error(0) } +// String mock function func (m *MockMessage) String() string { args := m.Called() return args.String(0)