From 3a57b6d347076e499447db4e1ee33f40b0bfe416 Mon Sep 17 00:00:00 2001 From: Stefanos Valoumas Date: Mon, 12 Sep 2022 14:33:25 +0300 Subject: [PATCH 01/14] test: apply test conventions for amazon sns service --- service/amazonsns/amazon_sns.go | 2 + service/amazonsns/amazon_sns_test.go | 39 ++++++------ .../amazonsns/mock_sns_send_message_api.go | 60 +++++++++++++++++++ 3 files changed, 81 insertions(+), 20 deletions(-) create mode 100644 service/amazonsns/mock_sns_send_message_api.go diff --git a/service/amazonsns/amazon_sns.go b/service/amazonsns/amazon_sns.go index 56814b90..db2eaa80 100644 --- a/service/amazonsns/amazon_sns.go +++ b/service/amazonsns/amazon_sns.go @@ -11,6 +11,8 @@ import ( ) // SNSSendMessageAPI Basic interface to send messages through SNS. +// +//go:generate mockery --name=SNSSendMessageAPI --output=. --case=underscore --inpackage type SNSSendMessageAPI interface { SendMessage(ctx context.Context, params *sns.PublishInput, diff --git a/service/amazonsns/amazon_sns_test.go b/service/amazonsns/amazon_sns_test.go index 8cf2c2ca..e020a717 100644 --- a/service/amazonsns/amazon_sns_test.go +++ b/service/amazonsns/amazon_sns_test.go @@ -8,21 +8,20 @@ import ( "github.com/aws/aws-sdk-go-v2/service/sns" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/mock" + "github.com/stretchr/testify/require" ) -type SNSSendMessageMock struct { - mock.Mock -} +func TestAmazonSNS_New(t *testing.T) { + t.Parallel() + + assert := require.New(t) -func (m *SNSSendMessageMock) SendMessage(ctx context.Context, - params *sns.PublishInput, - optFns ...func(*sns.Options), -) (*sns.PublishOutput, error) { - args := m.Called(ctx, params, optFns) - return args.Get(0).(*sns.PublishOutput), args.Error(1) + service, err := New("", "", "") + assert.NotNil(service) + assert.Nil(err) } -func TestAddReceivers(t *testing.T) { +func TestAmazonSNS_AddReceivers(t *testing.T) { t.Parallel() amazonSNS, err := New("", "", "") @@ -32,10 +31,10 @@ func TestAddReceivers(t *testing.T) { amazonSNS.AddReceivers("One topic") } -func TestSendMessageWithNoTopicsConfigured(t *testing.T) { +func TestAmazonSNS_SendMessageWithNoTopicsConfigured(t *testing.T) { t.Parallel() - mockSns := new(SNSSendMessageMock) + mockSns := new(MockSNSSendMessageAPI) amazonSNS := AmazonSNS{ sendMessageClient: mockSns, } @@ -45,10 +44,10 @@ func TestSendMessageWithNoTopicsConfigured(t *testing.T) { mockSns.AssertNotCalled(t, "SendMessage", mock.Anything, mock.Anything, mock.Anything) } -func TestSendMessageWithSucessAndOneTopicCOnfigured(t *testing.T) { +func TestAmazonSNS_SendMessageWithSucessAndOneTopicConfigured(t *testing.T) { t.Parallel() - mockSns := new(SNSSendMessageMock) + mockSns := new(MockSNSSendMessageAPI) output := sns.PublishOutput{} mockSns.On("SendMessage", mock.Anything, mock.Anything, mock.Anything). Return(&output, nil) @@ -64,10 +63,10 @@ func TestSendMessageWithSucessAndOneTopicCOnfigured(t *testing.T) { assert.Equal(t, 1, len(mockSns.Calls)) } -func TestSendMessageWithSucessAndTwoTopicCOnfigured(t *testing.T) { +func TestAmazonSNS_SendMessageWithSucessAndTwoTopicsConfigured(t *testing.T) { t.Parallel() - mockSns := new(SNSSendMessageMock) + mockSns := new(MockSNSSendMessageAPI) output := sns.PublishOutput{} mockSns.On("SendMessage", mock.Anything, mock.Anything, mock.Anything). Return(&output, nil) @@ -86,10 +85,10 @@ func TestSendMessageWithSucessAndTwoTopicCOnfigured(t *testing.T) { assert.Equal(t, 2, len(mockSns.Calls)) } -func TestSendMessageWithErrorAndOneQueueConfiguredShouldReturnError(t *testing.T) { +func TestAmazonSNS_SendMessageWithErrorAndOneQueueConfiguredShouldReturnError(t *testing.T) { t.Parallel() - mockSns := new(SNSSendMessageMock) + mockSns := new(MockSNSSendMessageAPI) output := sns.PublishOutput{} mockSns.On("SendMessage", mock.Anything, mock.Anything, mock.Anything). Return(&output, errors.New("Error on SNS")) @@ -107,10 +106,10 @@ func TestSendMessageWithErrorAndOneQueueConfiguredShouldReturnError(t *testing.T assert.Equal(t, 1, len(mockSns.Calls)) } -func TestSendMessageWithErrorAndTwoQueueConfiguredShouldReturnErrorOnFirst(t *testing.T) { +func TestAmazonSNS_SendMessageWithErrorAndTwoQueueConfiguredShouldReturnErrorOnFirst(t *testing.T) { t.Parallel() - mockSns := new(SNSSendMessageMock) + mockSns := new(MockSNSSendMessageAPI) output := sns.PublishOutput{} mockSns.On("SendMessage", mock.Anything, mock.Anything, mock.Anything). Return(&output, errors.New("Error on SNS")) diff --git a/service/amazonsns/mock_sns_send_message_api.go b/service/amazonsns/mock_sns_send_message_api.go new file mode 100644 index 00000000..504633f8 --- /dev/null +++ b/service/amazonsns/mock_sns_send_message_api.go @@ -0,0 +1,60 @@ +// Code generated by mockery v2.14.0. DO NOT EDIT. + +package amazonsns + +import ( + context "context" + + sns "github.com/aws/aws-sdk-go-v2/service/sns" + mock "github.com/stretchr/testify/mock" +) + +// MockSNSSendMessageAPI is an autogenerated mock type for the SNSSendMessageAPI type +type MockSNSSendMessageAPI struct { + mock.Mock +} + +// SendMessage provides a mock function with given fields: ctx, params, optFns +func (_m *MockSNSSendMessageAPI) SendMessage(ctx context.Context, params *sns.PublishInput, optFns ...func(*sns.Options)) (*sns.PublishOutput, error) { + _va := make([]interface{}, len(optFns)) + for _i := range optFns { + _va[_i] = optFns[_i] + } + var _ca []interface{} + _ca = append(_ca, ctx, params) + _ca = append(_ca, _va...) + ret := _m.Called(_ca...) + + var r0 *sns.PublishOutput + if rf, ok := ret.Get(0).(func(context.Context, *sns.PublishInput, ...func(*sns.Options)) *sns.PublishOutput); ok { + r0 = rf(ctx, params, optFns...) + } else { + if ret.Get(0) != nil { + r0 = ret.Get(0).(*sns.PublishOutput) + } + } + + var r1 error + if rf, ok := ret.Get(1).(func(context.Context, *sns.PublishInput, ...func(*sns.Options)) error); ok { + r1 = rf(ctx, params, optFns...) + } else { + r1 = ret.Error(1) + } + + return r0, r1 +} + +type mockConstructorTestingTNewMockSNSSendMessageAPI interface { + mock.TestingT + Cleanup(func()) +} + +// NewMockSNSSendMessageAPI creates a new instance of MockSNSSendMessageAPI. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations. +func NewMockSNSSendMessageAPI(t mockConstructorTestingTNewMockSNSSendMessageAPI) *MockSNSSendMessageAPI { + mock := &MockSNSSendMessageAPI{} + mock.Mock.Test(t) + + t.Cleanup(func() { mock.AssertExpectations(t) }) + + return mock +} From 6ad3b2e4d555e2fc5f4c40e7afc04617a4082589 Mon Sep 17 00:00:00 2001 From: Stefanos Valoumas Date: Mon, 12 Sep 2022 14:34:42 +0300 Subject: [PATCH 02/14] test: apply test conventions for discord service --- service/discord/discord_test.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/service/discord/discord_test.go b/service/discord/discord_test.go index aed3df55..ecd193f9 100644 --- a/service/discord/discord_test.go +++ b/service/discord/discord_test.go @@ -8,7 +8,7 @@ import ( "github.com/stretchr/testify/require" ) -func TestNew(t *testing.T) { +func TestDiscord_New(t *testing.T) { t.Parallel() assert := require.New(t) From 6ec42ebdc40b47ce6d9fd4113e2822a365ba1d02 Mon Sep 17 00:00:00 2001 From: Stefanos Valoumas Date: Mon, 12 Sep 2022 14:38:49 +0300 Subject: [PATCH 03/14] test: apply test conventions for fcm service --- service/fcm/fcm.go | 2 ++ service/fcm/fcm_test.go | 28 +++++++++++++------ service/fcm/mock_fcmClient.go | 48 -------------------------------- service/fcm/mock_fcm_client.go | 51 ++++++++++++++++++++++++++++++++++ 4 files changed, 72 insertions(+), 57 deletions(-) delete mode 100644 service/fcm/mock_fcmClient.go create mode 100644 service/fcm/mock_fcm_client.go diff --git a/service/fcm/fcm.go b/service/fcm/fcm.go index 098dedbd..a4f168f7 100644 --- a/service/fcm/fcm.go +++ b/service/fcm/fcm.go @@ -23,6 +23,8 @@ type ( ) // fcmClient abstracts go-fcm for writing unit tests +// +//go:generate mockery --name=fcmClient --output=. --case=underscore --inpackage type fcmClient interface { SendWithRetry(*fcm.Message, int) (*fcm.Response, error) } diff --git a/service/fcm/fcm_test.go b/service/fcm/fcm_test.go index 971f045c..7063d452 100644 --- a/service/fcm/fcm_test.go +++ b/service/fcm/fcm_test.go @@ -9,7 +9,17 @@ import ( "github.com/stretchr/testify/require" ) -func TestAddReceivers(t *testing.T) { +func TestFCM_New(t *testing.T) { + t.Parallel() + + assert := require.New(t) + + service, err := New("server-api-key") + assert.NotNil(service) + assert.Nil(err) +} + +func TestFCM_AddReceivers(t *testing.T) { t.Parallel() assert := require.New(t) @@ -23,7 +33,7 @@ func TestAddReceivers(t *testing.T) { assert.Equal(svc.deviceTokens, deviceTokens) } -func TestSend(t *testing.T) { +func TestFCM_Send(t *testing.T) { t.Parallel() assert := require.New(t) @@ -38,7 +48,7 @@ func TestSend(t *testing.T) { } // test fcm client send - mockClient := newMockFCMClient(t) + mockClient := newMockFcmClient(t) mockClient.On("SendWithRetry", &fcm.Message{ To: mockToken, Notification: &fcm.Notification{ @@ -54,7 +64,7 @@ func TestSend(t *testing.T) { mockClient.AssertExpectations(t) // test fcm client send with data - mockClient = newMockFCMClient(t) + mockClient = newMockFcmClient(t) mockClient.On("SendWithRetry", &fcm.Message{ To: mockToken, Data: mockData, @@ -72,7 +82,7 @@ func TestSend(t *testing.T) { mockClient.AssertExpectations(t) // test fcm client send with data and retries - mockClient = newMockFCMClient(t) + mockClient = newMockFcmClient(t) mockClient.On("SendWithRetry", &fcm.Message{ To: mockToken, Data: mockData, @@ -91,7 +101,7 @@ func TestSend(t *testing.T) { mockClient.AssertExpectations(t) // test fcm client returning error - mockClient = newMockFCMClient(t) + mockClient = newMockFcmClient(t) mockClient.On("SendWithRetry", &fcm.Message{ To: mockToken, Data: mockData, @@ -111,7 +121,7 @@ func TestSend(t *testing.T) { // test fcm client multiple receivers anotherMockToken := "another_device_token" - mockClient = newMockFCMClient(t) + mockClient = newMockFcmClient(t) mockClient.On("SendWithRetry", &fcm.Message{ To: mockToken, Data: mockData, @@ -138,7 +148,7 @@ func TestSend(t *testing.T) { mockClient.AssertExpectations(t) } -func TestGetMessageData(t *testing.T) { +func TestFCM_GetMessageData(t *testing.T) { t.Parallel() assert := require.New(t) @@ -179,7 +189,7 @@ func TestGetMessageData(t *testing.T) { assert.True(ok) } -func TestGetMessageRetryAttempts(t *testing.T) { +func TestFCM_GetMessageRetryAttempts(t *testing.T) { t.Parallel() assert := require.New(t) diff --git a/service/fcm/mock_fcmClient.go b/service/fcm/mock_fcmClient.go deleted file mode 100644 index 78996da7..00000000 --- a/service/fcm/mock_fcmClient.go +++ /dev/null @@ -1,48 +0,0 @@ -// Code generated by mockery v2.12.2. DO NOT EDIT. - -package fcm - -import ( - testing "testing" - - fcm "github.com/appleboy/go-fcm" - mock "github.com/stretchr/testify/mock" -) - -// mockFCMClient is an autogenerated mock type for the mockFCMClient type -type mockFCMClient struct { - mock.Mock -} - -// SendWithRetry provides a mock function with given fields: _a0, _a1 -func (_m *mockFCMClient) SendWithRetry(_a0 *fcm.Message, _a1 int) (*fcm.Response, error) { - ret := _m.Called(_a0, _a1) - - var r0 *fcm.Response - if rf, ok := ret.Get(0).(func(*fcm.Message, int) *fcm.Response); ok { - r0 = rf(_a0, _a1) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).(*fcm.Response) - } - } - - var r1 error - if rf, ok := ret.Get(1).(func(*fcm.Message, int) error); ok { - r1 = rf(_a0, _a1) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} - -// newMockFCMClient creates a new instance of mockFCMClient. It also registers the testing.TB interface on the mock and a cleanup function to assert the mocks expectations. -func newMockFCMClient(t testing.TB) *mockFCMClient { - mock := &mockFCMClient{} - mock.Mock.Test(t) - - t.Cleanup(func() { mock.AssertExpectations(t) }) - - return mock -} diff --git a/service/fcm/mock_fcm_client.go b/service/fcm/mock_fcm_client.go new file mode 100644 index 00000000..7795a6ac --- /dev/null +++ b/service/fcm/mock_fcm_client.go @@ -0,0 +1,51 @@ +// Code generated by mockery v2.14.0. DO NOT EDIT. + +package fcm + +import ( + go_fcm "github.com/appleboy/go-fcm" + mock "github.com/stretchr/testify/mock" +) + +// mockFcmClient is an autogenerated mock type for the fcmClient type +type mockFcmClient struct { + mock.Mock +} + +// SendWithRetry provides a mock function with given fields: _a0, _a1 +func (_m *mockFcmClient) SendWithRetry(_a0 *go_fcm.Message, _a1 int) (*go_fcm.Response, error) { + ret := _m.Called(_a0, _a1) + + var r0 *go_fcm.Response + if rf, ok := ret.Get(0).(func(*go_fcm.Message, int) *go_fcm.Response); ok { + r0 = rf(_a0, _a1) + } else { + if ret.Get(0) != nil { + r0 = ret.Get(0).(*go_fcm.Response) + } + } + + var r1 error + if rf, ok := ret.Get(1).(func(*go_fcm.Message, int) error); ok { + r1 = rf(_a0, _a1) + } else { + r1 = ret.Error(1) + } + + return r0, r1 +} + +type mockConstructorTestingTnewMockFcmClient interface { + mock.TestingT + Cleanup(func()) +} + +// newMockFcmClient creates a new instance of mockFcmClient. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations. +func newMockFcmClient(t mockConstructorTestingTnewMockFcmClient) *mockFcmClient { + mock := &mockFcmClient{} + mock.Mock.Test(t) + + t.Cleanup(func() { mock.AssertExpectations(t) }) + + return mock +} From 525374307c5f2178ddc3ab972b17fb505cebe712 Mon Sep 17 00:00:00 2001 From: Stefanos Valoumas Date: Mon, 12 Sep 2022 14:46:07 +0300 Subject: [PATCH 04/14] test: apply test conventions for lark service --- service/lark/common.go | 4 ++++ service/lark/custom_app_test.go | 18 +++++++++++---- service/lark/mock_sendToer.go | 39 --------------------------------- service/lark/mock_send_toer.go | 39 +++++++++++++++++++++++++++++++++ service/lark/mock_sender.go | 18 +++++++-------- service/lark/webhook_test.go | 16 +++++++++++--- 6 files changed, 79 insertions(+), 55 deletions(-) delete mode 100644 service/lark/mock_sendToer.go create mode 100644 service/lark/mock_send_toer.go diff --git a/service/lark/common.go b/service/lark/common.go index 2141a62c..0ee0c56d 100644 --- a/service/lark/common.go +++ b/service/lark/common.go @@ -1,11 +1,15 @@ package lark // sender is an interface for sending a message to an already defined receiver. +// +//go:generate mockery --name=sender --output=. --case=underscore --inpackage type sender interface { Send(subject, message string) error } // sender is an interface for sending a message to a specific receiver ID. +// +//go:generate mockery --name=sendToer --output=. --case=underscore --inpackage type sendToer interface { SendTo(subject, message, id, idType string) error } diff --git a/service/lark/custom_app_test.go b/service/lark/custom_app_test.go index a35e8e06..08ff0d87 100644 --- a/service/lark/custom_app_test.go +++ b/service/lark/custom_app_test.go @@ -6,9 +6,19 @@ import ( "testing" "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" ) -func TestAddReceivers(t *testing.T) { +func TestLark_NewCustomAppService(t *testing.T) { + t.Parallel() + + assert := require.New(t) + + service := NewCustomAppService("", "") + assert.NotNil(service) +} + +func TestLark_AddReceivers(t *testing.T) { t.Parallel() xs := []*ReceiverID{ @@ -31,7 +41,7 @@ func TestAddReceivers(t *testing.T) { assert.ElementsMatch(t, svc.receiveIDs, append(xs, ys...)) } -func TestSendCustomApp(t *testing.T) { +func TestLark_SendCustomApp(t *testing.T) { t.Parallel() ctx := context.Background() assert := assert.New(t) @@ -46,7 +56,7 @@ func TestSendCustomApp(t *testing.T) { // First, test for when the sender returns an error. for _, tt := range tests { - mockSendToer := NewSendToer(t) + mockSendToer := newMockSendToer(t) mockSendToer. On("SendTo", "subject", "message", tt.id, string(tt.typ)). Return(errors.New("")) @@ -63,7 +73,7 @@ func TestSendCustomApp(t *testing.T) { // Then test for when the sender does not return an error. for _, tt := range tests { - mockSendToer := NewSendToer(t) + mockSendToer := newMockSendToer(t) mockSendToer. On("SendTo", "subject", "message", tt.id, string(tt.typ)). Return(nil) diff --git a/service/lark/mock_sendToer.go b/service/lark/mock_sendToer.go deleted file mode 100644 index 7edf6061..00000000 --- a/service/lark/mock_sendToer.go +++ /dev/null @@ -1,39 +0,0 @@ -// Code generated by mockery v2.12.3. DO NOT EDIT. - -package lark - -import "github.com/stretchr/testify/mock" - -// SendToer is an autogenerated mock type for the sendToer type -type SendToer struct { - mock.Mock -} - -// SendTo provides a mock function with given fields: subject, message, id, idType -func (_m *SendToer) SendTo(subject string, message string, id string, idType string) error { - ret := _m.Called(subject, message, id, idType) - - var r0 error - if rf, ok := ret.Get(0).(func(string, string, string, string) error); ok { - r0 = rf(subject, message, id, idType) - } else { - r0 = ret.Error(0) - } - - return r0 -} - -type NewSendToerT interface { - mock.TestingT - Cleanup(func()) -} - -// NewSendToer creates a new instance of SendToer. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations. -func NewSendToer(t NewSendToerT) *SendToer { - mock := &SendToer{} - mock.Mock.Test(t) - - t.Cleanup(func() { mock.AssertExpectations(t) }) - - return mock -} diff --git a/service/lark/mock_send_toer.go b/service/lark/mock_send_toer.go new file mode 100644 index 00000000..3464121c --- /dev/null +++ b/service/lark/mock_send_toer.go @@ -0,0 +1,39 @@ +// Code generated by mockery v2.14.0. DO NOT EDIT. + +package lark + +import mock "github.com/stretchr/testify/mock" + +// mockSendToer is an autogenerated mock type for the sendToer type +type mockSendToer struct { + mock.Mock +} + +// SendTo provides a mock function with given fields: subject, message, id, idType +func (_m *mockSendToer) SendTo(subject string, message string, id string, idType string) error { + ret := _m.Called(subject, message, id, idType) + + var r0 error + if rf, ok := ret.Get(0).(func(string, string, string, string) error); ok { + r0 = rf(subject, message, id, idType) + } else { + r0 = ret.Error(0) + } + + return r0 +} + +type mockConstructorTestingTnewMockSendToer interface { + mock.TestingT + Cleanup(func()) +} + +// newMockSendToer creates a new instance of mockSendToer. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations. +func newMockSendToer(t mockConstructorTestingTnewMockSendToer) *mockSendToer { + mock := &mockSendToer{} + mock.Mock.Test(t) + + t.Cleanup(func() { mock.AssertExpectations(t) }) + + return mock +} diff --git a/service/lark/mock_sender.go b/service/lark/mock_sender.go index b371ab9c..cb522cff 100644 --- a/service/lark/mock_sender.go +++ b/service/lark/mock_sender.go @@ -1,16 +1,16 @@ -// Code generated by mockery v2.12.3. DO NOT EDIT. +// Code generated by mockery v2.14.0. DO NOT EDIT. package lark -import "github.com/stretchr/testify/mock" +import mock "github.com/stretchr/testify/mock" -// Sender is an autogenerated mock type for the sender type -type Sender struct { +// mockSender is an autogenerated mock type for the sender type +type mockSender struct { mock.Mock } // Send provides a mock function with given fields: subject, message -func (_m *Sender) Send(subject string, message string) error { +func (_m *mockSender) Send(subject string, message string) error { ret := _m.Called(subject, message) var r0 error @@ -23,14 +23,14 @@ func (_m *Sender) Send(subject string, message string) error { return r0 } -type NewSenderT interface { +type mockConstructorTestingTnewMockSender interface { mock.TestingT Cleanup(func()) } -// NewSender creates a new instance of Sender. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations. -func NewSender(t NewSenderT) *Sender { - mock := &Sender{} +// newMockSender creates a new instance of mockSender. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations. +func newMockSender(t mockConstructorTestingTnewMockSender) *mockSender { + mock := &mockSender{} mock.Mock.Test(t) t.Cleanup(func() { mock.AssertExpectations(t) }) diff --git a/service/lark/webhook_test.go b/service/lark/webhook_test.go index a6534e43..97551362 100644 --- a/service/lark/webhook_test.go +++ b/service/lark/webhook_test.go @@ -6,9 +6,19 @@ import ( "testing" "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" ) -func TestSendWebhook(t *testing.T) { +func TestLark_NewWebhookService(t *testing.T) { + t.Parallel() + + assert := require.New(t) + + service := NewWebhookService("") + assert.NotNil(service) +} + +func TestLark_SendWebhook(t *testing.T) { t.Parallel() assert := assert.New(t) @@ -16,7 +26,7 @@ func TestSendWebhook(t *testing.T) { // First, test for when the sender returns an error. { - mockSender := NewSender(t) + mockSender := newMockSender(t) mockSender. On("Send", "subject", "message"). Return(errors.New("")) @@ -30,7 +40,7 @@ func TestSendWebhook(t *testing.T) { // Then test for when the sender does not return an error. { - mockSender := NewSender(t) + mockSender := newMockSender(t) mockSender. On("Send", "subject", "message"). Return(nil) From 8af0b6ab8fde8896a4846334efc27171e2862969 Mon Sep 17 00:00:00 2001 From: Stefanos Valoumas Date: Mon, 12 Sep 2022 14:47:50 +0300 Subject: [PATCH 05/14] test: apply test conventions for msteams service --- service/msteams/ms_teams_test.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/service/msteams/ms_teams_test.go b/service/msteams/ms_teams_test.go index 5e095bfe..d1bcc767 100644 --- a/service/msteams/ms_teams_test.go +++ b/service/msteams/ms_teams_test.go @@ -9,7 +9,7 @@ import ( "github.com/stretchr/testify/require" ) -func TestNew(t *testing.T) { +func TestMSTeams_New(t *testing.T) { t.Parallel() assert := require.New(t) From 74d4576a63a48321ef86cc586b635dc8c84af6cf Mon Sep 17 00:00:00 2001 From: Stefanos Valoumas Date: Mon, 12 Sep 2022 14:49:36 +0300 Subject: [PATCH 06/14] test: apply test conventions for plivo service --- service/plivo/mock_plivoMsgClient.go | 36 ------------------ service/plivo/mock_plivo_msg_client.go | 51 ++++++++++++++++++++++++++ service/plivo/plivo.go | 2 + service/plivo/plivo_test.go | 6 +-- 4 files changed, 56 insertions(+), 39 deletions(-) delete mode 100644 service/plivo/mock_plivoMsgClient.go create mode 100644 service/plivo/mock_plivo_msg_client.go diff --git a/service/plivo/mock_plivoMsgClient.go b/service/plivo/mock_plivoMsgClient.go deleted file mode 100644 index c2679de3..00000000 --- a/service/plivo/mock_plivoMsgClient.go +++ /dev/null @@ -1,36 +0,0 @@ -// Code generated by mockery v2.5.1. DO NOT EDIT. - -package plivo - -import ( - plivo "github.com/plivo/plivo-go/v7" - mock "github.com/stretchr/testify/mock" -) - -// mockPlivoMsgClient is an autogenerated mock type for the mockPlivoMsgClient type -type mockPlivoMsgClient struct { - mock.Mock -} - -// Create provides a mock function with given fields: _a0 -func (_m *mockPlivoMsgClient) Create(_a0 plivo.MessageCreateParams) (*plivo.MessageCreateResponseBody, error) { - ret := _m.Called(_a0) - - var r0 *plivo.MessageCreateResponseBody - if rf, ok := ret.Get(0).(func(plivo.MessageCreateParams) *plivo.MessageCreateResponseBody); ok { - r0 = rf(_a0) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).(*plivo.MessageCreateResponseBody) - } - } - - var r1 error - if rf, ok := ret.Get(1).(func(plivo.MessageCreateParams) error); ok { - r1 = rf(_a0) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} diff --git a/service/plivo/mock_plivo_msg_client.go b/service/plivo/mock_plivo_msg_client.go new file mode 100644 index 00000000..6e5945fc --- /dev/null +++ b/service/plivo/mock_plivo_msg_client.go @@ -0,0 +1,51 @@ +// Code generated by mockery v2.14.0. DO NOT EDIT. + +package plivo + +import ( + v7 "github.com/plivo/plivo-go/v7" + mock "github.com/stretchr/testify/mock" +) + +// mockPlivoMsgClient is an autogenerated mock type for the plivoMsgClient type +type mockPlivoMsgClient struct { + mock.Mock +} + +// Create provides a mock function with given fields: _a0 +func (_m *mockPlivoMsgClient) Create(_a0 v7.MessageCreateParams) (*v7.MessageCreateResponseBody, error) { + ret := _m.Called(_a0) + + var r0 *v7.MessageCreateResponseBody + if rf, ok := ret.Get(0).(func(v7.MessageCreateParams) *v7.MessageCreateResponseBody); ok { + r0 = rf(_a0) + } else { + if ret.Get(0) != nil { + r0 = ret.Get(0).(*v7.MessageCreateResponseBody) + } + } + + var r1 error + if rf, ok := ret.Get(1).(func(v7.MessageCreateParams) error); ok { + r1 = rf(_a0) + } else { + r1 = ret.Error(1) + } + + return r0, r1 +} + +type mockConstructorTestingTnewMockPlivoMsgClient interface { + mock.TestingT + Cleanup(func()) +} + +// newMockPlivoMsgClient creates a new instance of mockPlivoMsgClient. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations. +func newMockPlivoMsgClient(t mockConstructorTestingTnewMockPlivoMsgClient) *mockPlivoMsgClient { + mock := &mockPlivoMsgClient{} + mock.Mock.Test(t) + + t.Cleanup(func() { mock.AssertExpectations(t) }) + + return mock +} diff --git a/service/plivo/plivo.go b/service/plivo/plivo.go index 51586fff..5cfc6a83 100644 --- a/service/plivo/plivo.go +++ b/service/plivo/plivo.go @@ -28,6 +28,8 @@ type MessageOptions struct { } // plivoMsgClient abstracts Plivo SDK for writing unit tests +// +//go:generate mockery --name=plivoMsgClient --output=. --case=underscore --inpackage type plivoMsgClient interface { Create(plivo.MessageCreateParams) (*plivo.MessageCreateResponseBody, error) } diff --git a/service/plivo/plivo_test.go b/service/plivo/plivo_test.go index 1fc858aa..fbf66a78 100644 --- a/service/plivo/plivo_test.go +++ b/service/plivo/plivo_test.go @@ -9,7 +9,7 @@ import ( "github.com/stretchr/testify/require" ) -func TestNew(t *testing.T) { +func TestPlivo_New(t *testing.T) { t.Parallel() assert := require.New(t) @@ -35,7 +35,7 @@ func TestNew(t *testing.T) { assert.NotNil(svc) } -func TestAddReceivers(t *testing.T) { +func TestPlivo_AddReceivers(t *testing.T) { t.Parallel() assert := require.New(t) @@ -50,7 +50,7 @@ func TestAddReceivers(t *testing.T) { assert.Equal(svc.destinations, nums) } -func TestSend(t *testing.T) { +func TestPlivo_Send(t *testing.T) { t.Parallel() assert := require.New(t) From 2035e817a92a5dd807cf0418df55971f17d43c82 Mon Sep 17 00:00:00 2001 From: Stefanos Valoumas Date: Mon, 12 Sep 2022 14:50:22 +0300 Subject: [PATCH 07/14] test: apply test conventions for slack service --- service/slack/slack_test.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/service/slack/slack_test.go b/service/slack/slack_test.go index 241cb63a..e9ccff88 100644 --- a/service/slack/slack_test.go +++ b/service/slack/slack_test.go @@ -10,7 +10,7 @@ import ( "github.com/stretchr/testify/require" ) -func TestNew(t *testing.T) { +func TestSlack_New(t *testing.T) { t.Parallel() assert := require.New(t) From e9cf4be631a666a5890558bd5955ac20458a5eae Mon Sep 17 00:00:00 2001 From: Stefanos Valoumas Date: Mon, 12 Sep 2022 14:55:24 +0300 Subject: [PATCH 08/14] test: apply test conventions for syslog service --- ..._syslogWriter.go => mock_syslog_writer.go} | 19 +++++++++++++++++-- service/syslog/syslog.go | 2 ++ service/syslog/syslog_test.go | 4 ++-- 3 files changed, 21 insertions(+), 4 deletions(-) rename service/syslog/{mock_syslogWriter.go => mock_syslog_writer.go} (54%) diff --git a/service/syslog/mock_syslogWriter.go b/service/syslog/mock_syslog_writer.go similarity index 54% rename from service/syslog/mock_syslogWriter.go rename to service/syslog/mock_syslog_writer.go index 3e2223a0..7be6d158 100644 --- a/service/syslog/mock_syslogWriter.go +++ b/service/syslog/mock_syslog_writer.go @@ -1,10 +1,10 @@ -// Code generated by mockery 2.10.0. DO NOT EDIT. +// Code generated by mockery v2.14.0. DO NOT EDIT. package syslog import mock "github.com/stretchr/testify/mock" -// mockSyslogWriter is an autogenerated mock type for the mockSyslogWriter type +// mockSyslogWriter is an autogenerated mock type for the syslogWriter type type mockSyslogWriter struct { mock.Mock } @@ -43,3 +43,18 @@ func (_m *mockSyslogWriter) Write(p []byte) (int, error) { return r0, r1 } + +type mockConstructorTestingTnewMockSyslogWriter interface { + mock.TestingT + Cleanup(func()) +} + +// newMockSyslogWriter creates a new instance of mockSyslogWriter. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations. +func newMockSyslogWriter(t mockConstructorTestingTnewMockSyslogWriter) *mockSyslogWriter { + mock := &mockSyslogWriter{} + mock.Mock.Test(t) + + t.Cleanup(func() { mock.AssertExpectations(t) }) + + return mock +} diff --git a/service/syslog/syslog.go b/service/syslog/syslog.go index 47e7dd0b..e06cbd50 100644 --- a/service/syslog/syslog.go +++ b/service/syslog/syslog.go @@ -10,6 +10,8 @@ import ( ) // mockSyslogWriter abstracts log/syslog for writing unit tests. +// +//go:generate mockery --name=syslogWriter --output=. --case=underscore --inpackage type syslogWriter interface { io.WriteCloser } diff --git a/service/syslog/syslog_test.go b/service/syslog/syslog_test.go index d5aaf73b..7b48b1b3 100644 --- a/service/syslog/syslog_test.go +++ b/service/syslog/syslog_test.go @@ -9,7 +9,7 @@ import ( "github.com/stretchr/testify/require" ) -func TestNew(t *testing.T) { +func TestSyslog_New(t *testing.T) { t.Parallel() assert := require.New(t) @@ -39,7 +39,7 @@ func TestNew(t *testing.T) { assert.NoError(err) } -func TestSend(t *testing.T) { +func TestSyslog_Send(t *testing.T) { t.Parallel() assert := require.New(t) From ecaa74abdcc56eccd0cf2f0e55b924961a4befe8 Mon Sep 17 00:00:00 2001 From: Stefanos Valoumas Date: Mon, 12 Sep 2022 14:57:33 +0300 Subject: [PATCH 09/14] test: apply test conventions for twilio service --- ..._twilioClient.go => mock_twilio_client.go} | 26 +++++++++++-------- service/twilio/twilio.go | 2 ++ service/twilio/twilio_test.go | 13 ++++++++-- 3 files changed, 28 insertions(+), 13 deletions(-) rename service/twilio/{mock_twilioClient.go => mock_twilio_client.go} (62%) diff --git a/service/twilio/mock_twilioClient.go b/service/twilio/mock_twilio_client.go similarity index 62% rename from service/twilio/mock_twilioClient.go rename to service/twilio/mock_twilio_client.go index 72f0fd81..0818954a 100644 --- a/service/twilio/mock_twilioClient.go +++ b/service/twilio/mock_twilio_client.go @@ -1,13 +1,12 @@ -// Code generated by mockery v2.12.2. DO NOT EDIT. +// Code generated by mockery v2.14.0. DO NOT EDIT. package twilio import ( - url "net/url" - testing "testing" - - twilio "github.com/kevinburke/twilio-go" + twilio_go "github.com/kevinburke/twilio-go" mock "github.com/stretchr/testify/mock" + + url "net/url" ) // mockTwilioClient is an autogenerated mock type for the twilioClient type @@ -16,15 +15,15 @@ type mockTwilioClient struct { } // SendMessage provides a mock function with given fields: from, to, body, mediaURLs -func (_m *mockTwilioClient) SendMessage(from string, to string, body string, mediaURLs []*url.URL) (*twilio.Message, error) { +func (_m *mockTwilioClient) SendMessage(from string, to string, body string, mediaURLs []*url.URL) (*twilio_go.Message, error) { ret := _m.Called(from, to, body, mediaURLs) - var r0 *twilio.Message - if rf, ok := ret.Get(0).(func(string, string, string, []*url.URL) *twilio.Message); ok { + var r0 *twilio_go.Message + if rf, ok := ret.Get(0).(func(string, string, string, []*url.URL) *twilio_go.Message); ok { r0 = rf(from, to, body, mediaURLs) } else { if ret.Get(0) != nil { - r0 = ret.Get(0).(*twilio.Message) + r0 = ret.Get(0).(*twilio_go.Message) } } @@ -38,8 +37,13 @@ func (_m *mockTwilioClient) SendMessage(from string, to string, body string, med return r0, r1 } -// newMockTwilioClient creates a new instance of mockTwilioClient. It also registers the testing.TB interface on the mock and a cleanup function to assert the mocks expectations. -func newMockTwilioClient(t testing.TB) *mockTwilioClient { +type mockConstructorTestingTnewMockTwilioClient interface { + mock.TestingT + Cleanup(func()) +} + +// newMockTwilioClient creates a new instance of mockTwilioClient. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations. +func newMockTwilioClient(t mockConstructorTestingTnewMockTwilioClient) *mockTwilioClient { mock := &mockTwilioClient{} mock.Mock.Test(t) diff --git a/service/twilio/twilio.go b/service/twilio/twilio.go index 95d988f7..81e516b6 100644 --- a/service/twilio/twilio.go +++ b/service/twilio/twilio.go @@ -12,6 +12,8 @@ import ( var _ twilioClient = &twilio.MessageService{} // twilioClient abstracts twilio-go MessageService for writing unit tests +// +//go:generate mockery --name=twilioClient --output=. --case=underscore --inpackage type twilioClient interface { SendMessage(from, to, body string, mediaURLs []*url.URL) (*twilio.Message, error) } diff --git a/service/twilio/twilio_test.go b/service/twilio/twilio_test.go index f0ca1e4c..1d2aee70 100644 --- a/service/twilio/twilio_test.go +++ b/service/twilio/twilio_test.go @@ -11,7 +11,16 @@ import ( "github.com/stretchr/testify/require" ) -func TestAddReceivers(t *testing.T) { +func TestTwilio_New(t *testing.T) { + t.Parallel() + + assert := require.New(t) + + service, err := New("", "", "") + assert.NotNil(service) + assert.Nil(err) +} +func TestTwilio_AddReceivers(t *testing.T) { t.Parallel() assert := require.New(t) @@ -25,7 +34,7 @@ func TestAddReceivers(t *testing.T) { assert.Equal(svc.toPhoneNumbers, toPhoneNumbers) } -func TestSend(t *testing.T) { +func TestTwilio_Send(t *testing.T) { t.Parallel() assert := require.New(t) From 29809e50f8ef5687813df4168caa482f9034c7ab Mon Sep 17 00:00:00 2001 From: Stefanos Valoumas Date: Mon, 12 Sep 2022 15:03:28 +0300 Subject: [PATCH 10/14] test: apply test conventions for wechat service --- ...nager.go => mock_wechat_message_manager.go} | 17 ++++++++++++++++- service/wechat/wechat.go | 2 ++ service/wechat/wechat_test.go | 18 ++++++++++++++++-- 3 files changed, 34 insertions(+), 3 deletions(-) rename service/wechat/{mock_wechatMessageManager.go => mock_wechat_message_manager.go} (50%) diff --git a/service/wechat/mock_wechatMessageManager.go b/service/wechat/mock_wechat_message_manager.go similarity index 50% rename from service/wechat/mock_wechatMessageManager.go rename to service/wechat/mock_wechat_message_manager.go index 975964d8..3b1c9f36 100644 --- a/service/wechat/mock_wechatMessageManager.go +++ b/service/wechat/mock_wechat_message_manager.go @@ -1,4 +1,4 @@ -// Code generated by mockery 2.7.4. DO NOT EDIT. +// Code generated by mockery v2.14.0. DO NOT EDIT. package wechat @@ -25,3 +25,18 @@ func (_m *mockWechatMessageManager) Send(msg *message.CustomerMessage) error { return r0 } + +type mockConstructorTestingTnewMockWechatMessageManager interface { + mock.TestingT + Cleanup(func()) +} + +// newMockWechatMessageManager creates a new instance of mockWechatMessageManager. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations. +func newMockWechatMessageManager(t mockConstructorTestingTnewMockWechatMessageManager) *mockWechatMessageManager { + mock := &mockWechatMessageManager{} + mock.Mock.Test(t) + + t.Cleanup(func() { mock.AssertExpectations(t) }) + + return mock +} diff --git a/service/wechat/wechat.go b/service/wechat/wechat.go index bf35e604..1a3d3c5c 100644 --- a/service/wechat/wechat.go +++ b/service/wechat/wechat.go @@ -27,6 +27,8 @@ type Config struct { } // wechatMessageManager abstracts go-wechat's message.Manager for writing unit tests +// +//go:generate mockery --name=wechatMessageManager --output=. --case=underscore --inpackage type wechatMessageManager interface { Send(msg *message.CustomerMessage) error } diff --git a/service/wechat/wechat_test.go b/service/wechat/wechat_test.go index ff38e2f1..0f88fcfe 100644 --- a/service/wechat/wechat_test.go +++ b/service/wechat/wechat_test.go @@ -5,11 +5,25 @@ import ( "testing" "github.com/pkg/errors" + "github.com/silenceper/wechat/v2/cache" "github.com/silenceper/wechat/v2/officialaccount/message" "github.com/stretchr/testify/require" ) -func TestAddReceivers(t *testing.T) { +func TestWeChat_New(t *testing.T) { + t.Parallel() + + assert := require.New(t) + + cache := &cache.Memory{} + cfg := &Config{ + Cache: cache, + } + service := New(cfg) + assert.NotNil(service) +} + +func TestWeChat_AddReceivers(t *testing.T) { t.Parallel() assert := require.New(t) @@ -23,7 +37,7 @@ func TestAddReceivers(t *testing.T) { assert.Equal(svc.userIDs, userIDs) } -func TestSend(t *testing.T) { +func TestWeChat_Send(t *testing.T) { t.Parallel() assert := require.New(t) From 0c8245d5d7d843aef6b79e935bd0f1f5e7433e5c Mon Sep 17 00:00:00 2001 From: Stefanos Valoumas Date: Mon, 12 Sep 2022 15:05:19 +0300 Subject: [PATCH 11/14] test: apply test conventions for whatsapp service --- service/whatsapp/mock_whatsappClient.go | 76 -------------------- service/whatsapp/mock_whatsapp_client.go | 91 ++++++++++++++++++++++++ service/whatsapp/whatsapp.go | 2 + service/whatsapp/whatsapp_test.go | 14 +++- 4 files changed, 105 insertions(+), 78 deletions(-) delete mode 100644 service/whatsapp/mock_whatsappClient.go create mode 100644 service/whatsapp/mock_whatsapp_client.go diff --git a/service/whatsapp/mock_whatsappClient.go b/service/whatsapp/mock_whatsappClient.go deleted file mode 100644 index 434367f6..00000000 --- a/service/whatsapp/mock_whatsappClient.go +++ /dev/null @@ -1,76 +0,0 @@ -// Code generated by mockery v2.5.1. DO NOT EDIT. - -package whatsapp - -import ( - whatsapp "github.com/Rhymen/go-whatsapp" - mock "github.com/stretchr/testify/mock" -) - -// mockWhatsappClient is an autogenerated mock type for the mockWhatsappClient type -type mockWhatsappClient struct { - mock.Mock -} - -// Login provides a mock function with given fields: qrChan -func (_m *mockWhatsappClient) Login(qrChan chan<- string) (whatsapp.Session, error) { - ret := _m.Called(qrChan) - - var r0 whatsapp.Session - if rf, ok := ret.Get(0).(func(chan<- string) whatsapp.Session); ok { - r0 = rf(qrChan) - } else { - r0 = ret.Get(0).(whatsapp.Session) - } - - var r1 error - if rf, ok := ret.Get(1).(func(chan<- string) error); ok { - r1 = rf(qrChan) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} - -// RestoreWithSession provides a mock function with given fields: session -func (_m *mockWhatsappClient) RestoreWithSession(session whatsapp.Session) (whatsapp.Session, error) { - ret := _m.Called(session) - - var r0 whatsapp.Session - if rf, ok := ret.Get(0).(func(whatsapp.Session) whatsapp.Session); ok { - r0 = rf(session) - } else { - r0 = ret.Get(0).(whatsapp.Session) - } - - var r1 error - if rf, ok := ret.Get(1).(func(whatsapp.Session) error); ok { - r1 = rf(session) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} - -// Send provides a mock function with given fields: msg -func (_m *mockWhatsappClient) Send(msg interface{}) (string, error) { - ret := _m.Called(msg) - - var r0 string - if rf, ok := ret.Get(0).(func(interface{}) string); ok { - r0 = rf(msg) - } else { - r0 = ret.Get(0).(string) - } - - var r1 error - if rf, ok := ret.Get(1).(func(interface{}) error); ok { - r1 = rf(msg) - } else { - r1 = ret.Error(1) - } - - return r0, r1 -} diff --git a/service/whatsapp/mock_whatsapp_client.go b/service/whatsapp/mock_whatsapp_client.go new file mode 100644 index 00000000..2cb807df --- /dev/null +++ b/service/whatsapp/mock_whatsapp_client.go @@ -0,0 +1,91 @@ +// Code generated by mockery v2.14.0. DO NOT EDIT. + +package whatsapp + +import ( + go_whatsapp "github.com/Rhymen/go-whatsapp" + mock "github.com/stretchr/testify/mock" +) + +// mockWhatsappClient is an autogenerated mock type for the whatsappClient type +type mockWhatsappClient struct { + mock.Mock +} + +// Login provides a mock function with given fields: qrChan +func (_m *mockWhatsappClient) Login(qrChan chan<- string) (go_whatsapp.Session, error) { + ret := _m.Called(qrChan) + + var r0 go_whatsapp.Session + if rf, ok := ret.Get(0).(func(chan<- string) go_whatsapp.Session); ok { + r0 = rf(qrChan) + } else { + r0 = ret.Get(0).(go_whatsapp.Session) + } + + var r1 error + if rf, ok := ret.Get(1).(func(chan<- string) error); ok { + r1 = rf(qrChan) + } else { + r1 = ret.Error(1) + } + + return r0, r1 +} + +// RestoreWithSession provides a mock function with given fields: session +func (_m *mockWhatsappClient) RestoreWithSession(session go_whatsapp.Session) (go_whatsapp.Session, error) { + ret := _m.Called(session) + + var r0 go_whatsapp.Session + if rf, ok := ret.Get(0).(func(go_whatsapp.Session) go_whatsapp.Session); ok { + r0 = rf(session) + } else { + r0 = ret.Get(0).(go_whatsapp.Session) + } + + var r1 error + if rf, ok := ret.Get(1).(func(go_whatsapp.Session) error); ok { + r1 = rf(session) + } else { + r1 = ret.Error(1) + } + + return r0, r1 +} + +// Send provides a mock function with given fields: msg +func (_m *mockWhatsappClient) Send(msg interface{}) (string, error) { + ret := _m.Called(msg) + + var r0 string + if rf, ok := ret.Get(0).(func(interface{}) string); ok { + r0 = rf(msg) + } else { + r0 = ret.Get(0).(string) + } + + var r1 error + if rf, ok := ret.Get(1).(func(interface{}) error); ok { + r1 = rf(msg) + } else { + r1 = ret.Error(1) + } + + return r0, r1 +} + +type mockConstructorTestingTnewMockWhatsappClient interface { + mock.TestingT + Cleanup(func()) +} + +// newMockWhatsappClient creates a new instance of mockWhatsappClient. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations. +func newMockWhatsappClient(t mockConstructorTestingTnewMockWhatsappClient) *mockWhatsappClient { + mock := &mockWhatsappClient{} + mock.Mock.Test(t) + + t.Cleanup(func() { mock.AssertExpectations(t) }) + + return mock +} diff --git a/service/whatsapp/whatsapp.go b/service/whatsapp/whatsapp.go index 9fcb8232..574c79eb 100644 --- a/service/whatsapp/whatsapp.go +++ b/service/whatsapp/whatsapp.go @@ -21,6 +21,8 @@ const ( var sessionFilePath = filepath.Join(os.TempDir(), "whatsappSession.gob") // whatsappClient abstracts go-whatsapp for writing unit tests +// +//go:generate mockery --name=whatsappClient --output=. --case=underscore --inpackage type whatsappClient interface { Login(qrChan chan<- string) (whatsapp.Session, error) RestoreWithSession(session whatsapp.Session) (whatsapp.Session, error) diff --git a/service/whatsapp/whatsapp_test.go b/service/whatsapp/whatsapp_test.go index 1b912df1..b255b904 100644 --- a/service/whatsapp/whatsapp_test.go +++ b/service/whatsapp/whatsapp_test.go @@ -9,7 +9,17 @@ import ( "github.com/stretchr/testify/require" ) -func TestAddReceivers(t *testing.T) { +func TestWhatsApp_New(t *testing.T) { + t.Parallel() + + assert := require.New(t) + + service, err := New() + assert.NotNil(service) + assert.Nil(err) +} + +func TestWhatsApp_AddReceivers(t *testing.T) { t.Parallel() assert := require.New(t) @@ -23,7 +33,7 @@ func TestAddReceivers(t *testing.T) { assert.Equal(svc.contacts, contacts) } -func TestSend(t *testing.T) { +func TestWhatsApp_Send(t *testing.T) { t.Parallel() assert := require.New(t) From 528ac06195b714275de0f1412cb81aa4b2673766 Mon Sep 17 00:00:00 2001 From: Stefanos Valoumas Date: Mon, 12 Sep 2022 15:16:10 +0300 Subject: [PATCH 12/14] chore: gofumpt changes --- service/twilio/twilio_test.go | 1 + 1 file changed, 1 insertion(+) diff --git a/service/twilio/twilio_test.go b/service/twilio/twilio_test.go index 1d2aee70..03462cef 100644 --- a/service/twilio/twilio_test.go +++ b/service/twilio/twilio_test.go @@ -20,6 +20,7 @@ func TestTwilio_New(t *testing.T) { assert.NotNil(service) assert.Nil(err) } + func TestTwilio_AddReceivers(t *testing.T) { t.Parallel() From 3c51987712b8f7196936d7369243be7c45979a39 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niko=20K=C3=B6ser?= Date: Mon, 12 Sep 2022 16:53:16 +0200 Subject: [PATCH 13/14] refactor(service): make most amazon_sns types unexported --- service/amazonsns/amazon_sns.go | 16 ++++++++-------- service/amazonsns/amazon_sns_test.go | 10 +++++----- service/amazonsns/mock_sns_send_message_api.go | 14 +++++++------- 3 files changed, 20 insertions(+), 20 deletions(-) diff --git a/service/amazonsns/amazon_sns.go b/service/amazonsns/amazon_sns.go index db2eaa80..84091cef 100644 --- a/service/amazonsns/amazon_sns.go +++ b/service/amazonsns/amazon_sns.go @@ -10,22 +10,22 @@ import ( "github.com/pkg/errors" ) -// SNSSendMessageAPI Basic interface to send messages through SNS. +// snsSendMessageAPI Basic interface to send messages through SNS. // -//go:generate mockery --name=SNSSendMessageAPI --output=. --case=underscore --inpackage -type SNSSendMessageAPI interface { +//go:generate mockery --name=snsSendMessageAPI --output=. --case=underscore --inpackage +type snsSendMessageAPI interface { SendMessage(ctx context.Context, params *sns.PublishInput, optFns ...func(*sns.Options)) (*sns.PublishOutput, error) } -// SNSSendMessageClient Client specific for SNS using aws sdk v2. -type SNSSendMessageClient struct { +// snsSendMessageClient Client specific for SNS using aws sdk v2. +type snsSendMessageClient struct { client *sns.Client } // SendMessage Client specific for SNS using aws sdk v2. -func (s SNSSendMessageClient) SendMessage(ctx context.Context, +func (s snsSendMessageClient) SendMessage(ctx context.Context, params *sns.PublishInput, optFns ...func(*sns.Options), ) (*sns.PublishOutput, error) { @@ -34,7 +34,7 @@ func (s SNSSendMessageClient) SendMessage(ctx context.Context, // AmazonSNS Basic structure with SNS information type AmazonSNS struct { - sendMessageClient SNSSendMessageAPI + sendMessageClient snsSendMessageAPI queueTopics []string } @@ -51,7 +51,7 @@ func New(accessKeyID, secretKey, region string) (*AmazonSNS, error) { } client := sns.NewFromConfig(cfg) return &AmazonSNS{ - sendMessageClient: SNSSendMessageClient{client: client}, + sendMessageClient: snsSendMessageClient{client: client}, }, nil } diff --git a/service/amazonsns/amazon_sns_test.go b/service/amazonsns/amazon_sns_test.go index e020a717..dd61b245 100644 --- a/service/amazonsns/amazon_sns_test.go +++ b/service/amazonsns/amazon_sns_test.go @@ -34,7 +34,7 @@ func TestAmazonSNS_AddReceivers(t *testing.T) { func TestAmazonSNS_SendMessageWithNoTopicsConfigured(t *testing.T) { t.Parallel() - mockSns := new(MockSNSSendMessageAPI) + mockSns := new(mockSnsSendMessageAPI) amazonSNS := AmazonSNS{ sendMessageClient: mockSns, } @@ -47,7 +47,7 @@ func TestAmazonSNS_SendMessageWithNoTopicsConfigured(t *testing.T) { func TestAmazonSNS_SendMessageWithSucessAndOneTopicConfigured(t *testing.T) { t.Parallel() - mockSns := new(MockSNSSendMessageAPI) + mockSns := new(mockSnsSendMessageAPI) output := sns.PublishOutput{} mockSns.On("SendMessage", mock.Anything, mock.Anything, mock.Anything). Return(&output, nil) @@ -66,7 +66,7 @@ func TestAmazonSNS_SendMessageWithSucessAndOneTopicConfigured(t *testing.T) { func TestAmazonSNS_SendMessageWithSucessAndTwoTopicsConfigured(t *testing.T) { t.Parallel() - mockSns := new(MockSNSSendMessageAPI) + mockSns := new(mockSnsSendMessageAPI) output := sns.PublishOutput{} mockSns.On("SendMessage", mock.Anything, mock.Anything, mock.Anything). Return(&output, nil) @@ -88,7 +88,7 @@ func TestAmazonSNS_SendMessageWithSucessAndTwoTopicsConfigured(t *testing.T) { func TestAmazonSNS_SendMessageWithErrorAndOneQueueConfiguredShouldReturnError(t *testing.T) { t.Parallel() - mockSns := new(MockSNSSendMessageAPI) + mockSns := new(mockSnsSendMessageAPI) output := sns.PublishOutput{} mockSns.On("SendMessage", mock.Anything, mock.Anything, mock.Anything). Return(&output, errors.New("Error on SNS")) @@ -109,7 +109,7 @@ func TestAmazonSNS_SendMessageWithErrorAndOneQueueConfiguredShouldReturnError(t func TestAmazonSNS_SendMessageWithErrorAndTwoQueueConfiguredShouldReturnErrorOnFirst(t *testing.T) { t.Parallel() - mockSns := new(MockSNSSendMessageAPI) + mockSns := new(mockSnsSendMessageAPI) output := sns.PublishOutput{} mockSns.On("SendMessage", mock.Anything, mock.Anything, mock.Anything). Return(&output, errors.New("Error on SNS")) diff --git a/service/amazonsns/mock_sns_send_message_api.go b/service/amazonsns/mock_sns_send_message_api.go index 504633f8..4a161224 100644 --- a/service/amazonsns/mock_sns_send_message_api.go +++ b/service/amazonsns/mock_sns_send_message_api.go @@ -9,13 +9,13 @@ import ( mock "github.com/stretchr/testify/mock" ) -// MockSNSSendMessageAPI is an autogenerated mock type for the SNSSendMessageAPI type -type MockSNSSendMessageAPI struct { +// mockSnsSendMessageAPI is an autogenerated mock type for the snsSendMessageAPI type +type mockSnsSendMessageAPI struct { mock.Mock } // SendMessage provides a mock function with given fields: ctx, params, optFns -func (_m *MockSNSSendMessageAPI) SendMessage(ctx context.Context, params *sns.PublishInput, optFns ...func(*sns.Options)) (*sns.PublishOutput, error) { +func (_m *mockSnsSendMessageAPI) SendMessage(ctx context.Context, params *sns.PublishInput, optFns ...func(*sns.Options)) (*sns.PublishOutput, error) { _va := make([]interface{}, len(optFns)) for _i := range optFns { _va[_i] = optFns[_i] @@ -44,14 +44,14 @@ func (_m *MockSNSSendMessageAPI) SendMessage(ctx context.Context, params *sns.Pu return r0, r1 } -type mockConstructorTestingTNewMockSNSSendMessageAPI interface { +type mockConstructorTestingTnewMockSnsSendMessageAPI interface { mock.TestingT Cleanup(func()) } -// NewMockSNSSendMessageAPI creates a new instance of MockSNSSendMessageAPI. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations. -func NewMockSNSSendMessageAPI(t mockConstructorTestingTNewMockSNSSendMessageAPI) *MockSNSSendMessageAPI { - mock := &MockSNSSendMessageAPI{} +// newMockSnsSendMessageAPI creates a new instance of mockSnsSendMessageAPI. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations. +func newMockSnsSendMessageAPI(t mockConstructorTestingTnewMockSnsSendMessageAPI) *mockSnsSendMessageAPI { + mock := &mockSnsSendMessageAPI{} mock.Mock.Test(t) t.Cleanup(func() { mock.AssertExpectations(t) }) From b8bf94fc44e7e30a6b5735b045e071555899f1a8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niko=20K=C3=B6ser?= Date: Mon, 12 Sep 2022 16:54:09 +0200 Subject: [PATCH 14/14] style(fmt): make fmt --- service/twilio/mock_twilio_client.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/service/twilio/mock_twilio_client.go b/service/twilio/mock_twilio_client.go index 0818954a..cc521a67 100644 --- a/service/twilio/mock_twilio_client.go +++ b/service/twilio/mock_twilio_client.go @@ -3,10 +3,10 @@ package twilio import ( + url "net/url" + twilio_go "github.com/kevinburke/twilio-go" mock "github.com/stretchr/testify/mock" - - url "net/url" ) // mockTwilioClient is an autogenerated mock type for the twilioClient type