Replace remaining GetMaster() queries (#19545)
There are still some remaining which access the raw DB struct. There will be a separate PR to clean those up. ```release-note NONE ```
Этот коммит содержится в:
коммит произвёл
GitHub
родитель
256427f7f9
Коммит
678c7d3b8c
@@ -74,7 +74,7 @@ func testBotStoreGet(t *testing.T, ss store.Store, s SqlStore) {
|
||||
defer func() { require.NoError(t, ss.User().PermanentDelete(b2.UserId)) }()
|
||||
|
||||
// Artificially set b2.LastIconUpdate to NULL to verify handling of same.
|
||||
_, sqlErr := s.GetMaster().Exec("UPDATE Bots SET LastIconUpdate = NULL WHERE UserId = '" + b2.UserId + "'")
|
||||
_, sqlErr := s.GetMasterX().Exec("UPDATE Bots SET LastIconUpdate = NULL WHERE UserId = '" + b2.UserId + "'")
|
||||
require.NoError(t, sqlErr)
|
||||
|
||||
t.Run("get non-existent bot", func(t *testing.T) {
|
||||
@@ -162,7 +162,7 @@ func testBotStoreGetAll(t *testing.T, ss store.Store, s SqlStore) {
|
||||
defer func() { require.NoError(t, ss.User().PermanentDelete(b2.UserId)) }()
|
||||
|
||||
// Artificially set b2.LastIconUpdate to NULL to verify handling of same.
|
||||
_, sqlErr := s.GetMaster().Exec("UPDATE Bots SET LastIconUpdate = NULL WHERE UserId = '" + b2.UserId + "'")
|
||||
_, sqlErr := s.GetMasterX().Exec("UPDATE Bots SET LastIconUpdate = NULL WHERE UserId = '" + b2.UserId + "'")
|
||||
require.NoError(t, sqlErr)
|
||||
|
||||
t.Run("get original bots", func(t *testing.T) {
|
||||
|
||||
@@ -5,6 +5,7 @@ package storetest
|
||||
|
||||
import (
|
||||
"context"
|
||||
"database/sql"
|
||||
"encoding/json"
|
||||
"errors"
|
||||
"sort"
|
||||
@@ -13,7 +14,7 @@ import (
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
"github.com/mattermost/gorp"
|
||||
"github.com/jmoiron/sqlx"
|
||||
"github.com/stretchr/testify/assert"
|
||||
"github.com/stretchr/testify/require"
|
||||
|
||||
@@ -24,10 +25,21 @@ import (
|
||||
)
|
||||
|
||||
type SqlStore interface {
|
||||
GetMaster() *gorp.DbMap
|
||||
GetMasterX() SqlXExecutor
|
||||
DriverName() string
|
||||
}
|
||||
|
||||
type SqlXExecutor interface {
|
||||
Get(dest interface{}, query string, args ...interface{}) error
|
||||
NamedExec(query string, arg interface{}) (sql.Result, error)
|
||||
Exec(query string, args ...interface{}) (sql.Result, error)
|
||||
ExecRaw(query string, args ...interface{}) (sql.Result, error)
|
||||
NamedQuery(query string, arg interface{}) (*sqlx.Rows, error)
|
||||
QueryRowX(query string, args ...interface{}) *sqlx.Row
|
||||
QueryX(query string, args ...interface{}) (*sqlx.Rows, error)
|
||||
Select(dest interface{}, query string, args ...interface{}) error
|
||||
}
|
||||
|
||||
func cleanupChannels(t *testing.T, ss store.Store) {
|
||||
list, err := ss.Channel().GetAllChannels(0, 100000, store.ChannelSearchOpts{IncludeDeleted: true})
|
||||
require.NoError(t, err, "error cleaning all channels", err)
|
||||
@@ -267,7 +279,7 @@ func testChannelStoreSaveDirectChannel(t *testing.T, ss store.Store, s SqlStore)
|
||||
require.Len(t, members, 1, "should have saved just 1 member")
|
||||
|
||||
// Manually truncate Channels table until testlib can handle cleanups
|
||||
s.GetMaster().Exec("TRUNCATE Channels")
|
||||
s.GetMasterX().Exec("TRUNCATE Channels")
|
||||
}
|
||||
|
||||
func testChannelStoreCreateDirectChannel(t *testing.T, ss store.Store) {
|
||||
@@ -461,7 +473,7 @@ func testChannelStoreGet(t *testing.T, ss store.Store, s SqlStore) {
|
||||
require.True(t, errors.As(err, &nfErr))
|
||||
|
||||
// Manually truncate Channels table until testlib can handle cleanups
|
||||
s.GetMaster().Exec("TRUNCATE Channels")
|
||||
s.GetMasterX().Exec("TRUNCATE Channels")
|
||||
}
|
||||
|
||||
func testChannelStoreGetChannelsByIds(t *testing.T, ss store.Store) {
|
||||
@@ -3818,7 +3830,7 @@ func testChannelStoreGetAllChannels(t *testing.T, ss store.Store, s SqlStore) {
|
||||
assert.Equal(t, *list[0].PolicyID, policy.ID)
|
||||
|
||||
// Manually truncate Channels table until testlib can handle cleanups
|
||||
s.GetMaster().Exec("TRUNCATE Channels")
|
||||
s.GetMasterX().Exec("TRUNCATE Channels")
|
||||
}
|
||||
|
||||
func testChannelStoreGetMoreChannels(t *testing.T, ss store.Store) {
|
||||
@@ -5544,8 +5556,8 @@ func testChannelStoreSearchArchivedInTeam(t *testing.T, ss store.Store, s SqlSto
|
||||
|
||||
t.Run("error", func(t *testing.T) {
|
||||
// trigger a SQL error
|
||||
s.GetMaster().Exec("ALTER TABLE Channels RENAME TO Channels_renamed")
|
||||
defer s.GetMaster().Exec("ALTER TABLE Channels_renamed RENAME TO Channels")
|
||||
s.GetMasterX().Exec("ALTER TABLE Channels RENAME TO Channels_renamed")
|
||||
defer s.GetMasterX().Exec("ALTER TABLE Channels_renamed RENAME TO Channels")
|
||||
|
||||
list, err := ss.Channel().SearchArchivedInTeam(teamId, "term", userId)
|
||||
require.Error(t, err)
|
||||
@@ -7145,45 +7157,45 @@ func testMaterializedPublicChannels(t *testing.T, ss store.Store, s SqlStore) {
|
||||
Type: model.ChannelTypeOpen,
|
||||
}
|
||||
|
||||
_, execerr := s.GetMaster().ExecNoTimeout(`
|
||||
_, execerr := s.GetMasterX().NamedExec(`
|
||||
INSERT INTO
|
||||
PublicChannels(Id, DeleteAt, TeamId, DisplayName, Name, Header, Purpose)
|
||||
VALUES
|
||||
(:Id, :DeleteAt, :TeamId, :DisplayName, :Name, :Header, :Purpose);
|
||||
(:id, :deleteat, :teamid, :displayname, :name, :header, :purpose);
|
||||
`, map[string]interface{}{
|
||||
"Id": o3.Id,
|
||||
"DeleteAt": o3.DeleteAt,
|
||||
"TeamId": o3.TeamId,
|
||||
"DisplayName": o3.DisplayName,
|
||||
"Name": o3.Name,
|
||||
"Header": o3.Header,
|
||||
"Purpose": o3.Purpose,
|
||||
"id": o3.Id,
|
||||
"deleteat": o3.DeleteAt,
|
||||
"teamid": o3.TeamId,
|
||||
"displayname": o3.DisplayName,
|
||||
"name": o3.Name,
|
||||
"header": o3.Header,
|
||||
"purpose": o3.Purpose,
|
||||
})
|
||||
require.NoError(t, execerr)
|
||||
|
||||
o3.DisplayName = "Open Channel 3 - Modified"
|
||||
|
||||
_, execerr = s.GetMaster().ExecNoTimeout(`
|
||||
_, execerr = s.GetMasterX().NamedExec(`
|
||||
INSERT INTO
|
||||
Channels(Id, CreateAt, UpdateAt, DeleteAt, TeamId, Type, DisplayName, Name, Header, Purpose, LastPostAt, LastRootPostAt, TotalMsgCount, ExtraUpdateAt, CreatorId, TotalMsgCountRoot)
|
||||
VALUES
|
||||
(:Id, :CreateAt, :UpdateAt, :DeleteAt, :TeamId, :Type, :DisplayName, :Name, :Header, :Purpose, :LastPostAt, :LastRootPostAt, :TotalMsgCount, :ExtraUpdateAt, :CreatorId, 0);
|
||||
(:id, :createat, :updateat, :deleteat, :teamid, :type, :displayname, :name, :header, :purpose, :lastpostat, :lastrootpostat, :totalmsgcount, :extraupdateat, :creatorid, 0);
|
||||
`, map[string]interface{}{
|
||||
"Id": o3.Id,
|
||||
"CreateAt": o3.CreateAt,
|
||||
"UpdateAt": o3.UpdateAt,
|
||||
"DeleteAt": o3.DeleteAt,
|
||||
"TeamId": o3.TeamId,
|
||||
"Type": o3.Type,
|
||||
"DisplayName": o3.DisplayName,
|
||||
"Name": o3.Name,
|
||||
"Header": o3.Header,
|
||||
"Purpose": o3.Purpose,
|
||||
"LastPostAt": o3.LastPostAt,
|
||||
"LastRootPostAt": o3.LastRootPostAt,
|
||||
"TotalMsgCount": o3.TotalMsgCount,
|
||||
"ExtraUpdateAt": o3.ExtraUpdateAt,
|
||||
"CreatorId": o3.CreatorId,
|
||||
"id": o3.Id,
|
||||
"createat": o3.CreateAt,
|
||||
"updateat": o3.UpdateAt,
|
||||
"deleteat": o3.DeleteAt,
|
||||
"teamid": o3.TeamId,
|
||||
"type": o3.Type,
|
||||
"displayname": o3.DisplayName,
|
||||
"name": o3.Name,
|
||||
"header": o3.Header,
|
||||
"purpose": o3.Purpose,
|
||||
"lastpostat": o3.LastPostAt,
|
||||
"lastrootpostat": o3.LastRootPostAt,
|
||||
"totalmsgcount": o3.TotalMsgCount,
|
||||
"extraupdateat": o3.ExtraUpdateAt,
|
||||
"creatorid": o3.CreatorId,
|
||||
})
|
||||
require.NoError(t, execerr)
|
||||
|
||||
@@ -7204,14 +7216,12 @@ func testMaterializedPublicChannels(t *testing.T, ss store.Store, s SqlStore) {
|
||||
_, nErr = ss.Channel().Save(&o4, -1)
|
||||
require.NoError(t, nErr)
|
||||
|
||||
_, execerr = s.GetMaster().ExecNoTimeout(`
|
||||
_, execerr = s.GetMasterX().Exec(`
|
||||
DELETE FROM
|
||||
PublicChannels
|
||||
WHERE
|
||||
Id = :Id
|
||||
`, map[string]interface{}{
|
||||
"Id": o4.Id,
|
||||
})
|
||||
Id = ?
|
||||
`, o4.Id)
|
||||
require.NoError(t, execerr)
|
||||
|
||||
o4.DisplayName += " - Modified"
|
||||
@@ -7393,7 +7403,7 @@ func testChannelStoreRemoveAllDeactivatedMembers(t *testing.T, ss store.Store, s
|
||||
assert.Equal(t, u3.Id, d2[0].UserId)
|
||||
|
||||
// Manually truncate Channels table until testlib can handle cleanups
|
||||
s.GetMaster().Exec("TRUNCATE Channels")
|
||||
s.GetMasterX().Exec("TRUNCATE Channels")
|
||||
}
|
||||
|
||||
func testChannelStoreExportAllDirectChannels(t *testing.T, ss store.Store, s SqlStore) {
|
||||
@@ -7450,7 +7460,7 @@ func testChannelStoreExportAllDirectChannels(t *testing.T, ss store.Store, s Sql
|
||||
assert.ElementsMatch(t, []string{o1.DisplayName, o2.DisplayName}, []string{d1[0].DisplayName, d1[1].DisplayName})
|
||||
|
||||
// Manually truncate Channels table until testlib can handle cleanups
|
||||
s.GetMaster().Exec("TRUNCATE Channels")
|
||||
s.GetMasterX().Exec("TRUNCATE Channels")
|
||||
}
|
||||
|
||||
func testChannelStoreExportAllDirectChannelsExcludePrivateAndPublic(t *testing.T, ss store.Store, s SqlStore) {
|
||||
@@ -7512,7 +7522,7 @@ func testChannelStoreExportAllDirectChannelsExcludePrivateAndPublic(t *testing.T
|
||||
assert.Equal(t, o1.DisplayName, d1[0].DisplayName)
|
||||
|
||||
// Manually truncate Channels table until testlib can handle cleanups
|
||||
s.GetMaster().Exec("TRUNCATE Channels")
|
||||
s.GetMasterX().Exec("TRUNCATE Channels")
|
||||
}
|
||||
|
||||
func testChannelStoreExportAllDirectChannelsDeletedChannel(t *testing.T, ss store.Store, s SqlStore) {
|
||||
@@ -7562,7 +7572,7 @@ func testChannelStoreExportAllDirectChannelsDeletedChannel(t *testing.T, ss stor
|
||||
assert.Equal(t, 0, len(d1))
|
||||
|
||||
// Manually truncate Channels table until testlib can handle cleanups
|
||||
s.GetMaster().Exec("TRUNCATE Channels")
|
||||
s.GetMasterX().Exec("TRUNCATE Channels")
|
||||
}
|
||||
|
||||
func testChannelStoreGetChannelsBatchForIndexing(t *testing.T, ss store.Store) {
|
||||
|
||||
@@ -619,13 +619,14 @@ func testGetSidebarCategory(t *testing.T, ss store.Store, s SqlStore) {
|
||||
require.NoError(t, nErr)
|
||||
|
||||
// Confirm that they're not in the Channels category in the DB
|
||||
count, countErr := s.GetMaster().SelectInt(`
|
||||
var count int64
|
||||
countErr := s.GetMasterX().Get(&count, `
|
||||
SELECT
|
||||
COUNT(*)
|
||||
FROM
|
||||
SidebarChannels
|
||||
WHERE
|
||||
CategoryId = :CategoryId`, map[string]interface{}{"CategoryId": channelsCategory.Id})
|
||||
CategoryId = ?`, channelsCategory.Id)
|
||||
require.NoError(t, countErr)
|
||||
assert.Equal(t, int64(0), count)
|
||||
|
||||
@@ -1749,11 +1750,12 @@ func testClearSidebarOnTeamLeave(t *testing.T, ss store.Store, s SqlStore) {
|
||||
require.NoError(t, err)
|
||||
|
||||
// Confirm that we start with the right number of categories and SidebarChannels entries
|
||||
count, err := s.GetMaster().SelectInt("SELECT COUNT(*) FROM SidebarCategories WHERE UserId = :UserId", map[string]interface{}{"UserId": userId})
|
||||
var count int64
|
||||
err = s.GetMasterX().Get(&count, "SELECT COUNT(*) FROM SidebarCategories WHERE UserId = ?", userId)
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, int64(4), count)
|
||||
|
||||
count, err = s.GetMaster().SelectInt("SELECT COUNT(*) FROM SidebarChannels WHERE UserId = :UserId", map[string]interface{}{"UserId": userId})
|
||||
err = s.GetMasterX().Get(&count, "SELECT COUNT(*) FROM SidebarChannels WHERE UserId = ?", userId)
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, int64(2), count)
|
||||
|
||||
@@ -1762,11 +1764,11 @@ func testClearSidebarOnTeamLeave(t *testing.T, ss store.Store, s SqlStore) {
|
||||
assert.NoError(t, err)
|
||||
|
||||
// Confirm that all the categories and SidebarChannel entries have been deleted
|
||||
count, err = s.GetMaster().SelectInt("SELECT COUNT(*) FROM SidebarCategories WHERE UserId = :UserId", map[string]interface{}{"UserId": userId})
|
||||
err = s.GetMasterX().Get(&count, "SELECT COUNT(*) FROM SidebarCategories WHERE UserId = ?", userId)
|
||||
require.NoError(t, err)
|
||||
assert.Equal(t, int64(0), count)
|
||||
|
||||
count, err = s.GetMaster().SelectInt("SELECT COUNT(*) FROM SidebarChannels WHERE UserId = :UserId", map[string]interface{}{"UserId": userId})
|
||||
err = s.GetMasterX().Get(&count, "SELECT COUNT(*) FROM SidebarChannels WHERE UserId = ?", userId)
|
||||
require.NoError(t, err)
|
||||
assert.Equal(t, int64(0), count)
|
||||
})
|
||||
@@ -1797,11 +1799,12 @@ func testClearSidebarOnTeamLeave(t *testing.T, ss store.Store, s SqlStore) {
|
||||
require.NoError(t, err)
|
||||
|
||||
// Confirm that we start with the right number of categories and SidebarChannels entries
|
||||
count, err := s.GetMaster().SelectInt("SELECT COUNT(*) FROM SidebarCategories WHERE UserId = :UserId", map[string]interface{}{"UserId": userId})
|
||||
var count int64
|
||||
err = s.GetMasterX().Get(&count, "SELECT COUNT(*) FROM SidebarCategories WHERE UserId = ?", userId)
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, int64(4), count)
|
||||
|
||||
count, err = s.GetMaster().SelectInt("SELECT COUNT(*) FROM SidebarChannels WHERE UserId = :UserId", map[string]interface{}{"UserId": userId})
|
||||
err = s.GetMasterX().Get(&count, "SELECT COUNT(*) FROM SidebarChannels WHERE UserId = ?", userId)
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, int64(2), count)
|
||||
|
||||
@@ -1810,11 +1813,11 @@ func testClearSidebarOnTeamLeave(t *testing.T, ss store.Store, s SqlStore) {
|
||||
assert.NoError(t, err)
|
||||
|
||||
// Confirm that nothing has been deleted
|
||||
count, err = s.GetMaster().SelectInt("SELECT COUNT(*) FROM SidebarCategories WHERE UserId = :UserId", map[string]interface{}{"UserId": userId})
|
||||
err = s.GetMasterX().Get(&count, "SELECT COUNT(*) FROM SidebarCategories WHERE UserId = ?", userId)
|
||||
require.NoError(t, err)
|
||||
assert.Equal(t, int64(4), count)
|
||||
|
||||
count, err = s.GetMaster().SelectInt("SELECT COUNT(*) FROM SidebarChannels WHERE UserId = :UserId", map[string]interface{}{"UserId": userId})
|
||||
err = s.GetMasterX().Get(&count, "SELECT COUNT(*) FROM SidebarChannels WHERE UserId = ?", userId)
|
||||
require.NoError(t, err)
|
||||
assert.Equal(t, int64(2), count)
|
||||
})
|
||||
@@ -1870,11 +1873,12 @@ func testClearSidebarOnTeamLeave(t *testing.T, ss store.Store, s SqlStore) {
|
||||
require.NoError(t, err)
|
||||
|
||||
// Confirm that we start with the right number of categories and SidebarChannels entries
|
||||
count, err := s.GetMaster().SelectInt("SELECT COUNT(*) FROM SidebarCategories WHERE UserId = :UserId", map[string]interface{}{"UserId": userId})
|
||||
var count int64
|
||||
err = s.GetMasterX().Get(&count, "SELECT COUNT(*) FROM SidebarCategories WHERE UserId = ?", userId)
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, int64(8), count)
|
||||
|
||||
count, err = s.GetMaster().SelectInt("SELECT COUNT(*) FROM SidebarChannels WHERE UserId = :UserId", map[string]interface{}{"UserId": userId})
|
||||
err = s.GetMasterX().Get(&count, "SELECT COUNT(*) FROM SidebarChannels WHERE UserId = ?", userId)
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, int64(4), count)
|
||||
|
||||
@@ -1883,11 +1887,11 @@ func testClearSidebarOnTeamLeave(t *testing.T, ss store.Store, s SqlStore) {
|
||||
assert.NoError(t, err)
|
||||
|
||||
// Confirm that we have the correct number of categories and SidebarChannels entries left over
|
||||
count, err = s.GetMaster().SelectInt("SELECT COUNT(*) FROM SidebarCategories WHERE UserId = :UserId", map[string]interface{}{"UserId": userId})
|
||||
err = s.GetMasterX().Get(&count, "SELECT COUNT(*) FROM SidebarCategories WHERE UserId = ?", userId)
|
||||
require.NoError(t, err)
|
||||
assert.Equal(t, int64(4), count)
|
||||
|
||||
count, err = s.GetMaster().SelectInt("SELECT COUNT(*) FROM SidebarChannels WHERE UserId = :UserId", map[string]interface{}{"UserId": userId})
|
||||
err = s.GetMasterX().Get(&count, "SELECT COUNT(*) FROM SidebarChannels WHERE UserId = ?", userId)
|
||||
require.NoError(t, err)
|
||||
assert.Equal(t, int64(2), count)
|
||||
|
||||
@@ -1980,13 +1984,14 @@ func testDeleteSidebarCategory(t *testing.T, ss store.Store, s SqlStore) {
|
||||
assert.Len(t, res.Categories, 3)
|
||||
|
||||
// ...and that the corresponding SidebarChannel entries were deleted
|
||||
count, countErr := s.GetMaster().SelectInt(`
|
||||
var count int64
|
||||
countErr := s.GetMasterX().Get(&count, `
|
||||
SELECT
|
||||
COUNT(*)
|
||||
FROM
|
||||
SidebarChannels
|
||||
WHERE
|
||||
CategoryId = :CategoryId`, map[string]interface{}{"CategoryId": newCategory.Id})
|
||||
CategoryId = ?`, newCategory.Id)
|
||||
require.NoError(t, countErr)
|
||||
assert.Equal(t, int64(0), count)
|
||||
})
|
||||
|
||||
@@ -1,26 +0,0 @@
|
||||
// Code generated by mockery v1.0.0. DO NOT EDIT.
|
||||
|
||||
// Regenerate this file using `make store-mocks`.
|
||||
|
||||
package mocks
|
||||
|
||||
import mock "github.com/stretchr/testify/mock"
|
||||
|
||||
// JSONSerializable is an autogenerated mock type for the JSONSerializable type
|
||||
type JSONSerializable struct {
|
||||
mock.Mock
|
||||
}
|
||||
|
||||
// ToJSON provides a mock function with given fields:
|
||||
func (_m *JSONSerializable) ToJSON() string {
|
||||
ret := _m.Called()
|
||||
|
||||
var r0 string
|
||||
if rf, ok := ret.Get(0).(func() string); ok {
|
||||
r0 = rf()
|
||||
} else {
|
||||
r0 = ret.Get(0).(string)
|
||||
}
|
||||
|
||||
return r0
|
||||
}
|
||||
@@ -1,99 +0,0 @@
|
||||
// Code generated by mockery v1.0.0. DO NOT EDIT.
|
||||
|
||||
// Regenerate this file using `make store-mocks`.
|
||||
|
||||
package mocks
|
||||
|
||||
import (
|
||||
mock "github.com/stretchr/testify/mock"
|
||||
)
|
||||
|
||||
// ObjectCache is an autogenerated mock type for the ObjectCache type
|
||||
type ObjectCache struct {
|
||||
mock.Mock
|
||||
}
|
||||
|
||||
// AddWithDefaultExpires provides a mock function with given fields: key, value
|
||||
func (_m *ObjectCache) AddWithDefaultExpires(key interface{}, value interface{}) {
|
||||
_m.Called(key, value)
|
||||
}
|
||||
|
||||
// AddWithExpiresInSecs provides a mock function with given fields: key, value, expireAtSecs
|
||||
func (_m *ObjectCache) AddWithExpiresInSecs(key interface{}, value interface{}, expireAtSecs int64) {
|
||||
_m.Called(key, value, expireAtSecs)
|
||||
}
|
||||
|
||||
// Get provides a mock function with given fields: key
|
||||
func (_m *ObjectCache) Get(key interface{}) (interface{}, bool) {
|
||||
ret := _m.Called(key)
|
||||
|
||||
var r0 interface{}
|
||||
if rf, ok := ret.Get(0).(func(interface{}) interface{}); ok {
|
||||
r0 = rf(key)
|
||||
} else {
|
||||
if ret.Get(0) != nil {
|
||||
r0 = ret.Get(0).(interface{})
|
||||
}
|
||||
}
|
||||
|
||||
var r1 bool
|
||||
if rf, ok := ret.Get(1).(func(interface{}) bool); ok {
|
||||
r1 = rf(key)
|
||||
} else {
|
||||
r1 = ret.Get(1).(bool)
|
||||
}
|
||||
|
||||
return r0, r1
|
||||
}
|
||||
|
||||
// GetInvalidateClusterEvent provides a mock function with given fields:
|
||||
func (_m *ObjectCache) GetInvalidateClusterEvent() string {
|
||||
ret := _m.Called()
|
||||
|
||||
var r0 string
|
||||
if rf, ok := ret.Get(0).(func() string); ok {
|
||||
r0 = rf()
|
||||
} else {
|
||||
r0 = ret.Get(0).(string)
|
||||
}
|
||||
|
||||
return r0
|
||||
}
|
||||
|
||||
// Len provides a mock function with given fields:
|
||||
func (_m *ObjectCache) Len() int {
|
||||
ret := _m.Called()
|
||||
|
||||
var r0 int
|
||||
if rf, ok := ret.Get(0).(func() int); ok {
|
||||
r0 = rf()
|
||||
} else {
|
||||
r0 = ret.Get(0).(int)
|
||||
}
|
||||
|
||||
return r0
|
||||
}
|
||||
|
||||
// Name provides a mock function with given fields:
|
||||
func (_m *ObjectCache) Name() string {
|
||||
ret := _m.Called()
|
||||
|
||||
var r0 string
|
||||
if rf, ok := ret.Get(0).(func() string); ok {
|
||||
r0 = rf()
|
||||
} else {
|
||||
r0 = ret.Get(0).(string)
|
||||
}
|
||||
|
||||
return r0
|
||||
}
|
||||
|
||||
// Purge provides a mock function with given fields:
|
||||
func (_m *ObjectCache) Purge() {
|
||||
_m.Called()
|
||||
}
|
||||
|
||||
// Remove provides a mock function with given fields: key
|
||||
func (_m *ObjectCache) Remove(key interface{}) {
|
||||
_m.Called(key)
|
||||
}
|
||||
@@ -1,45 +0,0 @@
|
||||
// Code generated by mockery v1.0.0. DO NOT EDIT.
|
||||
|
||||
// Regenerate this file using `make store-mocks`.
|
||||
|
||||
package mocks
|
||||
|
||||
import (
|
||||
gorp "github.com/mattermost/gorp"
|
||||
mock "github.com/stretchr/testify/mock"
|
||||
)
|
||||
|
||||
// SqlStore is an autogenerated mock type for the SqlStore type
|
||||
type SqlStore struct {
|
||||
mock.Mock
|
||||
}
|
||||
|
||||
// DriverName provides a mock function with given fields:
|
||||
func (_m *SqlStore) DriverName() string {
|
||||
ret := _m.Called()
|
||||
|
||||
var r0 string
|
||||
if rf, ok := ret.Get(0).(func() string); ok {
|
||||
r0 = rf()
|
||||
} else {
|
||||
r0 = ret.Get(0).(string)
|
||||
}
|
||||
|
||||
return r0
|
||||
}
|
||||
|
||||
// GetMaster provides a mock function with given fields:
|
||||
func (_m *SqlStore) GetMaster() *gorp.DbMap {
|
||||
ret := _m.Called()
|
||||
|
||||
var r0 *gorp.DbMap
|
||||
if rf, ok := ret.Get(0).(func() *gorp.DbMap); ok {
|
||||
r0 = rf()
|
||||
} else {
|
||||
if ret.Get(0) != nil {
|
||||
r0 = ret.Get(0).(*gorp.DbMap)
|
||||
}
|
||||
}
|
||||
|
||||
return r0
|
||||
}
|
||||
@@ -1,29 +0,0 @@
|
||||
// Code generated by mockery v1.0.0. DO NOT EDIT.
|
||||
|
||||
// Regenerate this file using `make store-mocks`.
|
||||
|
||||
package mocks
|
||||
|
||||
import mock "github.com/stretchr/testify/mock"
|
||||
|
||||
// dbSelecter is an autogenerated mock type for the dbSelecter type
|
||||
type dbSelecter struct {
|
||||
mock.Mock
|
||||
}
|
||||
|
||||
// Select provides a mock function with given fields: i, query, args
|
||||
func (_m *dbSelecter) Select(i interface{}, query string, args ...interface{}) error {
|
||||
var _ca []interface{}
|
||||
_ca = append(_ca, i, query)
|
||||
_ca = append(_ca, args...)
|
||||
ret := _m.Called(_ca...)
|
||||
|
||||
var r0 error
|
||||
if rf, ok := ret.Get(0).(func(interface{}, string, ...interface{}) error); ok {
|
||||
r0 = rf(i, query, args...)
|
||||
} else {
|
||||
r0 = ret.Error(0)
|
||||
}
|
||||
|
||||
return r0
|
||||
}
|
||||
@@ -1,195 +0,0 @@
|
||||
// Code generated by mockery v1.0.0. DO NOT EDIT.
|
||||
|
||||
// Regenerate this file using `make store-mocks`.
|
||||
|
||||
package mocks
|
||||
|
||||
import (
|
||||
sql "database/sql"
|
||||
|
||||
mock "github.com/stretchr/testify/mock"
|
||||
|
||||
sqlx "github.com/jmoiron/sqlx"
|
||||
)
|
||||
|
||||
// sqlxExecutor is an autogenerated mock type for the sqlxExecutor type
|
||||
type sqlxExecutor struct {
|
||||
mock.Mock
|
||||
}
|
||||
|
||||
// Exec provides a mock function with given fields: query, args
|
||||
func (_m *sqlxExecutor) Exec(query string, args ...interface{}) (sql.Result, error) {
|
||||
var _ca []interface{}
|
||||
_ca = append(_ca, query)
|
||||
_ca = append(_ca, args...)
|
||||
ret := _m.Called(_ca...)
|
||||
|
||||
var r0 sql.Result
|
||||
if rf, ok := ret.Get(0).(func(string, ...interface{}) sql.Result); ok {
|
||||
r0 = rf(query, args...)
|
||||
} else {
|
||||
if ret.Get(0) != nil {
|
||||
r0 = ret.Get(0).(sql.Result)
|
||||
}
|
||||
}
|
||||
|
||||
var r1 error
|
||||
if rf, ok := ret.Get(1).(func(string, ...interface{}) error); ok {
|
||||
r1 = rf(query, args...)
|
||||
} else {
|
||||
r1 = ret.Error(1)
|
||||
}
|
||||
|
||||
return r0, r1
|
||||
}
|
||||
|
||||
// ExecRaw provides a mock function with given fields: query, args
|
||||
func (_m *sqlxExecutor) ExecRaw(query string, args ...interface{}) (sql.Result, error) {
|
||||
var _ca []interface{}
|
||||
_ca = append(_ca, query)
|
||||
_ca = append(_ca, args...)
|
||||
ret := _m.Called(_ca...)
|
||||
|
||||
var r0 sql.Result
|
||||
if rf, ok := ret.Get(0).(func(string, ...interface{}) sql.Result); ok {
|
||||
r0 = rf(query, args...)
|
||||
} else {
|
||||
if ret.Get(0) != nil {
|
||||
r0 = ret.Get(0).(sql.Result)
|
||||
}
|
||||
}
|
||||
|
||||
var r1 error
|
||||
if rf, ok := ret.Get(1).(func(string, ...interface{}) error); ok {
|
||||
r1 = rf(query, args...)
|
||||
} else {
|
||||
r1 = ret.Error(1)
|
||||
}
|
||||
|
||||
return r0, r1
|
||||
}
|
||||
|
||||
// Get provides a mock function with given fields: dest, query, args
|
||||
func (_m *sqlxExecutor) Get(dest interface{}, query string, args ...interface{}) error {
|
||||
var _ca []interface{}
|
||||
_ca = append(_ca, dest, query)
|
||||
_ca = append(_ca, args...)
|
||||
ret := _m.Called(_ca...)
|
||||
|
||||
var r0 error
|
||||
if rf, ok := ret.Get(0).(func(interface{}, string, ...interface{}) error); ok {
|
||||
r0 = rf(dest, query, args...)
|
||||
} else {
|
||||
r0 = ret.Error(0)
|
||||
}
|
||||
|
||||
return r0
|
||||
}
|
||||
|
||||
// NamedExec provides a mock function with given fields: query, arg
|
||||
func (_m *sqlxExecutor) NamedExec(query string, arg interface{}) (sql.Result, error) {
|
||||
ret := _m.Called(query, arg)
|
||||
|
||||
var r0 sql.Result
|
||||
if rf, ok := ret.Get(0).(func(string, interface{}) sql.Result); ok {
|
||||
r0 = rf(query, arg)
|
||||
} else {
|
||||
if ret.Get(0) != nil {
|
||||
r0 = ret.Get(0).(sql.Result)
|
||||
}
|
||||
}
|
||||
|
||||
var r1 error
|
||||
if rf, ok := ret.Get(1).(func(string, interface{}) error); ok {
|
||||
r1 = rf(query, arg)
|
||||
} else {
|
||||
r1 = ret.Error(1)
|
||||
}
|
||||
|
||||
return r0, r1
|
||||
}
|
||||
|
||||
// NamedQuery provides a mock function with given fields: query, arg
|
||||
func (_m *sqlxExecutor) NamedQuery(query string, arg interface{}) (*sqlx.Rows, error) {
|
||||
ret := _m.Called(query, arg)
|
||||
|
||||
var r0 *sqlx.Rows
|
||||
if rf, ok := ret.Get(0).(func(string, interface{}) *sqlx.Rows); ok {
|
||||
r0 = rf(query, arg)
|
||||
} else {
|
||||
if ret.Get(0) != nil {
|
||||
r0 = ret.Get(0).(*sqlx.Rows)
|
||||
}
|
||||
}
|
||||
|
||||
var r1 error
|
||||
if rf, ok := ret.Get(1).(func(string, interface{}) error); ok {
|
||||
r1 = rf(query, arg)
|
||||
} else {
|
||||
r1 = ret.Error(1)
|
||||
}
|
||||
|
||||
return r0, r1
|
||||
}
|
||||
|
||||
// QueryRowX provides a mock function with given fields: query, args
|
||||
func (_m *sqlxExecutor) QueryRowX(query string, args ...interface{}) *sqlx.Row {
|
||||
var _ca []interface{}
|
||||
_ca = append(_ca, query)
|
||||
_ca = append(_ca, args...)
|
||||
ret := _m.Called(_ca...)
|
||||
|
||||
var r0 *sqlx.Row
|
||||
if rf, ok := ret.Get(0).(func(string, ...interface{}) *sqlx.Row); ok {
|
||||
r0 = rf(query, args...)
|
||||
} else {
|
||||
if ret.Get(0) != nil {
|
||||
r0 = ret.Get(0).(*sqlx.Row)
|
||||
}
|
||||
}
|
||||
|
||||
return r0
|
||||
}
|
||||
|
||||
// QueryX provides a mock function with given fields: query, args
|
||||
func (_m *sqlxExecutor) QueryX(query string, args ...interface{}) (*sqlx.Rows, error) {
|
||||
var _ca []interface{}
|
||||
_ca = append(_ca, query)
|
||||
_ca = append(_ca, args...)
|
||||
ret := _m.Called(_ca...)
|
||||
|
||||
var r0 *sqlx.Rows
|
||||
if rf, ok := ret.Get(0).(func(string, ...interface{}) *sqlx.Rows); ok {
|
||||
r0 = rf(query, args...)
|
||||
} else {
|
||||
if ret.Get(0) != nil {
|
||||
r0 = ret.Get(0).(*sqlx.Rows)
|
||||
}
|
||||
}
|
||||
|
||||
var r1 error
|
||||
if rf, ok := ret.Get(1).(func(string, ...interface{}) error); ok {
|
||||
r1 = rf(query, args...)
|
||||
} else {
|
||||
r1 = ret.Error(1)
|
||||
}
|
||||
|
||||
return r0, r1
|
||||
}
|
||||
|
||||
// Select provides a mock function with given fields: dest, query, args
|
||||
func (_m *sqlxExecutor) Select(dest interface{}, query string, args ...interface{}) error {
|
||||
var _ca []interface{}
|
||||
_ca = append(_ca, dest, query)
|
||||
_ca = append(_ca, args...)
|
||||
ret := _m.Called(_ca...)
|
||||
|
||||
var r0 error
|
||||
if rf, ok := ret.Get(0).(func(interface{}, string, ...interface{}) error); ok {
|
||||
r0 = rf(dest, query, args...)
|
||||
} else {
|
||||
r0 = ret.Error(0)
|
||||
}
|
||||
|
||||
return r0
|
||||
}
|
||||
@@ -2217,7 +2217,7 @@ func testPostStoreGetFlaggedPostsForTeam(t *testing.T, ss store.Store, s SqlStor
|
||||
require.Len(t, r4.Order, 3, "should have 3 posts")
|
||||
|
||||
// Manually truncate Channels table until testlib can handle cleanups
|
||||
s.GetMaster().Exec("TRUNCATE Channels")
|
||||
s.GetMasterX().Exec("TRUNCATE Channels")
|
||||
}
|
||||
|
||||
func testPostStoreGetFlaggedPosts(t *testing.T, ss store.Store) {
|
||||
@@ -3268,7 +3268,7 @@ func testPostStoreGetDirectPostParentsForExportAfter(t *testing.T, ss store.Stor
|
||||
assert.Equal(t, p1.Message, r1[0].Message)
|
||||
|
||||
// Manually truncate Channels table until testlib can handle cleanups
|
||||
s.GetMaster().Exec("TRUNCATE Channels")
|
||||
s.GetMasterX().Exec("TRUNCATE Channels")
|
||||
}
|
||||
|
||||
func testPostStoreGetDirectPostParentsForExportAfterDeleted(t *testing.T, ss store.Store, s SqlStore) {
|
||||
@@ -3334,7 +3334,7 @@ func testPostStoreGetDirectPostParentsForExportAfterDeleted(t *testing.T, ss sto
|
||||
assert.Equal(t, 0, len(r1))
|
||||
|
||||
// Manually truncate Channels table until testlib can handle cleanups
|
||||
s.GetMaster().Exec("TRUNCATE Channels")
|
||||
s.GetMasterX().Exec("TRUNCATE Channels")
|
||||
}
|
||||
|
||||
func testPostStoreGetDirectPostParentsForExportAfterBatched(t *testing.T, ss store.Store, s SqlStore) {
|
||||
@@ -3410,7 +3410,7 @@ func testPostStoreGetDirectPostParentsForExportAfterBatched(t *testing.T, ss sto
|
||||
assert.ElementsMatch(t, postIds[:100], exportedPostIds)
|
||||
|
||||
// Manually truncate Channels table until testlib can handle cleanups
|
||||
s.GetMaster().Exec("TRUNCATE Channels")
|
||||
s.GetMasterX().Exec("TRUNCATE Channels")
|
||||
}
|
||||
|
||||
func testHasAutoResponsePostByUserSince(t *testing.T, ss store.Store) {
|
||||
@@ -3539,8 +3539,7 @@ func testGetPostsSinceForSync(t *testing.T, ss store.Store, s SqlStore) {
|
||||
|
||||
t.Run("UpdateAt collisions", func(t *testing.T) {
|
||||
// this test requires all the UpdateAt timestamps to be the same.
|
||||
args := map[string]interface{}{"UpdateAt": model.GetMillis()}
|
||||
result, err := s.GetMaster().Exec("UPDATE Posts SET UpdateAt = :UpdateAt", args)
|
||||
result, err := s.GetMasterX().Exec("UPDATE Posts SET UpdateAt = ?", model.GetMillis())
|
||||
require.NoError(t, err)
|
||||
rows, err := result.RowsAffected()
|
||||
require.NoError(t, err)
|
||||
|
||||
@@ -384,21 +384,21 @@ func testReactionGetForPostSince(t *testing.T, ss store.Store, s SqlStore) {
|
||||
|
||||
func forceUpdateAt(reaction *model.Reaction, updateAt int64, s SqlStore) error {
|
||||
params := map[string]interface{}{
|
||||
"UserId": reaction.UserId,
|
||||
"PostId": reaction.PostId,
|
||||
"EmojiName": reaction.EmojiName,
|
||||
"UpdateAt": updateAt,
|
||||
"userid": reaction.UserId,
|
||||
"postid": reaction.PostId,
|
||||
"emojiname": reaction.EmojiName,
|
||||
"updateat": updateAt,
|
||||
}
|
||||
|
||||
sqlResult, err := s.GetMaster().Exec(`
|
||||
sqlResult, err := s.GetMasterX().NamedExec(`
|
||||
UPDATE
|
||||
Reactions
|
||||
SET
|
||||
UpdateAt=:UpdateAt
|
||||
UpdateAt=:updateat
|
||||
WHERE
|
||||
UserId = :UserId AND
|
||||
PostId = :PostId AND
|
||||
EmojiName = :EmojiName`, params,
|
||||
UserId = :userid AND
|
||||
PostId = :postid AND
|
||||
EmojiName = :emojiname`, params,
|
||||
)
|
||||
|
||||
if err != nil {
|
||||
@@ -417,10 +417,10 @@ func forceUpdateAt(reaction *model.Reaction, updateAt int64, s SqlStore) error {
|
||||
}
|
||||
|
||||
func forceNULL(reaction *model.Reaction, s SqlStore) error {
|
||||
if _, err := s.GetMaster().Exec(`UPDATE Reactions SET UpdateAt = NULL WHERE UpdateAt = 0`); err != nil {
|
||||
if _, err := s.GetMasterX().Exec(`UPDATE Reactions SET UpdateAt = NULL WHERE UpdateAt = 0`); err != nil {
|
||||
return err
|
||||
}
|
||||
if _, err := s.GetMaster().Exec(`UPDATE Reactions SET DeleteAt = NULL WHERE DeleteAt = 0`); err != nil {
|
||||
if _, err := s.GetMasterX().Exec(`UPDATE Reactions SET DeleteAt = NULL WHERE DeleteAt = 0`); err != nil {
|
||||
return err
|
||||
}
|
||||
return nil
|
||||
|
||||
@@ -153,7 +153,7 @@ func cleanupRetentionPolicyTest(s SqlStore) {
|
||||
// Manually clear tables until testlib can handle cleanups
|
||||
tables := []string{"RetentionPolicies", "RetentionPoliciesChannels", "RetentionPoliciesTeams"}
|
||||
for _, table := range tables {
|
||||
if _, err := s.GetMaster().Exec("DELETE FROM " + table); err != nil {
|
||||
if _, err := s.GetMasterX().Exec("DELETE FROM " + table); err != nil {
|
||||
panic(err)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -578,7 +578,7 @@ func testRoleStoreChannelHigherScopedPermissionsBlankTeamSchemeChannelGuest(t *t
|
||||
require.NoError(t, err)
|
||||
|
||||
// blank-out the guest role to simulate an old team scheme, ensure it's blank
|
||||
result, sqlErr := s.GetMaster().Exec(fmt.Sprintf("UPDATE Schemes SET DefaultChannelGuestRole = '' WHERE Id = '%s'", teamScheme.Id))
|
||||
result, sqlErr := s.GetMasterX().Exec(fmt.Sprintf("UPDATE Schemes SET DefaultChannelGuestRole = '' WHERE Id = '%s'", teamScheme.Id))
|
||||
require.NoError(t, sqlErr)
|
||||
rows, serr := result.RowsAffected()
|
||||
require.NoError(t, serr)
|
||||
|
||||
@@ -23,7 +23,7 @@ const (
|
||||
)
|
||||
|
||||
func cleanupStatusStore(t *testing.T, s SqlStore) {
|
||||
_, execerr := s.GetMaster().ExecNoTimeout(` DELETE FROM Status `)
|
||||
_, execerr := s.GetMasterX().Exec(`DELETE FROM Status`)
|
||||
require.NoError(t, execerr)
|
||||
}
|
||||
|
||||
|
||||
Ссылка в новой задаче
Block a user