From 1e5c432e1029601a664454388ae366ef69618d62 Mon Sep 17 00:00:00 2001 From: Christopher Speller Date: Mon, 25 Jun 2018 12:33:13 -0700 Subject: MM-10702 Moving plugins to use hashicorp go-plugin. (#8978) * Moving plugins to use hashicorp go-plugin. * Tweaks from feedback. --- plugin/plugintest/api.go | 120 +++++++++++++++++++++++------------ plugin/plugintest/apioverride.go | 18 ------ plugin/plugintest/hooks.go | 40 +++++++++--- plugin/plugintest/key_value_store.go | 70 -------------------- 4 files changed, 111 insertions(+), 137 deletions(-) delete mode 100644 plugin/plugintest/apioverride.go delete mode 100644 plugin/plugintest/key_value_store.go (limited to 'plugin/plugintest') diff --git a/plugin/plugintest/api.go b/plugin/plugintest/api.go index f1281a5ff..11c5a9c59 100644 --- a/plugin/plugintest/api.go +++ b/plugin/plugintest/api.go @@ -6,15 +6,14 @@ package plugintest import mock "github.com/stretchr/testify/mock" import model "github.com/mattermost/mattermost-server/model" -import plugin "github.com/mattermost/mattermost-server/plugin" -// APIMOCKINTERNAL is an autogenerated mock type for the APIMOCKINTERNAL type -type APIMOCKINTERNAL struct { +// API is an autogenerated mock type for the API type +type API struct { mock.Mock } // AddChannelMember provides a mock function with given fields: channelId, userId -func (_m *APIMOCKINTERNAL) AddChannelMember(channelId string, userId string) (*model.ChannelMember, *model.AppError) { +func (_m *API) AddChannelMember(channelId string, userId string) (*model.ChannelMember, *model.AppError) { ret := _m.Called(channelId, userId) var r0 *model.ChannelMember @@ -39,7 +38,7 @@ func (_m *APIMOCKINTERNAL) AddChannelMember(channelId string, userId string) (*m } // CreateChannel provides a mock function with given fields: channel -func (_m *APIMOCKINTERNAL) CreateChannel(channel *model.Channel) (*model.Channel, *model.AppError) { +func (_m *API) CreateChannel(channel *model.Channel) (*model.Channel, *model.AppError) { ret := _m.Called(channel) var r0 *model.Channel @@ -64,7 +63,7 @@ func (_m *APIMOCKINTERNAL) CreateChannel(channel *model.Channel) (*model.Channel } // CreatePost provides a mock function with given fields: post -func (_m *APIMOCKINTERNAL) CreatePost(post *model.Post) (*model.Post, *model.AppError) { +func (_m *API) CreatePost(post *model.Post) (*model.Post, *model.AppError) { ret := _m.Called(post) var r0 *model.Post @@ -89,7 +88,7 @@ func (_m *APIMOCKINTERNAL) CreatePost(post *model.Post) (*model.Post, *model.App } // CreateTeam provides a mock function with given fields: team -func (_m *APIMOCKINTERNAL) CreateTeam(team *model.Team) (*model.Team, *model.AppError) { +func (_m *API) CreateTeam(team *model.Team) (*model.Team, *model.AppError) { ret := _m.Called(team) var r0 *model.Team @@ -114,7 +113,7 @@ func (_m *APIMOCKINTERNAL) CreateTeam(team *model.Team) (*model.Team, *model.App } // CreateUser provides a mock function with given fields: user -func (_m *APIMOCKINTERNAL) CreateUser(user *model.User) (*model.User, *model.AppError) { +func (_m *API) CreateUser(user *model.User) (*model.User, *model.AppError) { ret := _m.Called(user) var r0 *model.User @@ -139,7 +138,7 @@ func (_m *APIMOCKINTERNAL) CreateUser(user *model.User) (*model.User, *model.App } // DeleteChannel provides a mock function with given fields: channelId -func (_m *APIMOCKINTERNAL) DeleteChannel(channelId string) *model.AppError { +func (_m *API) DeleteChannel(channelId string) *model.AppError { ret := _m.Called(channelId) var r0 *model.AppError @@ -155,7 +154,7 @@ func (_m *APIMOCKINTERNAL) DeleteChannel(channelId string) *model.AppError { } // DeleteChannelMember provides a mock function with given fields: channelId, userId -func (_m *APIMOCKINTERNAL) DeleteChannelMember(channelId string, userId string) *model.AppError { +func (_m *API) DeleteChannelMember(channelId string, userId string) *model.AppError { ret := _m.Called(channelId, userId) var r0 *model.AppError @@ -171,7 +170,7 @@ func (_m *APIMOCKINTERNAL) DeleteChannelMember(channelId string, userId string) } // DeletePost provides a mock function with given fields: postId -func (_m *APIMOCKINTERNAL) DeletePost(postId string) *model.AppError { +func (_m *API) DeletePost(postId string) *model.AppError { ret := _m.Called(postId) var r0 *model.AppError @@ -187,7 +186,7 @@ func (_m *APIMOCKINTERNAL) DeletePost(postId string) *model.AppError { } // DeleteTeam provides a mock function with given fields: teamId -func (_m *APIMOCKINTERNAL) DeleteTeam(teamId string) *model.AppError { +func (_m *API) DeleteTeam(teamId string) *model.AppError { ret := _m.Called(teamId) var r0 *model.AppError @@ -203,7 +202,7 @@ func (_m *APIMOCKINTERNAL) DeleteTeam(teamId string) *model.AppError { } // DeleteUser provides a mock function with given fields: userId -func (_m *APIMOCKINTERNAL) DeleteUser(userId string) *model.AppError { +func (_m *API) DeleteUser(userId string) *model.AppError { ret := _m.Called(userId) var r0 *model.AppError @@ -219,7 +218,7 @@ func (_m *APIMOCKINTERNAL) DeleteUser(userId string) *model.AppError { } // GetChannel provides a mock function with given fields: channelId -func (_m *APIMOCKINTERNAL) GetChannel(channelId string) (*model.Channel, *model.AppError) { +func (_m *API) GetChannel(channelId string) (*model.Channel, *model.AppError) { ret := _m.Called(channelId) var r0 *model.Channel @@ -244,7 +243,7 @@ func (_m *APIMOCKINTERNAL) GetChannel(channelId string) (*model.Channel, *model. } // GetChannelByName provides a mock function with given fields: name, teamId -func (_m *APIMOCKINTERNAL) GetChannelByName(name string, teamId string) (*model.Channel, *model.AppError) { +func (_m *API) GetChannelByName(name string, teamId string) (*model.Channel, *model.AppError) { ret := _m.Called(name, teamId) var r0 *model.Channel @@ -269,7 +268,7 @@ func (_m *APIMOCKINTERNAL) GetChannelByName(name string, teamId string) (*model. } // GetChannelMember provides a mock function with given fields: channelId, userId -func (_m *APIMOCKINTERNAL) GetChannelMember(channelId string, userId string) (*model.ChannelMember, *model.AppError) { +func (_m *API) GetChannelMember(channelId string, userId string) (*model.ChannelMember, *model.AppError) { ret := _m.Called(channelId, userId) var r0 *model.ChannelMember @@ -294,7 +293,7 @@ func (_m *APIMOCKINTERNAL) GetChannelMember(channelId string, userId string) (*m } // GetDirectChannel provides a mock function with given fields: userId1, userId2 -func (_m *APIMOCKINTERNAL) GetDirectChannel(userId1 string, userId2 string) (*model.Channel, *model.AppError) { +func (_m *API) GetDirectChannel(userId1 string, userId2 string) (*model.Channel, *model.AppError) { ret := _m.Called(userId1, userId2) var r0 *model.Channel @@ -319,7 +318,7 @@ func (_m *APIMOCKINTERNAL) GetDirectChannel(userId1 string, userId2 string) (*mo } // GetGroupChannel provides a mock function with given fields: userIds -func (_m *APIMOCKINTERNAL) GetGroupChannel(userIds []string) (*model.Channel, *model.AppError) { +func (_m *API) GetGroupChannel(userIds []string) (*model.Channel, *model.AppError) { ret := _m.Called(userIds) var r0 *model.Channel @@ -344,7 +343,7 @@ func (_m *APIMOCKINTERNAL) GetGroupChannel(userIds []string) (*model.Channel, *m } // GetPost provides a mock function with given fields: postId -func (_m *APIMOCKINTERNAL) GetPost(postId string) (*model.Post, *model.AppError) { +func (_m *API) GetPost(postId string) (*model.Post, *model.AppError) { ret := _m.Called(postId) var r0 *model.Post @@ -369,7 +368,7 @@ func (_m *APIMOCKINTERNAL) GetPost(postId string) (*model.Post, *model.AppError) } // GetTeam provides a mock function with given fields: teamId -func (_m *APIMOCKINTERNAL) GetTeam(teamId string) (*model.Team, *model.AppError) { +func (_m *API) GetTeam(teamId string) (*model.Team, *model.AppError) { ret := _m.Called(teamId) var r0 *model.Team @@ -394,7 +393,7 @@ func (_m *APIMOCKINTERNAL) GetTeam(teamId string) (*model.Team, *model.AppError) } // GetTeamByName provides a mock function with given fields: name -func (_m *APIMOCKINTERNAL) GetTeamByName(name string) (*model.Team, *model.AppError) { +func (_m *API) GetTeamByName(name string) (*model.Team, *model.AppError) { ret := _m.Called(name) var r0 *model.Team @@ -419,7 +418,7 @@ func (_m *APIMOCKINTERNAL) GetTeamByName(name string) (*model.Team, *model.AppEr } // GetUser provides a mock function with given fields: userId -func (_m *APIMOCKINTERNAL) GetUser(userId string) (*model.User, *model.AppError) { +func (_m *API) GetUser(userId string) (*model.User, *model.AppError) { ret := _m.Called(userId) var r0 *model.User @@ -444,7 +443,7 @@ func (_m *APIMOCKINTERNAL) GetUser(userId string) (*model.User, *model.AppError) } // GetUserByEmail provides a mock function with given fields: email -func (_m *APIMOCKINTERNAL) GetUserByEmail(email string) (*model.User, *model.AppError) { +func (_m *API) GetUserByEmail(email string) (*model.User, *model.AppError) { ret := _m.Called(email) var r0 *model.User @@ -469,7 +468,7 @@ func (_m *APIMOCKINTERNAL) GetUserByEmail(email string) (*model.User, *model.App } // GetUserByUsername provides a mock function with given fields: name -func (_m *APIMOCKINTERNAL) GetUserByUsername(name string) (*model.User, *model.AppError) { +func (_m *API) GetUserByUsername(name string) (*model.User, *model.AppError) { ret := _m.Called(name) var r0 *model.User @@ -493,16 +492,57 @@ func (_m *APIMOCKINTERNAL) GetUserByUsername(name string) (*model.User, *model.A return r0, r1 } -// KeyValueStore provides a mock function with given fields: -func (_m *APIMOCKINTERNAL) KeyValueStore() plugin.KeyValueStore { - ret := _m.Called() +// KVDelete provides a mock function with given fields: key +func (_m *API) KVDelete(key string) *model.AppError { + ret := _m.Called(key) - var r0 plugin.KeyValueStore - if rf, ok := ret.Get(0).(func() plugin.KeyValueStore); ok { - r0 = rf() + var r0 *model.AppError + if rf, ok := ret.Get(0).(func(string) *model.AppError); ok { + r0 = rf(key) + } else { + if ret.Get(0) != nil { + r0 = ret.Get(0).(*model.AppError) + } + } + + return r0 +} + +// KVGet provides a mock function with given fields: key +func (_m *API) KVGet(key string) ([]byte, *model.AppError) { + ret := _m.Called(key) + + var r0 []byte + if rf, ok := ret.Get(0).(func(string) []byte); ok { + r0 = rf(key) } else { if ret.Get(0) != nil { - r0 = ret.Get(0).(plugin.KeyValueStore) + r0 = ret.Get(0).([]byte) + } + } + + var r1 *model.AppError + if rf, ok := ret.Get(1).(func(string) *model.AppError); ok { + r1 = rf(key) + } else { + if ret.Get(1) != nil { + r1 = ret.Get(1).(*model.AppError) + } + } + + return r0, r1 +} + +// KVSet provides a mock function with given fields: key, value +func (_m *API) KVSet(key string, value []byte) *model.AppError { + ret := _m.Called(key, value) + + var r0 *model.AppError + if rf, ok := ret.Get(0).(func(string, []byte) *model.AppError); ok { + r0 = rf(key, value) + } else { + if ret.Get(0) != nil { + r0 = ret.Get(0).(*model.AppError) } } @@ -510,7 +550,7 @@ func (_m *APIMOCKINTERNAL) KeyValueStore() plugin.KeyValueStore { } // LoadPluginConfiguration provides a mock function with given fields: dest -func (_m *APIMOCKINTERNAL) LoadPluginConfiguration(dest interface{}) error { +func (_m *API) LoadPluginConfiguration(dest interface{}) error { ret := _m.Called(dest) var r0 error @@ -524,7 +564,7 @@ func (_m *APIMOCKINTERNAL) LoadPluginConfiguration(dest interface{}) error { } // RegisterCommand provides a mock function with given fields: command -func (_m *APIMOCKINTERNAL) RegisterCommand(command *model.Command) error { +func (_m *API) RegisterCommand(command *model.Command) error { ret := _m.Called(command) var r0 error @@ -538,7 +578,7 @@ func (_m *APIMOCKINTERNAL) RegisterCommand(command *model.Command) error { } // UnregisterCommand provides a mock function with given fields: teamId, trigger -func (_m *APIMOCKINTERNAL) UnregisterCommand(teamId string, trigger string) error { +func (_m *API) UnregisterCommand(teamId string, trigger string) error { ret := _m.Called(teamId, trigger) var r0 error @@ -552,7 +592,7 @@ func (_m *APIMOCKINTERNAL) UnregisterCommand(teamId string, trigger string) erro } // UpdateChannel provides a mock function with given fields: channel -func (_m *APIMOCKINTERNAL) UpdateChannel(channel *model.Channel) (*model.Channel, *model.AppError) { +func (_m *API) UpdateChannel(channel *model.Channel) (*model.Channel, *model.AppError) { ret := _m.Called(channel) var r0 *model.Channel @@ -577,7 +617,7 @@ func (_m *APIMOCKINTERNAL) UpdateChannel(channel *model.Channel) (*model.Channel } // UpdateChannelMemberNotifications provides a mock function with given fields: channelId, userId, notifications -func (_m *APIMOCKINTERNAL) UpdateChannelMemberNotifications(channelId string, userId string, notifications map[string]string) (*model.ChannelMember, *model.AppError) { +func (_m *API) UpdateChannelMemberNotifications(channelId string, userId string, notifications map[string]string) (*model.ChannelMember, *model.AppError) { ret := _m.Called(channelId, userId, notifications) var r0 *model.ChannelMember @@ -602,7 +642,7 @@ func (_m *APIMOCKINTERNAL) UpdateChannelMemberNotifications(channelId string, us } // UpdateChannelMemberRoles provides a mock function with given fields: channelId, userId, newRoles -func (_m *APIMOCKINTERNAL) UpdateChannelMemberRoles(channelId string, userId string, newRoles string) (*model.ChannelMember, *model.AppError) { +func (_m *API) UpdateChannelMemberRoles(channelId string, userId string, newRoles string) (*model.ChannelMember, *model.AppError) { ret := _m.Called(channelId, userId, newRoles) var r0 *model.ChannelMember @@ -627,7 +667,7 @@ func (_m *APIMOCKINTERNAL) UpdateChannelMemberRoles(channelId string, userId str } // UpdatePost provides a mock function with given fields: post -func (_m *APIMOCKINTERNAL) UpdatePost(post *model.Post) (*model.Post, *model.AppError) { +func (_m *API) UpdatePost(post *model.Post) (*model.Post, *model.AppError) { ret := _m.Called(post) var r0 *model.Post @@ -652,7 +692,7 @@ func (_m *APIMOCKINTERNAL) UpdatePost(post *model.Post) (*model.Post, *model.App } // UpdateTeam provides a mock function with given fields: team -func (_m *APIMOCKINTERNAL) UpdateTeam(team *model.Team) (*model.Team, *model.AppError) { +func (_m *API) UpdateTeam(team *model.Team) (*model.Team, *model.AppError) { ret := _m.Called(team) var r0 *model.Team @@ -677,7 +717,7 @@ func (_m *APIMOCKINTERNAL) UpdateTeam(team *model.Team) (*model.Team, *model.App } // UpdateUser provides a mock function with given fields: user -func (_m *APIMOCKINTERNAL) UpdateUser(user *model.User) (*model.User, *model.AppError) { +func (_m *API) UpdateUser(user *model.User) (*model.User, *model.AppError) { ret := _m.Called(user) var r0 *model.User diff --git a/plugin/plugintest/apioverride.go b/plugin/plugintest/apioverride.go deleted file mode 100644 index 54cfe27bc..000000000 --- a/plugin/plugintest/apioverride.go +++ /dev/null @@ -1,18 +0,0 @@ -// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved. -// See LICENSE.txt for license information. - -package plugintest - -import "github.com/mattermost/mattermost-server/plugin" - -type API struct { - APIMOCKINTERNAL - Store *KeyValueStore -} - -var _ plugin.API = (*API)(nil) -var _ plugin.KeyValueStore = (*KeyValueStore)(nil) - -func (m *API) KeyValueStore() plugin.KeyValueStore { - return m.Store -} diff --git a/plugin/plugintest/hooks.go b/plugin/plugintest/hooks.go index 3de257c76..790a5a993 100644 --- a/plugin/plugintest/hooks.go +++ b/plugin/plugintest/hooks.go @@ -7,7 +7,6 @@ package plugintest import http "net/http" import mock "github.com/stretchr/testify/mock" import model "github.com/mattermost/mattermost-server/model" -import plugin "github.com/mattermost/mattermost-server/plugin" // Hooks is an autogenerated mock type for the Hooks type type Hooks struct { @@ -39,6 +38,29 @@ func (_m *Hooks) ExecuteCommand(args *model.CommandArgs) (*model.CommandResponse return r0, r1 } +// Implemented provides a mock function with given fields: +func (_m *Hooks) Implemented() ([]string, error) { + ret := _m.Called() + + var r0 []string + if rf, ok := ret.Get(0).(func() []string); ok { + r0 = rf() + } else { + if ret.Get(0) != nil { + r0 = ret.Get(0).([]string) + } + } + + var r1 error + if rf, ok := ret.Get(1).(func() error); ok { + r1 = rf() + } else { + r1 = ret.Error(1) + } + + return r0, r1 +} + // MessageHasBeenPosted provides a mock function with given fields: post func (_m *Hooks) MessageHasBeenPosted(post *model.Post) { _m.Called(post) @@ -95,13 +117,13 @@ func (_m *Hooks) MessageWillBeUpdated(newPost *model.Post, oldPost *model.Post) return r0, r1 } -// OnActivate provides a mock function with given fields: _a0 -func (_m *Hooks) OnActivate(_a0 plugin.API) error { - ret := _m.Called(_a0) +// OnActivate provides a mock function with given fields: +func (_m *Hooks) OnActivate() error { + ret := _m.Called() var r0 error - if rf, ok := ret.Get(0).(func(plugin.API) error); ok { - r0 = rf(_a0) + if rf, ok := ret.Get(0).(func() error); ok { + r0 = rf() } else { r0 = ret.Error(0) } @@ -137,7 +159,7 @@ func (_m *Hooks) OnDeactivate() error { return r0 } -// ServeHTTP provides a mock function with given fields: _a0, _a1 -func (_m *Hooks) ServeHTTP(_a0 http.ResponseWriter, _a1 *http.Request) { - _m.Called(_a0, _a1) +// ServeHTTP provides a mock function with given fields: w, r +func (_m *Hooks) ServeHTTP(w http.ResponseWriter, r *http.Request) { + _m.Called(w, r) } diff --git a/plugin/plugintest/key_value_store.go b/plugin/plugintest/key_value_store.go deleted file mode 100644 index 30d60d708..000000000 --- a/plugin/plugintest/key_value_store.go +++ /dev/null @@ -1,70 +0,0 @@ -// Code generated by mockery v1.0.0. DO NOT EDIT. - -// Regenerate this file using `make plugin-mocks`. - -package plugintest - -import mock "github.com/stretchr/testify/mock" -import model "github.com/mattermost/mattermost-server/model" - -// KeyValueStore is an autogenerated mock type for the KeyValueStore type -type KeyValueStore struct { - mock.Mock -} - -// Delete provides a mock function with given fields: key -func (_m *KeyValueStore) Delete(key string) *model.AppError { - ret := _m.Called(key) - - var r0 *model.AppError - if rf, ok := ret.Get(0).(func(string) *model.AppError); ok { - r0 = rf(key) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).(*model.AppError) - } - } - - return r0 -} - -// Get provides a mock function with given fields: key -func (_m *KeyValueStore) Get(key string) ([]byte, *model.AppError) { - ret := _m.Called(key) - - var r0 []byte - if rf, ok := ret.Get(0).(func(string) []byte); ok { - r0 = rf(key) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).([]byte) - } - } - - var r1 *model.AppError - if rf, ok := ret.Get(1).(func(string) *model.AppError); ok { - r1 = rf(key) - } else { - if ret.Get(1) != nil { - r1 = ret.Get(1).(*model.AppError) - } - } - - return r0, r1 -} - -// Set provides a mock function with given fields: key, value -func (_m *KeyValueStore) Set(key string, value []byte) *model.AppError { - ret := _m.Called(key, value) - - var r0 *model.AppError - if rf, ok := ret.Get(0).(func(string, []byte) *model.AppError); ok { - r0 = rf(key, value) - } else { - if ret.Get(0) != nil { - r0 = ret.Get(0).(*model.AppError) - } - } - - return r0 -} -- cgit v1.2.3-1-g7c22 From d7976549a0b45a42c04ac043a15677b7ca1228e9 Mon Sep 17 00:00:00 2001 From: Joram Wilander Date: Wed, 27 Jun 2018 08:46:38 -0400 Subject: MM-9674 Add plugin API for publishing custom WebSocket events (#8999) * Add plugin API for publishing custom WebSocket events * Add clearer payload comment * Update comment --- plugin/plugintest/api.go | 7 ++++++- plugin/plugintest/hooks.go | 2 +- 2 files changed, 7 insertions(+), 2 deletions(-) (limited to 'plugin/plugintest') diff --git a/plugin/plugintest/api.go b/plugin/plugintest/api.go index 11c5a9c59..145fcbf9d 100644 --- a/plugin/plugintest/api.go +++ b/plugin/plugintest/api.go @@ -1,4 +1,4 @@ -// Code generated by mockery v1.0.0. DO NOT EDIT. +// Code generated by mockery v1.0.0 // Regenerate this file using `make plugin-mocks`. @@ -563,6 +563,11 @@ func (_m *API) LoadPluginConfiguration(dest interface{}) error { return r0 } +// PublishWebSocketEvent provides a mock function with given fields: event, payload, broadcast +func (_m *API) PublishWebSocketEvent(event string, payload map[string]interface{}, broadcast *model.WebsocketBroadcast) { + _m.Called(event, payload, broadcast) +} + // RegisterCommand provides a mock function with given fields: command func (_m *API) RegisterCommand(command *model.Command) error { ret := _m.Called(command) diff --git a/plugin/plugintest/hooks.go b/plugin/plugintest/hooks.go index 790a5a993..0d335a626 100644 --- a/plugin/plugintest/hooks.go +++ b/plugin/plugintest/hooks.go @@ -1,4 +1,4 @@ -// Code generated by mockery v1.0.0. DO NOT EDIT. +// Code generated by mockery v1.0.0 // Regenerate this file using `make plugin-mocks`. -- cgit v1.2.3-1-g7c22 From 83a3ac089cff0d05559e6ba5c2c60b09f5cae176 Mon Sep 17 00:00:00 2001 From: Christopher Speller Date: Tue, 3 Jul 2018 09:58:28 -0700 Subject: MM-11029 Adding plugin logging functionality. (#9034) * Capturing stdout, stderr of plugins in logs. * Cleanup go-plugin debug logs. * Adding logging to plugin API * Generating mocks. * godoc convention --- plugin/plugintest/api.go | 34 +++++++++++++++++++++++++++++++++- plugin/plugintest/hooks.go | 2 +- 2 files changed, 34 insertions(+), 2 deletions(-) (limited to 'plugin/plugintest') diff --git a/plugin/plugintest/api.go b/plugin/plugintest/api.go index 145fcbf9d..b9d8d7521 100644 --- a/plugin/plugintest/api.go +++ b/plugin/plugintest/api.go @@ -1,4 +1,4 @@ -// Code generated by mockery v1.0.0 +// Code generated by mockery v1.0.0. DO NOT EDIT. // Regenerate this file using `make plugin-mocks`. @@ -563,6 +563,38 @@ func (_m *API) LoadPluginConfiguration(dest interface{}) error { return r0 } +// LogDebug provides a mock function with given fields: msg, keyValuePairs +func (_m *API) LogDebug(msg string, keyValuePairs ...interface{}) { + var _ca []interface{} + _ca = append(_ca, msg) + _ca = append(_ca, keyValuePairs...) + _m.Called(_ca...) +} + +// LogError provides a mock function with given fields: msg, keyValuePairs +func (_m *API) LogError(msg string, keyValuePairs ...interface{}) { + var _ca []interface{} + _ca = append(_ca, msg) + _ca = append(_ca, keyValuePairs...) + _m.Called(_ca...) +} + +// LogInfo provides a mock function with given fields: msg, keyValuePairs +func (_m *API) LogInfo(msg string, keyValuePairs ...interface{}) { + var _ca []interface{} + _ca = append(_ca, msg) + _ca = append(_ca, keyValuePairs...) + _m.Called(_ca...) +} + +// LogWarn provides a mock function with given fields: msg, keyValuePairs +func (_m *API) LogWarn(msg string, keyValuePairs ...interface{}) { + var _ca []interface{} + _ca = append(_ca, msg) + _ca = append(_ca, keyValuePairs...) + _m.Called(_ca...) +} + // PublishWebSocketEvent provides a mock function with given fields: event, payload, broadcast func (_m *API) PublishWebSocketEvent(event string, payload map[string]interface{}, broadcast *model.WebsocketBroadcast) { _m.Called(event, payload, broadcast) diff --git a/plugin/plugintest/hooks.go b/plugin/plugintest/hooks.go index 0d335a626..790a5a993 100644 --- a/plugin/plugintest/hooks.go +++ b/plugin/plugintest/hooks.go @@ -1,4 +1,4 @@ -// Code generated by mockery v1.0.0 +// Code generated by mockery v1.0.0. DO NOT EDIT. // Regenerate this file using `make plugin-mocks`. -- cgit v1.2.3-1-g7c22 From 4c1ddcff10b359baf5728b334acb60cc3e1b1123 Mon Sep 17 00:00:00 2001 From: Christopher Speller Date: Fri, 6 Jul 2018 06:07:09 -0700 Subject: MM-10703 Adding blank request context to plugin hooks for future use. (#9043) * Adding blank request context to plugin hooks for future use. * Rename RequestContext to Context * Adding context to ServeHTTP and ExecuteCommand * Fixing import cycle in test. --- plugin/plugintest/hooks.go | 61 +++++++++++++++++++++++----------------------- 1 file changed, 31 insertions(+), 30 deletions(-) (limited to 'plugin/plugintest') diff --git a/plugin/plugintest/hooks.go b/plugin/plugintest/hooks.go index 790a5a993..94a675cd7 100644 --- a/plugin/plugintest/hooks.go +++ b/plugin/plugintest/hooks.go @@ -7,19 +7,20 @@ package plugintest import http "net/http" import mock "github.com/stretchr/testify/mock" import model "github.com/mattermost/mattermost-server/model" +import plugin "github.com/mattermost/mattermost-server/plugin" // Hooks is an autogenerated mock type for the Hooks type type Hooks struct { mock.Mock } -// ExecuteCommand provides a mock function with given fields: args -func (_m *Hooks) ExecuteCommand(args *model.CommandArgs) (*model.CommandResponse, *model.AppError) { - ret := _m.Called(args) +// ExecuteCommand provides a mock function with given fields: c, args +func (_m *Hooks) ExecuteCommand(c *plugin.Context, args *model.CommandArgs) (*model.CommandResponse, *model.AppError) { + ret := _m.Called(c, args) var r0 *model.CommandResponse - if rf, ok := ret.Get(0).(func(*model.CommandArgs) *model.CommandResponse); ok { - r0 = rf(args) + if rf, ok := ret.Get(0).(func(*plugin.Context, *model.CommandArgs) *model.CommandResponse); ok { + r0 = rf(c, args) } else { if ret.Get(0) != nil { r0 = ret.Get(0).(*model.CommandResponse) @@ -27,8 +28,8 @@ func (_m *Hooks) ExecuteCommand(args *model.CommandArgs) (*model.CommandResponse } var r1 *model.AppError - if rf, ok := ret.Get(1).(func(*model.CommandArgs) *model.AppError); ok { - r1 = rf(args) + if rf, ok := ret.Get(1).(func(*plugin.Context, *model.CommandArgs) *model.AppError); ok { + r1 = rf(c, args) } else { if ret.Get(1) != nil { r1 = ret.Get(1).(*model.AppError) @@ -61,23 +62,23 @@ func (_m *Hooks) Implemented() ([]string, error) { return r0, r1 } -// MessageHasBeenPosted provides a mock function with given fields: post -func (_m *Hooks) MessageHasBeenPosted(post *model.Post) { - _m.Called(post) +// MessageHasBeenPosted provides a mock function with given fields: c, post +func (_m *Hooks) MessageHasBeenPosted(c *plugin.Context, post *model.Post) { + _m.Called(c, post) } -// MessageHasBeenUpdated provides a mock function with given fields: newPost, oldPost -func (_m *Hooks) MessageHasBeenUpdated(newPost *model.Post, oldPost *model.Post) { - _m.Called(newPost, oldPost) +// MessageHasBeenUpdated provides a mock function with given fields: c, newPost, oldPost +func (_m *Hooks) MessageHasBeenUpdated(c *plugin.Context, newPost *model.Post, oldPost *model.Post) { + _m.Called(c, newPost, oldPost) } -// MessageWillBePosted provides a mock function with given fields: post -func (_m *Hooks) MessageWillBePosted(post *model.Post) (*model.Post, string) { - ret := _m.Called(post) +// MessageWillBePosted provides a mock function with given fields: c, post +func (_m *Hooks) MessageWillBePosted(c *plugin.Context, post *model.Post) (*model.Post, string) { + ret := _m.Called(c, post) var r0 *model.Post - if rf, ok := ret.Get(0).(func(*model.Post) *model.Post); ok { - r0 = rf(post) + if rf, ok := ret.Get(0).(func(*plugin.Context, *model.Post) *model.Post); ok { + r0 = rf(c, post) } else { if ret.Get(0) != nil { r0 = ret.Get(0).(*model.Post) @@ -85,8 +86,8 @@ func (_m *Hooks) MessageWillBePosted(post *model.Post) (*model.Post, string) { } var r1 string - if rf, ok := ret.Get(1).(func(*model.Post) string); ok { - r1 = rf(post) + if rf, ok := ret.Get(1).(func(*plugin.Context, *model.Post) string); ok { + r1 = rf(c, post) } else { r1 = ret.Get(1).(string) } @@ -94,13 +95,13 @@ func (_m *Hooks) MessageWillBePosted(post *model.Post) (*model.Post, string) { return r0, r1 } -// MessageWillBeUpdated provides a mock function with given fields: newPost, oldPost -func (_m *Hooks) MessageWillBeUpdated(newPost *model.Post, oldPost *model.Post) (*model.Post, string) { - ret := _m.Called(newPost, oldPost) +// MessageWillBeUpdated provides a mock function with given fields: c, newPost, oldPost +func (_m *Hooks) MessageWillBeUpdated(c *plugin.Context, newPost *model.Post, oldPost *model.Post) (*model.Post, string) { + ret := _m.Called(c, newPost, oldPost) var r0 *model.Post - if rf, ok := ret.Get(0).(func(*model.Post, *model.Post) *model.Post); ok { - r0 = rf(newPost, oldPost) + if rf, ok := ret.Get(0).(func(*plugin.Context, *model.Post, *model.Post) *model.Post); ok { + r0 = rf(c, newPost, oldPost) } else { if ret.Get(0) != nil { r0 = ret.Get(0).(*model.Post) @@ -108,8 +109,8 @@ func (_m *Hooks) MessageWillBeUpdated(newPost *model.Post, oldPost *model.Post) } var r1 string - if rf, ok := ret.Get(1).(func(*model.Post, *model.Post) string); ok { - r1 = rf(newPost, oldPost) + if rf, ok := ret.Get(1).(func(*plugin.Context, *model.Post, *model.Post) string); ok { + r1 = rf(c, newPost, oldPost) } else { r1 = ret.Get(1).(string) } @@ -159,7 +160,7 @@ func (_m *Hooks) OnDeactivate() error { return r0 } -// ServeHTTP provides a mock function with given fields: w, r -func (_m *Hooks) ServeHTTP(w http.ResponseWriter, r *http.Request) { - _m.Called(w, r) +// ServeHTTP provides a mock function with given fields: c, w, r +func (_m *Hooks) ServeHTTP(c *plugin.Context, w http.ResponseWriter, r *http.Request) { + _m.Called(c, w, r) } -- cgit v1.2.3-1-g7c22 From 359f12db33d45b6ffade0872ddf3652a5c52f4a8 Mon Sep 17 00:00:00 2001 From: Daniel Schalla Date: Sat, 7 Jul 2018 00:32:55 +0200 Subject: First batch of new plugin api methods (#9022) update api mocks Generated new hooks ChannelHasJoinedChannel Implementation User Left Team/Channel Hook; User Joined Team Hook Implementation Update RPC Client and Mocks gofmt go tests fix Add Config API Methods codegne Add Channel Has Been Created Hook Fix ChannelHasBeenCreated hook fix missing context param fix duplicate hooks; remove redudandcy --- plugin/plugintest/api.go | 239 +++++++++++++++++++++++++++++++++++++++++++++ plugin/plugintest/hooks.go | 25 +++++ 2 files changed, 264 insertions(+) (limited to 'plugin/plugintest') diff --git a/plugin/plugintest/api.go b/plugin/plugintest/api.go index b9d8d7521..3ce1d0145 100644 --- a/plugin/plugintest/api.go +++ b/plugin/plugintest/api.go @@ -112,6 +112,56 @@ func (_m *API) CreateTeam(team *model.Team) (*model.Team, *model.AppError) { return r0, r1 } +// CreateTeamMember provides a mock function with given fields: teamId, userId +func (_m *API) CreateTeamMember(teamId string, userId string) (*model.TeamMember, *model.AppError) { + ret := _m.Called(teamId, userId) + + var r0 *model.TeamMember + if rf, ok := ret.Get(0).(func(string, string) *model.TeamMember); ok { + r0 = rf(teamId, userId) + } else { + if ret.Get(0) != nil { + r0 = ret.Get(0).(*model.TeamMember) + } + } + + var r1 *model.AppError + if rf, ok := ret.Get(1).(func(string, string) *model.AppError); ok { + r1 = rf(teamId, userId) + } else { + if ret.Get(1) != nil { + r1 = ret.Get(1).(*model.AppError) + } + } + + return r0, r1 +} + +// CreateTeamMembers provides a mock function with given fields: teamId, userIds, requestorId +func (_m *API) CreateTeamMembers(teamId string, userIds []string, requestorId string) ([]*model.TeamMember, *model.AppError) { + ret := _m.Called(teamId, userIds, requestorId) + + var r0 []*model.TeamMember + if rf, ok := ret.Get(0).(func(string, []string, string) []*model.TeamMember); ok { + r0 = rf(teamId, userIds, requestorId) + } else { + if ret.Get(0) != nil { + r0 = ret.Get(0).([]*model.TeamMember) + } + } + + var r1 *model.AppError + if rf, ok := ret.Get(1).(func(string, []string, string) *model.AppError); ok { + r1 = rf(teamId, userIds, requestorId) + } else { + if ret.Get(1) != nil { + r1 = ret.Get(1).(*model.AppError) + } + } + + return r0, r1 +} + // CreateUser provides a mock function with given fields: user func (_m *API) CreateUser(user *model.User) (*model.User, *model.AppError) { ret := _m.Called(user) @@ -201,6 +251,22 @@ func (_m *API) DeleteTeam(teamId string) *model.AppError { return r0 } +// DeleteTeamMember provides a mock function with given fields: teamId, userId, requestorId +func (_m *API) DeleteTeamMember(teamId string, userId string, requestorId string) *model.AppError { + ret := _m.Called(teamId, userId, requestorId) + + var r0 *model.AppError + if rf, ok := ret.Get(0).(func(string, string, string) *model.AppError); ok { + r0 = rf(teamId, userId, requestorId) + } else { + if ret.Get(0) != nil { + r0 = ret.Get(0).(*model.AppError) + } + } + + return r0 +} + // DeleteUser provides a mock function with given fields: userId func (_m *API) DeleteUser(userId string) *model.AppError { ret := _m.Called(userId) @@ -292,6 +358,22 @@ func (_m *API) GetChannelMember(channelId string, userId string) (*model.Channel return r0, r1 } +// GetConfig provides a mock function with given fields: +func (_m *API) GetConfig() *model.Config { + ret := _m.Called() + + var r0 *model.Config + if rf, ok := ret.Get(0).(func() *model.Config); ok { + r0 = rf() + } else { + if ret.Get(0) != nil { + r0 = ret.Get(0).(*model.Config) + } + } + + return r0 +} + // GetDirectChannel provides a mock function with given fields: userId1, userId2 func (_m *API) GetDirectChannel(userId1 string, userId2 string) (*model.Channel, *model.AppError) { ret := _m.Called(userId1, userId2) @@ -367,6 +449,31 @@ func (_m *API) GetPost(postId string) (*model.Post, *model.AppError) { return r0, r1 } +// GetPublicChannelsForTeam provides a mock function with given fields: teamId, offset, limit +func (_m *API) GetPublicChannelsForTeam(teamId string, offset int, limit int) (*model.ChannelList, *model.AppError) { + ret := _m.Called(teamId, offset, limit) + + var r0 *model.ChannelList + if rf, ok := ret.Get(0).(func(string, int, int) *model.ChannelList); ok { + r0 = rf(teamId, offset, limit) + } else { + if ret.Get(0) != nil { + r0 = ret.Get(0).(*model.ChannelList) + } + } + + var r1 *model.AppError + if rf, ok := ret.Get(1).(func(string, int, int) *model.AppError); ok { + r1 = rf(teamId, offset, limit) + } else { + if ret.Get(1) != nil { + r1 = ret.Get(1).(*model.AppError) + } + } + + return r0, r1 +} + // GetTeam provides a mock function with given fields: teamId func (_m *API) GetTeam(teamId string) (*model.Team, *model.AppError) { ret := _m.Called(teamId) @@ -417,6 +524,81 @@ func (_m *API) GetTeamByName(name string) (*model.Team, *model.AppError) { return r0, r1 } +// GetTeamMember provides a mock function with given fields: teamId, userId +func (_m *API) GetTeamMember(teamId string, userId string) (*model.TeamMember, *model.AppError) { + ret := _m.Called(teamId, userId) + + var r0 *model.TeamMember + if rf, ok := ret.Get(0).(func(string, string) *model.TeamMember); ok { + r0 = rf(teamId, userId) + } else { + if ret.Get(0) != nil { + r0 = ret.Get(0).(*model.TeamMember) + } + } + + var r1 *model.AppError + if rf, ok := ret.Get(1).(func(string, string) *model.AppError); ok { + r1 = rf(teamId, userId) + } else { + if ret.Get(1) != nil { + r1 = ret.Get(1).(*model.AppError) + } + } + + return r0, r1 +} + +// GetTeamMembers provides a mock function with given fields: teamId, offset, limit +func (_m *API) GetTeamMembers(teamId string, offset int, limit int) ([]*model.TeamMember, *model.AppError) { + ret := _m.Called(teamId, offset, limit) + + var r0 []*model.TeamMember + if rf, ok := ret.Get(0).(func(string, int, int) []*model.TeamMember); ok { + r0 = rf(teamId, offset, limit) + } else { + if ret.Get(0) != nil { + r0 = ret.Get(0).([]*model.TeamMember) + } + } + + var r1 *model.AppError + if rf, ok := ret.Get(1).(func(string, int, int) *model.AppError); ok { + r1 = rf(teamId, offset, limit) + } else { + if ret.Get(1) != nil { + r1 = ret.Get(1).(*model.AppError) + } + } + + return r0, r1 +} + +// GetTeams provides a mock function with given fields: +func (_m *API) GetTeams() ([]*model.Team, *model.AppError) { + ret := _m.Called() + + var r0 []*model.Team + if rf, ok := ret.Get(0).(func() []*model.Team); ok { + r0 = rf() + } else { + if ret.Get(0) != nil { + r0 = ret.Get(0).([]*model.Team) + } + } + + var r1 *model.AppError + if rf, ok := ret.Get(1).(func() *model.AppError); ok { + r1 = rf() + } else { + if ret.Get(1) != nil { + r1 = ret.Get(1).(*model.AppError) + } + } + + return r0, r1 +} + // GetUser provides a mock function with given fields: userId func (_m *API) GetUser(userId string) (*model.User, *model.AppError) { ret := _m.Called(userId) @@ -614,6 +796,38 @@ func (_m *API) RegisterCommand(command *model.Command) error { return r0 } +// SaveConfig provides a mock function with given fields: config +func (_m *API) SaveConfig(config *model.Config) *model.AppError { + ret := _m.Called(config) + + var r0 *model.AppError + if rf, ok := ret.Get(0).(func(*model.Config) *model.AppError); ok { + r0 = rf(config) + } else { + if ret.Get(0) != nil { + r0 = ret.Get(0).(*model.AppError) + } + } + + return r0 +} + +// SendEphemeralPost provides a mock function with given fields: userId, post +func (_m *API) SendEphemeralPost(userId string, post *model.Post) *model.Post { + ret := _m.Called(userId, post) + + var r0 *model.Post + if rf, ok := ret.Get(0).(func(string, *model.Post) *model.Post); ok { + r0 = rf(userId, post) + } else { + if ret.Get(0) != nil { + r0 = ret.Get(0).(*model.Post) + } + } + + return r0 +} + // UnregisterCommand provides a mock function with given fields: teamId, trigger func (_m *API) UnregisterCommand(teamId string, trigger string) error { ret := _m.Called(teamId, trigger) @@ -753,6 +967,31 @@ func (_m *API) UpdateTeam(team *model.Team) (*model.Team, *model.AppError) { return r0, r1 } +// UpdateTeamMemberRoles provides a mock function with given fields: teamId, userId, newRoles +func (_m *API) UpdateTeamMemberRoles(teamId string, userId string, newRoles string) (*model.TeamMember, *model.AppError) { + ret := _m.Called(teamId, userId, newRoles) + + var r0 *model.TeamMember + if rf, ok := ret.Get(0).(func(string, string, string) *model.TeamMember); ok { + r0 = rf(teamId, userId, newRoles) + } else { + if ret.Get(0) != nil { + r0 = ret.Get(0).(*model.TeamMember) + } + } + + var r1 *model.AppError + if rf, ok := ret.Get(1).(func(string, string, string) *model.AppError); ok { + r1 = rf(teamId, userId, newRoles) + } else { + if ret.Get(1) != nil { + r1 = ret.Get(1).(*model.AppError) + } + } + + return r0, r1 +} + // UpdateUser provides a mock function with given fields: user func (_m *API) UpdateUser(user *model.User) (*model.User, *model.AppError) { ret := _m.Called(user) diff --git a/plugin/plugintest/hooks.go b/plugin/plugintest/hooks.go index 94a675cd7..d88792f58 100644 --- a/plugin/plugintest/hooks.go +++ b/plugin/plugintest/hooks.go @@ -14,6 +14,11 @@ type Hooks struct { mock.Mock } +// ChannelHasBeenCreated provides a mock function with given fields: c, channel +func (_m *Hooks) ChannelHasBeenCreated(c *plugin.Context, channel *model.Channel) { + _m.Called(c, channel) +} + // ExecuteCommand provides a mock function with given fields: c, args func (_m *Hooks) ExecuteCommand(c *plugin.Context, args *model.CommandArgs) (*model.CommandResponse, *model.AppError) { ret := _m.Called(c, args) @@ -164,3 +169,23 @@ func (_m *Hooks) OnDeactivate() error { func (_m *Hooks) ServeHTTP(c *plugin.Context, w http.ResponseWriter, r *http.Request) { _m.Called(c, w, r) } + +// UserHasJoinedChannel provides a mock function with given fields: c, channelMember, actor +func (_m *Hooks) UserHasJoinedChannel(c *plugin.Context, channelMember *model.ChannelMember, actor *model.User) { + _m.Called(c, channelMember, actor) +} + +// UserHasJoinedTeam provides a mock function with given fields: c, teamMember, actor +func (_m *Hooks) UserHasJoinedTeam(c *plugin.Context, teamMember *model.TeamMember, actor *model.User) { + _m.Called(c, teamMember, actor) +} + +// UserHasLeftChannel provides a mock function with given fields: c, channelMember, actor +func (_m *Hooks) UserHasLeftChannel(c *plugin.Context, channelMember *model.ChannelMember, actor *model.User) { + _m.Called(c, channelMember, actor) +} + +// UserHasLeftTeam provides a mock function with given fields: c, teamMember, actor +func (_m *Hooks) UserHasLeftTeam(c *plugin.Context, teamMember *model.TeamMember, actor *model.User) { + _m.Called(c, teamMember, actor) +} -- cgit v1.2.3-1-g7c22