mocks.go 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. // Copyright 2020 The Gogs Authors. All rights reserved.
  2. // Use of this source code is governed by a MIT-style
  3. // license that can be found in the LICENSE file.
  4. package gitutil
  5. import (
  6. "testing"
  7. "github.com/gogs/git-module"
  8. )
  9. var _ ModuleStore = (*MockModuleStore)(nil)
  10. type MockModuleStore struct {
  11. repoAddRemote func(repoPath, name, url string, opts ...git.AddRemoteOptions) error
  12. repoDiffNameOnly func(repoPath, base, head string, opts ...git.DiffNameOnlyOptions) ([]string, error)
  13. repoLog func(repoPath, rev string, opts ...git.LogOptions) ([]*git.Commit, error)
  14. repoMergeBase func(repoPath, base, head string, opts ...git.MergeBaseOptions) (string, error)
  15. repoRemoveRemote func(repoPath, name string, opts ...git.RemoveRemoteOptions) error
  16. repoTags func(repoPath string, opts ...git.TagsOptions) ([]string, error)
  17. pullRequestMeta func(headPath, basePath, headBranch, baseBranch string) (*PullRequestMeta, error)
  18. listTagsAfter func(repoPath, after string, limit int) (*TagsPage, error)
  19. }
  20. func (m *MockModuleStore) RepoAddRemote(repoPath, name, url string, opts ...git.AddRemoteOptions) error {
  21. return m.repoAddRemote(repoPath, name, url, opts...)
  22. }
  23. func (m *MockModuleStore) RepoDiffNameOnly(repoPath, base, head string, opts ...git.DiffNameOnlyOptions) ([]string, error) {
  24. return m.repoDiffNameOnly(repoPath, base, head, opts...)
  25. }
  26. func (m *MockModuleStore) RepoLog(repoPath, rev string, opts ...git.LogOptions) ([]*git.Commit, error) {
  27. return m.repoLog(repoPath, rev, opts...)
  28. }
  29. func (m *MockModuleStore) RepoMergeBase(repoPath, base, head string, opts ...git.MergeBaseOptions) (string, error) {
  30. return m.repoMergeBase(repoPath, base, head, opts...)
  31. }
  32. func (m *MockModuleStore) RepoRemoveRemote(repoPath, name string, opts ...git.RemoveRemoteOptions) error {
  33. return m.repoRemoveRemote(repoPath, name, opts...)
  34. }
  35. func (m *MockModuleStore) RepoTags(repoPath string, opts ...git.TagsOptions) ([]string, error) {
  36. return m.repoTags(repoPath, opts...)
  37. }
  38. func (m *MockModuleStore) PullRequestMeta(headPath, basePath, headBranch, baseBranch string) (*PullRequestMeta, error) {
  39. return m.pullRequestMeta(headPath, basePath, headBranch, baseBranch)
  40. }
  41. func (m *MockModuleStore) ListTagsAfter(repoPath, after string, limit int) (*TagsPage, error) {
  42. return m.listTagsAfter(repoPath, after, limit)
  43. }
  44. func SetMockModuleStore(t *testing.T, mock ModuleStore) {
  45. before := Module
  46. Module = mock
  47. t.Cleanup(func() {
  48. Module = before
  49. })
  50. }