summaryrefslogtreecommitdiffstats
path: root/services/repository/transfer_test.go
diff options
context:
space:
mode:
authorLunny Xiao <xiaolunwen@gmail.com>2019-11-15 16:06:11 +0800
committerGitHub <noreply@github.com>2019-11-15 16:06:11 +0800
commit21ae9838e04233bbf9930d368d935fd1f9b68c34 (patch)
tree610abb6f1ec2df235d469276b36f6d26e00e4653 /services/repository/transfer_test.go
parentb30d744e0986dcf716d4f57dac8c72a494bb226b (diff)
downloadgitea-21ae9838e04233bbf9930d368d935fd1f9b68c34.tar.gz
gitea-21ae9838e04233bbf9930d368d935fd1f9b68c34.zip
Move transfer repository and rename repository on a service package and start action notification (#8573)
* move transfer repository and rename repository on a service package and start action notification * remove unused codes * fix lint * fix bugs * fix test * fix test * fix test * fix lint * update go mod and sum
Diffstat (limited to 'services/repository/transfer_test.go')
-rw-r--r--services/repository/transfer_test.go50
1 files changed, 50 insertions, 0 deletions
diff --git a/services/repository/transfer_test.go b/services/repository/transfer_test.go
new file mode 100644
index 0000000000..432527921f
--- /dev/null
+++ b/services/repository/transfer_test.go
@@ -0,0 +1,50 @@
+// 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 repository
+
+import (
+ "sync"
+ "testing"
+
+ "code.gitea.io/gitea/models"
+ "code.gitea.io/gitea/modules/notification"
+ "code.gitea.io/gitea/modules/notification/action"
+
+ "github.com/stretchr/testify/assert"
+ "github.com/unknwon/com"
+)
+
+var notifySync sync.Once
+
+func registerNotifier() {
+ notifySync.Do(func() {
+ notification.RegisterNotifier(action.NewNotifier())
+ })
+}
+
+func TestTransferOwnership(t *testing.T) {
+ registerNotifier()
+
+ assert.NoError(t, models.PrepareTestDatabase())
+
+ doer := models.AssertExistsAndLoadBean(t, &models.User{ID: 2}).(*models.User)
+ repo := models.AssertExistsAndLoadBean(t, &models.Repository{ID: 3}).(*models.Repository)
+ repo.Owner = models.AssertExistsAndLoadBean(t, &models.User{ID: repo.OwnerID}).(*models.User)
+ assert.NoError(t, TransferOwnership(doer, "user2", repo))
+
+ transferredRepo := models.AssertExistsAndLoadBean(t, &models.Repository{ID: 3}).(*models.Repository)
+ assert.EqualValues(t, 2, transferredRepo.OwnerID)
+
+ assert.False(t, com.IsExist(models.RepoPath("user3", "repo3")))
+ assert.True(t, com.IsExist(models.RepoPath("user2", "repo3")))
+ models.AssertExistsAndLoadBean(t, &models.Action{
+ OpType: models.ActionTransferRepo,
+ ActUserID: 2,
+ RepoID: 3,
+ Content: "user3/repo3",
+ })
+
+ models.CheckConsistencyFor(t, &models.Repository{}, &models.User{}, &models.Team{})
+}