github.com/mattermosttest/mattermost-server/v5@v5.0.0-20200917143240-9dfa12e121f9/store/storetest/store.go (about)

     1  // Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
     2  // See LICENSE.txt for license information.
     3  
     4  package storetest
     5  
     6  import (
     7  	"context"
     8  	"time"
     9  
    10  	"github.com/mattermost/mattermost-server/v5/model"
    11  	"github.com/mattermost/mattermost-server/v5/store"
    12  	"github.com/mattermost/mattermost-server/v5/store/storetest/mocks"
    13  	"github.com/stretchr/testify/mock"
    14  )
    15  
    16  // Store can be used to provide mock stores for testing.
    17  type Store struct {
    18  	TeamStore                 mocks.TeamStore
    19  	ChannelStore              mocks.ChannelStore
    20  	PostStore                 mocks.PostStore
    21  	UserStore                 mocks.UserStore
    22  	BotStore                  mocks.BotStore
    23  	AuditStore                mocks.AuditStore
    24  	ClusterDiscoveryStore     mocks.ClusterDiscoveryStore
    25  	ComplianceStore           mocks.ComplianceStore
    26  	SessionStore              mocks.SessionStore
    27  	OAuthStore                mocks.OAuthStore
    28  	SystemStore               mocks.SystemStore
    29  	WebhookStore              mocks.WebhookStore
    30  	CommandStore              mocks.CommandStore
    31  	CommandWebhookStore       mocks.CommandWebhookStore
    32  	PreferenceStore           mocks.PreferenceStore
    33  	LicenseStore              mocks.LicenseStore
    34  	TokenStore                mocks.TokenStore
    35  	EmojiStore                mocks.EmojiStore
    36  	StatusStore               mocks.StatusStore
    37  	FileInfoStore             mocks.FileInfoStore
    38  	ReactionStore             mocks.ReactionStore
    39  	JobStore                  mocks.JobStore
    40  	UserAccessTokenStore      mocks.UserAccessTokenStore
    41  	PluginStore               mocks.PluginStore
    42  	ChannelMemberHistoryStore mocks.ChannelMemberHistoryStore
    43  	RoleStore                 mocks.RoleStore
    44  	SchemeStore               mocks.SchemeStore
    45  	TermsOfServiceStore       mocks.TermsOfServiceStore
    46  	GroupStore                mocks.GroupStore
    47  	UserTermsOfServiceStore   mocks.UserTermsOfServiceStore
    48  	LinkMetadataStore         mocks.LinkMetadataStore
    49  	context                   context.Context
    50  }
    51  
    52  func (s *Store) SetContext(context context.Context)                { s.context = context }
    53  func (s *Store) Context() context.Context                          { return s.context }
    54  func (s *Store) Team() store.TeamStore                             { return &s.TeamStore }
    55  func (s *Store) Channel() store.ChannelStore                       { return &s.ChannelStore }
    56  func (s *Store) Post() store.PostStore                             { return &s.PostStore }
    57  func (s *Store) User() store.UserStore                             { return &s.UserStore }
    58  func (s *Store) Bot() store.BotStore                               { return &s.BotStore }
    59  func (s *Store) Audit() store.AuditStore                           { return &s.AuditStore }
    60  func (s *Store) ClusterDiscovery() store.ClusterDiscoveryStore     { return &s.ClusterDiscoveryStore }
    61  func (s *Store) Compliance() store.ComplianceStore                 { return &s.ComplianceStore }
    62  func (s *Store) Session() store.SessionStore                       { return &s.SessionStore }
    63  func (s *Store) OAuth() store.OAuthStore                           { return &s.OAuthStore }
    64  func (s *Store) System() store.SystemStore                         { return &s.SystemStore }
    65  func (s *Store) Webhook() store.WebhookStore                       { return &s.WebhookStore }
    66  func (s *Store) Command() store.CommandStore                       { return &s.CommandStore }
    67  func (s *Store) CommandWebhook() store.CommandWebhookStore         { return &s.CommandWebhookStore }
    68  func (s *Store) Preference() store.PreferenceStore                 { return &s.PreferenceStore }
    69  func (s *Store) License() store.LicenseStore                       { return &s.LicenseStore }
    70  func (s *Store) Token() store.TokenStore                           { return &s.TokenStore }
    71  func (s *Store) Emoji() store.EmojiStore                           { return &s.EmojiStore }
    72  func (s *Store) Status() store.StatusStore                         { return &s.StatusStore }
    73  func (s *Store) FileInfo() store.FileInfoStore                     { return &s.FileInfoStore }
    74  func (s *Store) Reaction() store.ReactionStore                     { return &s.ReactionStore }
    75  func (s *Store) Job() store.JobStore                               { return &s.JobStore }
    76  func (s *Store) UserAccessToken() store.UserAccessTokenStore       { return &s.UserAccessTokenStore }
    77  func (s *Store) Plugin() store.PluginStore                         { return &s.PluginStore }
    78  func (s *Store) Role() store.RoleStore                             { return &s.RoleStore }
    79  func (s *Store) Scheme() store.SchemeStore                         { return &s.SchemeStore }
    80  func (s *Store) TermsOfService() store.TermsOfServiceStore         { return &s.TermsOfServiceStore }
    81  func (s *Store) UserTermsOfService() store.UserTermsOfServiceStore { return &s.UserTermsOfServiceStore }
    82  func (s *Store) ChannelMemberHistory() store.ChannelMemberHistoryStore {
    83  	return &s.ChannelMemberHistoryStore
    84  }
    85  func (s *Store) Group() store.GroupStore               { return &s.GroupStore }
    86  func (s *Store) LinkMetadata() store.LinkMetadataStore { return &s.LinkMetadataStore }
    87  func (s *Store) MarkSystemRanUnitTests()               { /* do nothing */ }
    88  func (s *Store) Close()                                { /* do nothing */ }
    89  func (s *Store) LockToMaster()                         { /* do nothing */ }
    90  func (s *Store) UnlockFromMaster()                     { /* do nothing */ }
    91  func (s *Store) DropAllTables()                        { /* do nothing */ }
    92  func (s *Store) GetDbVersion() (string, error)         { return "", nil }
    93  func (s *Store) RecycleDBConnections(time.Duration)    {}
    94  func (s *Store) TotalMasterDbConnections() int         { return 1 }
    95  func (s *Store) TotalReadDbConnections() int           { return 1 }
    96  func (s *Store) TotalSearchDbConnections() int         { return 1 }
    97  func (s *Store) GetCurrentSchemaVersion() string       { return "" }
    98  func (s *Store) CheckIntegrity() <-chan model.IntegrityCheckResult {
    99  	return make(chan model.IntegrityCheckResult)
   100  }
   101  
   102  func (s *Store) AssertExpectations(t mock.TestingT) bool {
   103  	return mock.AssertExpectationsForObjects(t,
   104  		&s.TeamStore,
   105  		&s.ChannelStore,
   106  		&s.PostStore,
   107  		&s.UserStore,
   108  		&s.BotStore,
   109  		&s.AuditStore,
   110  		&s.ClusterDiscoveryStore,
   111  		&s.ComplianceStore,
   112  		&s.SessionStore,
   113  		&s.OAuthStore,
   114  		&s.SystemStore,
   115  		&s.WebhookStore,
   116  		&s.CommandStore,
   117  		&s.CommandWebhookStore,
   118  		&s.PreferenceStore,
   119  		&s.LicenseStore,
   120  		&s.TokenStore,
   121  		&s.EmojiStore,
   122  		&s.StatusStore,
   123  		&s.FileInfoStore,
   124  		&s.ReactionStore,
   125  		&s.JobStore,
   126  		&s.UserAccessTokenStore,
   127  		&s.ChannelMemberHistoryStore,
   128  		&s.PluginStore,
   129  		&s.RoleStore,
   130  		&s.SchemeStore,
   131  	)
   132  }