summaryrefslogtreecommitdiffstats
path: root/modules/repofiles/action_test.go
diff options
context:
space:
mode:
authorLunny Xiao <xiaolunwen@gmail.com>2019-07-30 09:59:10 +0800
committerGitHub <noreply@github.com>2019-07-30 09:59:10 +0800
commite7d4895732f22b523bd9e65a017c68636fb93002 (patch)
tree38811ceb272e7d680b9bf4385e50d654cea4fe64 /modules/repofiles/action_test.go
parent4d643a59db49ae47870326abb5fed8562e1d71a5 (diff)
downloadgitea-e7d4895732f22b523bd9e65a017c68636fb93002.tar.gz
gitea-e7d4895732f22b523bd9e65a017c68636fb93002.zip
Move commit repo action from models to repofiles package (#7645)
* move commit repo action from models to repofiles package * fix unit tests
Diffstat (limited to 'modules/repofiles/action_test.go')
-rw-r--r--modules/repofiles/action_test.go126
1 files changed, 126 insertions, 0 deletions
diff --git a/modules/repofiles/action_test.go b/modules/repofiles/action_test.go
new file mode 100644
index 0000000000..322c668dad
--- /dev/null
+++ b/modules/repofiles/action_test.go
@@ -0,0 +1,126 @@
+// Copyright 2019 The Gitea Authors. All rights reserved.
+// Use of this source code is governed by a MIT-style
+// license that can be found in the LICENSE file.
+
+package repofiles
+
+import (
+ "testing"
+
+ "code.gitea.io/gitea/models"
+ "code.gitea.io/gitea/modules/git"
+
+ "github.com/stretchr/testify/assert"
+)
+
+func testCorrectRepoAction(t *testing.T, opts CommitRepoActionOptions, actionBean *models.Action) {
+ models.AssertNotExistsBean(t, actionBean)
+ assert.NoError(t, CommitRepoAction(opts))
+ models.AssertExistsAndLoadBean(t, actionBean)
+ models.CheckConsistencyFor(t, &models.Action{})
+}
+
+func TestCommitRepoAction(t *testing.T) {
+ samples := []struct {
+ userID int64
+ repositoryID int64
+ commitRepoActionOptions CommitRepoActionOptions
+ action models.Action
+ }{
+ {
+ userID: 2,
+ repositoryID: 2,
+ commitRepoActionOptions: CommitRepoActionOptions{
+ RefFullName: "refName",
+ OldCommitID: "oldCommitID",
+ NewCommitID: "newCommitID",
+ Commits: &models.PushCommits{
+ Commits: []*models.PushCommit{
+ {
+ Sha1: "abcdef1",
+ CommitterEmail: "user2@example.com",
+ CommitterName: "User Two",
+ AuthorEmail: "user4@example.com",
+ AuthorName: "User Four",
+ Message: "message1",
+ },
+ {
+ Sha1: "abcdef2",
+ CommitterEmail: "user2@example.com",
+ CommitterName: "User Two",
+ AuthorEmail: "user2@example.com",
+ AuthorName: "User Two",
+ Message: "message2",
+ },
+ },
+ Len: 2,
+ },
+ },
+ action: models.Action{
+ OpType: models.ActionCommitRepo,
+ RefName: "refName",
+ },
+ },
+ {
+ userID: 2,
+ repositoryID: 1,
+ commitRepoActionOptions: CommitRepoActionOptions{
+ RefFullName: git.TagPrefix + "v1.1",
+ OldCommitID: git.EmptySHA,
+ NewCommitID: "newCommitID",
+ Commits: &models.PushCommits{},
+ },
+ action: models.Action{
+ OpType: models.ActionPushTag,
+ RefName: "v1.1",
+ },
+ },
+ {
+ userID: 2,
+ repositoryID: 1,
+ commitRepoActionOptions: CommitRepoActionOptions{
+ RefFullName: git.TagPrefix + "v1.1",
+ OldCommitID: "oldCommitID",
+ NewCommitID: git.EmptySHA,
+ Commits: &models.PushCommits{},
+ },
+ action: models.Action{
+ OpType: models.ActionDeleteTag,
+ RefName: "v1.1",
+ },
+ },
+ {
+ userID: 2,
+ repositoryID: 1,
+ commitRepoActionOptions: CommitRepoActionOptions{
+ RefFullName: git.BranchPrefix + "feature/1",
+ OldCommitID: "oldCommitID",
+ NewCommitID: git.EmptySHA,
+ Commits: &models.PushCommits{},
+ },
+ action: models.Action{
+ OpType: models.ActionDeleteBranch,
+ RefName: "feature/1",
+ },
+ },
+ }
+
+ for _, s := range samples {
+ models.PrepareTestEnv(t)
+
+ user := models.AssertExistsAndLoadBean(t, &models.User{ID: s.userID}).(*models.User)
+ repo := models.AssertExistsAndLoadBean(t, &models.Repository{ID: s.repositoryID, OwnerID: user.ID}).(*models.Repository)
+ repo.Owner = user
+
+ s.commitRepoActionOptions.PusherName = user.Name
+ s.commitRepoActionOptions.RepoOwnerID = user.ID
+ s.commitRepoActionOptions.RepoName = repo.Name
+
+ s.action.ActUserID = user.ID
+ s.action.RepoID = repo.ID
+ s.action.Repo = repo
+ s.action.IsPrivate = repo.IsPrivate
+
+ testCorrectRepoAction(t, s.commitRepoActionOptions, &s.action)
+ }
+}