mirror of
https://github.com/nikoksr/notify.git
synced 2025-02-07 13:08:12 +02:00
adding tests
This commit is contained in:
parent
09ee9c672e
commit
d61e3712f5
27
service/wechat/mock_wechatMessageManager.go
Normal file
27
service/wechat/mock_wechatMessageManager.go
Normal file
@ -0,0 +1,27 @@
|
||||
// Code generated by mockery 2.7.4. DO NOT EDIT.
|
||||
|
||||
package wechat
|
||||
|
||||
import (
|
||||
message "github.com/silenceper/wechat/v2/officialaccount/message"
|
||||
mock "github.com/stretchr/testify/mock"
|
||||
)
|
||||
|
||||
// mockWechatMessageManager is an autogenerated mock type for the wechatMessageManager type
|
||||
type mockWechatMessageManager struct {
|
||||
mock.Mock
|
||||
}
|
||||
|
||||
// Send provides a mock function with given fields: msg
|
||||
func (_m *mockWechatMessageManager) Send(msg *message.CustomerMessage) error {
|
||||
ret := _m.Called(msg)
|
||||
|
||||
var r0 error
|
||||
if rf, ok := ret.Get(0).(func(*message.CustomerMessage) error); ok {
|
||||
r0 = rf(msg)
|
||||
} else {
|
||||
r0 = ret.Error(0)
|
||||
}
|
||||
|
||||
return r0
|
||||
}
|
@ -23,10 +23,15 @@ type Config struct {
|
||||
EncodingAESKey string
|
||||
}
|
||||
|
||||
// wechatMessageManager abstracts go-wechat's message.Manager for writing unit tests
|
||||
type wechatMessageManager interface {
|
||||
Send(msg *message.CustomerMessage) error
|
||||
}
|
||||
|
||||
// Service encapsulates the WeChat client along with internal state for storing users.
|
||||
type Service struct {
|
||||
config Config
|
||||
messageManager *message.Manager
|
||||
messageManager wechatMessageManager
|
||||
userIDs []string
|
||||
}
|
||||
|
||||
|
52
service/wechat/wechat_test.go
Normal file
52
service/wechat/wechat_test.go
Normal file
@ -0,0 +1,52 @@
|
||||
package wechat
|
||||
|
||||
import (
|
||||
"context"
|
||||
"github.com/silenceper/wechat/v2/officialaccount/message"
|
||||
"github.com/pkg/errors"
|
||||
"github.com/stretchr/testify/require"
|
||||
"testing"
|
||||
)
|
||||
|
||||
func TestAddReceivers(t *testing.T) {
|
||||
assert := require.New(t)
|
||||
|
||||
svc := &Service{
|
||||
userIDs: []string{},
|
||||
}
|
||||
userIDs := []string{"User1ID", "User2ID", "User3ID"}
|
||||
svc.AddReceivers(userIDs...)
|
||||
|
||||
assert.Equal(svc.userIDs, userIDs)
|
||||
}
|
||||
|
||||
func TestSend(t *testing.T) {
|
||||
assert := require.New(t)
|
||||
|
||||
svc := &Service{
|
||||
userIDs: []string{},
|
||||
}
|
||||
|
||||
// test wechat message manager returning error
|
||||
mockMsgManager := new(mockWechatMessageManager)
|
||||
mockMsgManager.On("Send", message.NewCustomerTextMessage("UserID1", "subject\nmessage")).
|
||||
Return(errors.New("some error"))
|
||||
svc.messageManager = mockMsgManager
|
||||
svc.AddReceivers("UserID1")
|
||||
ctx := context.Background()
|
||||
err := svc.Send(ctx, "subject", "message")
|
||||
assert.NotNil(err)
|
||||
mockMsgManager.AssertExpectations(t)
|
||||
|
||||
// test success and multiple receivers
|
||||
mockMsgManager = new(mockWechatMessageManager)
|
||||
mockMsgManager.On("Send", message.NewCustomerTextMessage("UserID1", "subject\nmessage")).
|
||||
Return(nil)
|
||||
mockMsgManager.On("Send", message.NewCustomerTextMessage("UserID2", "subject\nmessage")).
|
||||
Return(nil)
|
||||
svc.messageManager = mockMsgManager
|
||||
svc.AddReceivers("UserID1", "UserID2")
|
||||
err = svc.Send(ctx, "subject", "message")
|
||||
assert.Nil(err)
|
||||
mockMsgManager.AssertExpectations(t)
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user