summaryrefslogtreecommitdiffstats
path: root/store/storetest/store.go
blob: 7201df6ecdd17a53381b7890da08aeb9023076c1 (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
// 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
}

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) MarkSystemRanUnitTests()                       { /* do nothing */ }
func (s *Store) Close()                                        { /* 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,
	)
}