Files
team/server/channels/store/storetest/mocks/RemoteClusterStore.go
Doug LauderandGitHub a760aefcd0 MM-68339: Add XML struct tags and multi-remote registration for shared channels plugin API (#36126)
* Add XML struct tags and multi-remote registration for shared channels plugin API

  Phase 1: Add xml struct tags to model types used in SyncMsg (Post, User,
  Reaction, Status, PostAcknowledgement, FileInfo, SyncResponse,
  MembershipChangeMsg). Add custom MarshalXML/UnmarshalXML for SyncMsg
  (Users map, MentionTransforms map), StringMap, and StringInterface.
  Exclude Post.Metadata, PrevStatus, and server-internal FileInfo fields
  from XML. JSON serialization is unaffected.

  Phase 2: Lift the one-remote-per-plugin constraint so plugins can
  register multiple remotes with different SiteURLs. Add SiteURL field to
  RegisterPluginOpts (defaults to "plugin_<PluginID>" for backward
  compatibility). Add GetAllByPluginID and GetBySiteURL store methods.
  Rewrite registration to dedup by SiteURL instead of PluginID. Add
  UnregisterPluginRemoteForSharedChannels for single-remote removal with
  plugin ownership validation. Validate SiteURL is non-empty in
  RemoteCluster.IsValid. Simplify IsPlugin() to check PluginID only.
2026-04-28 08:53:06 -04:00

334 lines
8.3 KiB
Go

// Code generated by mockery v2.53.4. DO NOT EDIT.
// Regenerate this file using `make store-mocks`.
package mocks
import (
model "github.com/mattermost/mattermost/server/public/model"
mock "github.com/stretchr/testify/mock"
)
// RemoteClusterStore is an autogenerated mock type for the RemoteClusterStore type
type RemoteClusterStore struct {
mock.Mock
}
// Delete provides a mock function with given fields: remoteClusterID
func (_m *RemoteClusterStore) Delete(remoteClusterID string) (bool, error) {
ret := _m.Called(remoteClusterID)
if len(ret) == 0 {
panic("no return value specified for Delete")
}
var r0 bool
var r1 error
if rf, ok := ret.Get(0).(func(string) (bool, error)); ok {
return rf(remoteClusterID)
}
if rf, ok := ret.Get(0).(func(string) bool); ok {
r0 = rf(remoteClusterID)
} else {
r0 = ret.Get(0).(bool)
}
if rf, ok := ret.Get(1).(func(string) error); ok {
r1 = rf(remoteClusterID)
} else {
r1 = ret.Error(1)
}
return r0, r1
}
// Get provides a mock function with given fields: remoteClusterID, includeDeleted
func (_m *RemoteClusterStore) Get(remoteClusterID string, includeDeleted bool) (*model.RemoteCluster, error) {
ret := _m.Called(remoteClusterID, includeDeleted)
if len(ret) == 0 {
panic("no return value specified for Get")
}
var r0 *model.RemoteCluster
var r1 error
if rf, ok := ret.Get(0).(func(string, bool) (*model.RemoteCluster, error)); ok {
return rf(remoteClusterID, includeDeleted)
}
if rf, ok := ret.Get(0).(func(string, bool) *model.RemoteCluster); ok {
r0 = rf(remoteClusterID, includeDeleted)
} else {
if ret.Get(0) != nil {
r0 = ret.Get(0).(*model.RemoteCluster)
}
}
if rf, ok := ret.Get(1).(func(string, bool) error); ok {
r1 = rf(remoteClusterID, includeDeleted)
} else {
r1 = ret.Error(1)
}
return r0, r1
}
// GetAll provides a mock function with given fields: offset, limit, filter
func (_m *RemoteClusterStore) GetAll(offset int, limit int, filter model.RemoteClusterQueryFilter) ([]*model.RemoteCluster, error) {
ret := _m.Called(offset, limit, filter)
if len(ret) == 0 {
panic("no return value specified for GetAll")
}
var r0 []*model.RemoteCluster
var r1 error
if rf, ok := ret.Get(0).(func(int, int, model.RemoteClusterQueryFilter) ([]*model.RemoteCluster, error)); ok {
return rf(offset, limit, filter)
}
if rf, ok := ret.Get(0).(func(int, int, model.RemoteClusterQueryFilter) []*model.RemoteCluster); ok {
r0 = rf(offset, limit, filter)
} else {
if ret.Get(0) != nil {
r0 = ret.Get(0).([]*model.RemoteCluster)
}
}
if rf, ok := ret.Get(1).(func(int, int, model.RemoteClusterQueryFilter) error); ok {
r1 = rf(offset, limit, filter)
} else {
r1 = ret.Error(1)
}
return r0, r1
}
// GetAllByPluginID provides a mock function with given fields: pluginID
func (_m *RemoteClusterStore) GetAllByPluginID(pluginID string) ([]*model.RemoteCluster, error) {
ret := _m.Called(pluginID)
if len(ret) == 0 {
panic("no return value specified for GetAllByPluginID")
}
var r0 []*model.RemoteCluster
var r1 error
if rf, ok := ret.Get(0).(func(string) ([]*model.RemoteCluster, error)); ok {
return rf(pluginID)
}
if rf, ok := ret.Get(0).(func(string) []*model.RemoteCluster); ok {
r0 = rf(pluginID)
} else {
if ret.Get(0) != nil {
r0 = ret.Get(0).([]*model.RemoteCluster)
}
}
if rf, ok := ret.Get(1).(func(string) error); ok {
r1 = rf(pluginID)
} else {
r1 = ret.Error(1)
}
return r0, r1
}
// GetByPluginID provides a mock function with given fields: pluginID
func (_m *RemoteClusterStore) GetByPluginID(pluginID string) (*model.RemoteCluster, error) {
ret := _m.Called(pluginID)
if len(ret) == 0 {
panic("no return value specified for GetByPluginID")
}
var r0 *model.RemoteCluster
var r1 error
if rf, ok := ret.Get(0).(func(string) (*model.RemoteCluster, error)); ok {
return rf(pluginID)
}
if rf, ok := ret.Get(0).(func(string) *model.RemoteCluster); ok {
r0 = rf(pluginID)
} else {
if ret.Get(0) != nil {
r0 = ret.Get(0).(*model.RemoteCluster)
}
}
if rf, ok := ret.Get(1).(func(string) error); ok {
r1 = rf(pluginID)
} else {
r1 = ret.Error(1)
}
return r0, r1
}
// GetBySiteURL provides a mock function with given fields: siteURL
func (_m *RemoteClusterStore) GetBySiteURL(siteURL string) (*model.RemoteCluster, error) {
ret := _m.Called(siteURL)
if len(ret) == 0 {
panic("no return value specified for GetBySiteURL")
}
var r0 *model.RemoteCluster
var r1 error
if rf, ok := ret.Get(0).(func(string) (*model.RemoteCluster, error)); ok {
return rf(siteURL)
}
if rf, ok := ret.Get(0).(func(string) *model.RemoteCluster); ok {
r0 = rf(siteURL)
} else {
if ret.Get(0) != nil {
r0 = ret.Get(0).(*model.RemoteCluster)
}
}
if rf, ok := ret.Get(1).(func(string) error); ok {
r1 = rf(siteURL)
} else {
r1 = ret.Error(1)
}
return r0, r1
}
// Save provides a mock function with given fields: rc
func (_m *RemoteClusterStore) Save(rc *model.RemoteCluster) (*model.RemoteCluster, error) {
ret := _m.Called(rc)
if len(ret) == 0 {
panic("no return value specified for Save")
}
var r0 *model.RemoteCluster
var r1 error
if rf, ok := ret.Get(0).(func(*model.RemoteCluster) (*model.RemoteCluster, error)); ok {
return rf(rc)
}
if rf, ok := ret.Get(0).(func(*model.RemoteCluster) *model.RemoteCluster); ok {
r0 = rf(rc)
} else {
if ret.Get(0) != nil {
r0 = ret.Get(0).(*model.RemoteCluster)
}
}
if rf, ok := ret.Get(1).(func(*model.RemoteCluster) error); ok {
r1 = rf(rc)
} else {
r1 = ret.Error(1)
}
return r0, r1
}
// SetLastPingAt provides a mock function with given fields: remoteClusterID
func (_m *RemoteClusterStore) SetLastPingAt(remoteClusterID string) error {
ret := _m.Called(remoteClusterID)
if len(ret) == 0 {
panic("no return value specified for SetLastPingAt")
}
var r0 error
if rf, ok := ret.Get(0).(func(string) error); ok {
r0 = rf(remoteClusterID)
} else {
r0 = ret.Error(0)
}
return r0
}
// Update provides a mock function with given fields: rc
func (_m *RemoteClusterStore) Update(rc *model.RemoteCluster) (*model.RemoteCluster, error) {
ret := _m.Called(rc)
if len(ret) == 0 {
panic("no return value specified for Update")
}
var r0 *model.RemoteCluster
var r1 error
if rf, ok := ret.Get(0).(func(*model.RemoteCluster) (*model.RemoteCluster, error)); ok {
return rf(rc)
}
if rf, ok := ret.Get(0).(func(*model.RemoteCluster) *model.RemoteCluster); ok {
r0 = rf(rc)
} else {
if ret.Get(0) != nil {
r0 = ret.Get(0).(*model.RemoteCluster)
}
}
if rf, ok := ret.Get(1).(func(*model.RemoteCluster) error); ok {
r1 = rf(rc)
} else {
r1 = ret.Error(1)
}
return r0, r1
}
// UpdateLastGlobalUserSyncAt provides a mock function with given fields: remoteID, syncAt
func (_m *RemoteClusterStore) UpdateLastGlobalUserSyncAt(remoteID string, syncAt int64) error {
ret := _m.Called(remoteID, syncAt)
if len(ret) == 0 {
panic("no return value specified for UpdateLastGlobalUserSyncAt")
}
var r0 error
if rf, ok := ret.Get(0).(func(string, int64) error); ok {
r0 = rf(remoteID, syncAt)
} else {
r0 = ret.Error(0)
}
return r0
}
// UpdateTopics provides a mock function with given fields: remoteClusterID, topics
func (_m *RemoteClusterStore) UpdateTopics(remoteClusterID string, topics string) (*model.RemoteCluster, error) {
ret := _m.Called(remoteClusterID, topics)
if len(ret) == 0 {
panic("no return value specified for UpdateTopics")
}
var r0 *model.RemoteCluster
var r1 error
if rf, ok := ret.Get(0).(func(string, string) (*model.RemoteCluster, error)); ok {
return rf(remoteClusterID, topics)
}
if rf, ok := ret.Get(0).(func(string, string) *model.RemoteCluster); ok {
r0 = rf(remoteClusterID, topics)
} else {
if ret.Get(0) != nil {
r0 = ret.Get(0).(*model.RemoteCluster)
}
}
if rf, ok := ret.Get(1).(func(string, string) error); ok {
r1 = rf(remoteClusterID, topics)
} else {
r1 = ret.Error(1)
}
return r0, r1
}
// NewRemoteClusterStore creates a new instance of RemoteClusterStore. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations.
// The first argument is typically a *testing.T value.
func NewRemoteClusterStore(t interface {
mock.TestingT
Cleanup(func())
}) *RemoteClusterStore {
mock := &RemoteClusterStore{}
mock.Mock.Test(t)
t.Cleanup(func() { mock.AssertExpectations(t) })
return mock
}