github.com/qichengzx/mattermost-server@v4.5.1-0.20180604164826-2c75247c97d0+incompatible/store/storetest/store.go (about)

     1  // Copyright (c) 2017-present Mattermost, Inc. All Rights Reserved.
     2  // See License.txt for license information.
     3  
     4  package storetest
     5  
     6  import (
     7  	"github.com/stretchr/testify/mock"
     8  
     9  	"github.com/mattermost/mattermost-server/store"
    10  	"github.com/mattermost/mattermost-server/store/storetest/mocks"
    11  )
    12  
    13  // NewStoreChannel returns a channel that will receive the given result.
    14  func NewStoreChannel(result store.StoreResult) store.StoreChannel {
    15  	ch := make(store.StoreChannel, 1)
    16  	ch <- result
    17  	return ch
    18  }
    19  
    20  // Store can be used to provide mock stores for testing.
    21  type Store struct {
    22  	TeamStore                 mocks.TeamStore
    23  	ChannelStore              mocks.ChannelStore
    24  	PostStore                 mocks.PostStore
    25  	UserStore                 mocks.UserStore
    26  	AuditStore                mocks.AuditStore
    27  	ClusterDiscoveryStore     mocks.ClusterDiscoveryStore
    28  	ComplianceStore           mocks.ComplianceStore
    29  	SessionStore              mocks.SessionStore
    30  	OAuthStore                mocks.OAuthStore
    31  	SystemStore               mocks.SystemStore
    32  	WebhookStore              mocks.WebhookStore
    33  	CommandStore              mocks.CommandStore
    34  	CommandWebhookStore       mocks.CommandWebhookStore
    35  	PreferenceStore           mocks.PreferenceStore
    36  	LicenseStore              mocks.LicenseStore
    37  	TokenStore                mocks.TokenStore
    38  	EmojiStore                mocks.EmojiStore
    39  	StatusStore               mocks.StatusStore
    40  	FileInfoStore             mocks.FileInfoStore
    41  	ReactionStore             mocks.ReactionStore
    42  	JobStore                  mocks.JobStore
    43  	UserAccessTokenStore      mocks.UserAccessTokenStore
    44  	PluginStore               mocks.PluginStore
    45  	ChannelMemberHistoryStore mocks.ChannelMemberHistoryStore
    46  	RoleStore                 mocks.RoleStore
    47  	SchemeStore               mocks.SchemeStore
    48  }
    49  
    50  func (s *Store) Team() store.TeamStore                         { return &s.TeamStore }
    51  func (s *Store) Channel() store.ChannelStore                   { return &s.ChannelStore }
    52  func (s *Store) Post() store.PostStore                         { return &s.PostStore }
    53  func (s *Store) User() store.UserStore                         { return &s.UserStore }
    54  func (s *Store) Audit() store.AuditStore                       { return &s.AuditStore }
    55  func (s *Store) ClusterDiscovery() store.ClusterDiscoveryStore { return &s.ClusterDiscoveryStore }
    56  func (s *Store) Compliance() store.ComplianceStore             { return &s.ComplianceStore }
    57  func (s *Store) Session() store.SessionStore                   { return &s.SessionStore }
    58  func (s *Store) OAuth() store.OAuthStore                       { return &s.OAuthStore }
    59  func (s *Store) System() store.SystemStore                     { return &s.SystemStore }
    60  func (s *Store) Webhook() store.WebhookStore                   { return &s.WebhookStore }
    61  func (s *Store) Command() store.CommandStore                   { return &s.CommandStore }
    62  func (s *Store) CommandWebhook() store.CommandWebhookStore     { return &s.CommandWebhookStore }
    63  func (s *Store) Preference() store.PreferenceStore             { return &s.PreferenceStore }
    64  func (s *Store) License() store.LicenseStore                   { return &s.LicenseStore }
    65  func (s *Store) Token() store.TokenStore                       { return &s.TokenStore }
    66  func (s *Store) Emoji() store.EmojiStore                       { return &s.EmojiStore }
    67  func (s *Store) Status() store.StatusStore                     { return &s.StatusStore }
    68  func (s *Store) FileInfo() store.FileInfoStore                 { return &s.FileInfoStore }
    69  func (s *Store) Reaction() store.ReactionStore                 { return &s.ReactionStore }
    70  func (s *Store) Job() store.JobStore                           { return &s.JobStore }
    71  func (s *Store) UserAccessToken() store.UserAccessTokenStore   { return &s.UserAccessTokenStore }
    72  func (s *Store) Plugin() store.PluginStore                     { return &s.PluginStore }
    73  func (s *Store) Role() store.RoleStore                         { return &s.RoleStore }
    74  func (s *Store) Scheme() store.SchemeStore                     { return &s.SchemeStore }
    75  func (s *Store) ChannelMemberHistory() store.ChannelMemberHistoryStore {
    76  	return &s.ChannelMemberHistoryStore
    77  }
    78  func (s *Store) MarkSystemRanUnitTests()       { /* do nothing */ }
    79  func (s *Store) Close()                        { /* do nothing */ }
    80  func (s *Store) DropAllTables()                { /* do nothing */ }
    81  func (s *Store) TotalMasterDbConnections() int { return 1 }
    82  func (s *Store) TotalReadDbConnections() int   { return 1 }
    83  func (s *Store) TotalSearchDbConnections() int { return 1 }
    84  
    85  func (s *Store) AssertExpectations(t mock.TestingT) bool {
    86  	return mock.AssertExpectationsForObjects(t,
    87  		&s.TeamStore,
    88  		&s.ChannelStore,
    89  		&s.PostStore,
    90  		&s.UserStore,
    91  		&s.AuditStore,
    92  		&s.ClusterDiscoveryStore,
    93  		&s.ComplianceStore,
    94  		&s.SessionStore,
    95  		&s.OAuthStore,
    96  		&s.SystemStore,
    97  		&s.WebhookStore,
    98  		&s.CommandStore,
    99  		&s.CommandWebhookStore,
   100  		&s.PreferenceStore,
   101  		&s.LicenseStore,
   102  		&s.TokenStore,
   103  		&s.EmojiStore,
   104  		&s.StatusStore,
   105  		&s.FileInfoStore,
   106  		&s.ReactionStore,
   107  		&s.JobStore,
   108  		&s.UserAccessTokenStore,
   109  		&s.ChannelMemberHistoryStore,
   110  		&s.PluginStore,
   111  		&s.RoleStore,
   112  		&s.SchemeStore,
   113  	)
   114  }