Nelze vybrat více než 25 témat Téma musí začínat písmenem nebo číslem, může obsahovat pomlčky („-“) a může být dlouhé až 35 znaků.

repo_collaboration_test.go 2.6KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. // Copyright 2017 The Gitea 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 models
  5. import (
  6. "testing"
  7. "code.gitea.io/gitea/models/db"
  8. "code.gitea.io/gitea/models/perm"
  9. access_model "code.gitea.io/gitea/models/perm/access"
  10. repo_model "code.gitea.io/gitea/models/repo"
  11. "code.gitea.io/gitea/models/unittest"
  12. user_model "code.gitea.io/gitea/models/user"
  13. "github.com/stretchr/testify/assert"
  14. )
  15. func TestRepository_AddCollaborator(t *testing.T) {
  16. assert.NoError(t, unittest.PrepareTestDatabase())
  17. testSuccess := func(repoID, userID int64) {
  18. repo := unittest.AssertExistsAndLoadBean(t, &repo_model.Repository{ID: repoID}).(*repo_model.Repository)
  19. assert.NoError(t, repo.GetOwner(db.DefaultContext))
  20. user := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: userID}).(*user_model.User)
  21. assert.NoError(t, AddCollaborator(repo, user))
  22. unittest.CheckConsistencyFor(t, &repo_model.Repository{ID: repoID}, &user_model.User{ID: userID})
  23. }
  24. testSuccess(1, 4)
  25. testSuccess(1, 4)
  26. testSuccess(3, 4)
  27. }
  28. func TestRepository_ChangeCollaborationAccessMode(t *testing.T) {
  29. assert.NoError(t, unittest.PrepareTestDatabase())
  30. repo := unittest.AssertExistsAndLoadBean(t, &repo_model.Repository{ID: 4}).(*repo_model.Repository)
  31. assert.NoError(t, repo_model.ChangeCollaborationAccessMode(repo, 4, perm.AccessModeAdmin))
  32. collaboration := unittest.AssertExistsAndLoadBean(t, &repo_model.Collaboration{RepoID: repo.ID, UserID: 4}).(*repo_model.Collaboration)
  33. assert.EqualValues(t, perm.AccessModeAdmin, collaboration.Mode)
  34. access := unittest.AssertExistsAndLoadBean(t, &access_model.Access{UserID: 4, RepoID: repo.ID}).(*access_model.Access)
  35. assert.EqualValues(t, perm.AccessModeAdmin, access.Mode)
  36. assert.NoError(t, repo_model.ChangeCollaborationAccessMode(repo, 4, perm.AccessModeAdmin))
  37. assert.NoError(t, repo_model.ChangeCollaborationAccessMode(repo, unittest.NonexistentID, perm.AccessModeAdmin))
  38. unittest.CheckConsistencyFor(t, &repo_model.Repository{ID: repo.ID})
  39. }
  40. func TestRepository_DeleteCollaboration(t *testing.T) {
  41. assert.NoError(t, unittest.PrepareTestDatabase())
  42. repo := unittest.AssertExistsAndLoadBean(t, &repo_model.Repository{ID: 4}).(*repo_model.Repository)
  43. assert.NoError(t, repo.GetOwner(db.DefaultContext))
  44. assert.NoError(t, DeleteCollaboration(repo, 4))
  45. unittest.AssertNotExistsBean(t, &repo_model.Collaboration{RepoID: repo.ID, UserID: 4})
  46. assert.NoError(t, DeleteCollaboration(repo, 4))
  47. unittest.AssertNotExistsBean(t, &repo_model.Collaboration{RepoID: repo.ID, UserID: 4})
  48. unittest.CheckConsistencyFor(t, &repo_model.Repository{ID: repo.ID})
  49. }