gitea源码

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. // Copyright 2017 The Gitea Authors. All rights reserved.
  2. // SPDX-License-Identifier: MIT
  3. package repository
  4. import (
  5. "testing"
  6. "code.gitea.io/gitea/models/perm"
  7. repo_model "code.gitea.io/gitea/models/repo"
  8. "code.gitea.io/gitea/models/unittest"
  9. user_model "code.gitea.io/gitea/models/user"
  10. "github.com/stretchr/testify/assert"
  11. )
  12. func TestRepository_AddCollaborator(t *testing.T) {
  13. assert.NoError(t, unittest.PrepareTestDatabase())
  14. testSuccess := func(repoID, userID int64) {
  15. repo := unittest.AssertExistsAndLoadBean(t, &repo_model.Repository{ID: repoID})
  16. assert.NoError(t, repo.LoadOwner(t.Context()))
  17. user := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: userID})
  18. assert.NoError(t, AddOrUpdateCollaborator(t.Context(), repo, user, perm.AccessModeWrite))
  19. unittest.CheckConsistencyFor(t, &repo_model.Repository{ID: repoID}, &user_model.User{ID: userID})
  20. }
  21. testSuccess(1, 4)
  22. testSuccess(1, 4)
  23. testSuccess(3, 4)
  24. }
  25. func TestRepository_DeleteCollaboration(t *testing.T) {
  26. assert.NoError(t, unittest.PrepareTestDatabase())
  27. user := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 4})
  28. repo := unittest.AssertExistsAndLoadBean(t, &repo_model.Repository{ID: 4})
  29. assert.NoError(t, repo.LoadOwner(t.Context()))
  30. assert.NoError(t, DeleteCollaboration(t.Context(), repo, user))
  31. unittest.AssertNotExistsBean(t, &repo_model.Collaboration{RepoID: repo.ID, UserID: user.ID})
  32. assert.NoError(t, DeleteCollaboration(t.Context(), repo, user))
  33. unittest.AssertNotExistsBean(t, &repo_model.Collaboration{RepoID: repo.ID, UserID: user.ID})
  34. unittest.CheckConsistencyFor(t, &repo_model.Repository{ID: repo.ID})
  35. }