summaryrefslogtreecommitdiffstats
path: root/store/storetest/store.go
blob: d6ef4fcd00a780b9b79b84c252b7b27d6e947c05 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
// Copyright (c) 2017-present Mattermost, Inc. All Rights Reserved.
// See License.txt for license information.

package storetest

import (
	"github.com/stretchr/testify/mock"

	"github.com/mattermost/mattermost-server/store"
	"github.com/mattermost/mattermost-server/store/storetest/mocks"
)

// NewStoreChannel returns a channel that will receive the given result.
func NewStoreChannel(result store.StoreResult) store.StoreChannel {
	ch := make(store.StoreChannel, 1)
	ch <- result
	return ch
}

// Store can be used to provide mock stores for testing.
type Store struct {
	TeamStore                 mocks.TeamStore
	ChannelStore              mocks.ChannelStore
	PostStore                 mocks.PostStore
	UserStore                 mocks.UserStore
	AuditStore                mocks.AuditStore
	ClusterDiscoveryStore     mocks.ClusterDiscoveryStore
	ComplianceStore           mocks.ComplianceStore
	SessionStore              mocks.SessionStore
	OAuthStore                mocks.OAuthStore
	SystemStore               mocks.SystemStore
	WebhookStore              mocks.WebhookStore
	CommandStore              mocks.CommandStore
	CommandWebhookStore       mocks.CommandWebhookStore
	PreferenceStore           mocks.PreferenceStore
	LicenseStore              mocks.LicenseStore
	TokenStore                mocks.TokenStore
	EmojiStore                mocks.EmojiStore
	StatusStore               mocks.StatusStore
	FileInfoStore             mocks.FileInfoStore
	ReactionStore             mocks.ReactionStore
	JobStore                  mocks.JobStore
	UserAccessTokenStore      mocks.UserAccessTokenStore
	PluginStore               mocks.PluginStore
	ChannelMemberHistoryStore mocks.ChannelMemberHistoryStore
	RoleStore                 mocks.RoleStore
	SchemeStore               mocks.SchemeStore
	TermsOfServiceStore       mocks.TermsOfServiceStore
}

func (s *Store) Team() store.TeamStore                         { return &s.TeamStore }
func (s *Store) Channel() store.ChannelStore                   { return &s.ChannelStore }
func (s *Store) Post() store.PostStore                         { return &s.PostStore }
func (s *Store) User() store.UserStore                         { return &s.UserStore }
func (s *Store) Audit() store.AuditStore                       { return &s.AuditStore }
func (s *Store) ClusterDiscovery() store.ClusterDiscoveryStore { return &s.ClusterDiscoveryStore }
func (s *Store) Compliance() store.ComplianceStore             { return &s.ComplianceStore }
func (s *Store) Session() store.SessionStore                   { return &s.SessionStore }
func (s *Store) OAuth() store.OAuthStore                       { return &s.OAuthStore }
func (s *Store) System() store.SystemStore                     { return &s.SystemStore }
func (s *Store) Webhook() store.WebhookStore                   { return &s.WebhookStore }
func (s *Store) Command() store.CommandStore                   { return &s.CommandStore }
func (s *Store) CommandWebhook() store.CommandWebhookStore     { return &s.CommandWebhookStore }
func (s *Store) Preference() store.PreferenceStore             { return &s.PreferenceStore }
func (s *Store) License() store.LicenseStore                   { return &s.LicenseStore }
func (s *Store) Token() store.TokenStore                       { return &s.TokenStore }
func (s *Store) Emoji() store.EmojiStore                       { return &s.EmojiStore }
func (s *Store) Status() store.StatusStore                     { return &s.StatusStore }
func (s *Store) FileInfo() store.FileInfoStore                 { return &s.FileInfoStore }
func (s *Store) Reaction() store.ReactionStore                 { return &s.ReactionStore }
func (s *Store) Job() store.JobStore                           { return &s.JobStore }
func (s *Store) UserAccessToken() store.UserAccessTokenStore   { return &s.UserAccessTokenStore }
func (s *Store) Plugin() store.PluginStore                     { return &s.PluginStore }
func (s *Store) Role() store.RoleStore                         { return &s.RoleStore }
func (s *Store) Scheme() store.SchemeStore                     { return &s.SchemeStore }
func (s *Store) TermsOfService() store.TermsOfServiceStore     { return &s.TermsOfServiceStore }
func (s *Store) ChannelMemberHistory() store.ChannelMemberHistoryStore {
	return &s.ChannelMemberHistoryStore
}
func (s *Store) MarkSystemRanUnitTests()       { /* do nothing */ }
func (s *Store) Close()                        { /* do nothing */ }
func (s *Store) LockToMaster()                 { /* do nothing */ }
func (s *Store) UnlockFromMaster()             { /* do nothing */ }
func (s *Store) DropAllTables()                { /* do nothing */ }
func (s *Store) TotalMasterDbConnections() int { return 1 }
func (s *Store) TotalReadDbConnections() int   { return 1 }
func (s *Store) TotalSearchDbConnections() int { return 1 }

func (s *Store) AssertExpectations(t mock.TestingT) bool {
	return mock.AssertExpectationsForObjects(t,
		&s.TeamStore,
		&s.ChannelStore,
		&s.PostStore,
		&s.UserStore,
		&s.AuditStore,
		&s.ClusterDiscoveryStore,
		&s.ComplianceStore,
		&s.SessionStore,
		&s.OAuthStore,
		&s.SystemStore,
		&s.WebhookStore,
		&s.CommandStore,
		&s.CommandWebhookStore,
		&s.PreferenceStore,
		&s.LicenseStore,
		&s.TokenStore,
		&s.EmojiStore,
		&s.StatusStore,
		&s.FileInfoStore,
		&s.ReactionStore,
		&s.JobStore,
		&s.UserAccessTokenStore,
		&s.ChannelMemberHistoryStore,
		&s.PluginStore,
		&s.RoleStore,
		&s.SchemeStore,
	)
}