gitea源码

user_test.go 2.8KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. // Copyright 2017 The Gitea Authors. All rights reserved.
  2. // SPDX-License-Identifier: MIT
  3. package org
  4. import (
  5. "testing"
  6. "code.gitea.io/gitea/models/organization"
  7. "code.gitea.io/gitea/models/unittest"
  8. user_model "code.gitea.io/gitea/models/user"
  9. "github.com/stretchr/testify/assert"
  10. )
  11. func TestUser_RemoveMember(t *testing.T) {
  12. assert.NoError(t, unittest.PrepareTestDatabase())
  13. org := unittest.AssertExistsAndLoadBean(t, &organization.Organization{ID: 3})
  14. user4 := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 4})
  15. user5 := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 5})
  16. // remove a user that is a member
  17. unittest.AssertExistsAndLoadBean(t, &organization.OrgUser{UID: user4.ID, OrgID: org.ID})
  18. prevNumMembers := org.NumMembers
  19. assert.NoError(t, RemoveOrgUser(t.Context(), org, user4))
  20. unittest.AssertNotExistsBean(t, &organization.OrgUser{UID: user4.ID, OrgID: org.ID})
  21. org = unittest.AssertExistsAndLoadBean(t, &organization.Organization{ID: org.ID})
  22. assert.Equal(t, prevNumMembers-1, org.NumMembers)
  23. // remove a user that is not a member
  24. unittest.AssertNotExistsBean(t, &organization.OrgUser{UID: user5.ID, OrgID: org.ID})
  25. prevNumMembers = org.NumMembers
  26. assert.NoError(t, RemoveOrgUser(t.Context(), org, user5))
  27. unittest.AssertNotExistsBean(t, &organization.OrgUser{UID: user5.ID, OrgID: org.ID})
  28. org = unittest.AssertExistsAndLoadBean(t, &organization.Organization{ID: org.ID})
  29. assert.Equal(t, prevNumMembers, org.NumMembers)
  30. unittest.CheckConsistencyFor(t, &user_model.User{}, &organization.Team{})
  31. }
  32. func TestRemoveOrgUser(t *testing.T) {
  33. assert.NoError(t, unittest.PrepareTestDatabase())
  34. testSuccess := func(org *organization.Organization, user *user_model.User) {
  35. expectedNumMembers := org.NumMembers
  36. if unittest.GetBean(t, &organization.OrgUser{OrgID: org.ID, UID: user.ID}) != nil {
  37. expectedNumMembers--
  38. }
  39. assert.NoError(t, RemoveOrgUser(t.Context(), org, user))
  40. unittest.AssertNotExistsBean(t, &organization.OrgUser{OrgID: org.ID, UID: user.ID})
  41. org = unittest.AssertExistsAndLoadBean(t, &organization.Organization{ID: org.ID})
  42. assert.Equal(t, expectedNumMembers, org.NumMembers)
  43. }
  44. org3 := unittest.AssertExistsAndLoadBean(t, &organization.Organization{ID: 3})
  45. org7 := unittest.AssertExistsAndLoadBean(t, &organization.Organization{ID: 7})
  46. user4 := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 4})
  47. user5 := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 5})
  48. testSuccess(org3, user4)
  49. org3 = unittest.AssertExistsAndLoadBean(t, &organization.Organization{ID: 3})
  50. testSuccess(org3, user4)
  51. err := RemoveOrgUser(t.Context(), org7, user5)
  52. assert.Error(t, err)
  53. assert.True(t, organization.IsErrLastOrgOwner(err))
  54. unittest.AssertExistsAndLoadBean(t, &organization.OrgUser{OrgID: org7.ID, UID: user5.ID})
  55. unittest.CheckConsistencyFor(t, &user_model.User{}, &organization.Team{})
  56. }