Du kan inte välja fler än 25 ämnen Ämnen måste starta med en bokstav eller siffra, kan innehålla bindestreck ('-') och vara max 35 tecken långa.

org_test.go 2.2KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. // Copyright 2017 The Gitea Authors. All rights reserved.
  2. // SPDX-License-Identifier: MIT
  3. package models
  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. // remove a user that is a member
  15. unittest.AssertExistsAndLoadBean(t, &organization.OrgUser{UID: 4, OrgID: 3})
  16. prevNumMembers := org.NumMembers
  17. assert.NoError(t, RemoveOrgUser(org.ID, 4))
  18. unittest.AssertNotExistsBean(t, &organization.OrgUser{UID: 4, OrgID: 3})
  19. org = unittest.AssertExistsAndLoadBean(t, &organization.Organization{ID: 3})
  20. assert.Equal(t, prevNumMembers-1, org.NumMembers)
  21. // remove a user that is not a member
  22. unittest.AssertNotExistsBean(t, &organization.OrgUser{UID: 5, OrgID: 3})
  23. prevNumMembers = org.NumMembers
  24. assert.NoError(t, RemoveOrgUser(org.ID, 5))
  25. unittest.AssertNotExistsBean(t, &organization.OrgUser{UID: 5, OrgID: 3})
  26. org = unittest.AssertExistsAndLoadBean(t, &organization.Organization{ID: 3})
  27. assert.Equal(t, prevNumMembers, org.NumMembers)
  28. unittest.CheckConsistencyFor(t, &user_model.User{}, &organization.Team{})
  29. }
  30. func TestRemoveOrgUser(t *testing.T) {
  31. assert.NoError(t, unittest.PrepareTestDatabase())
  32. testSuccess := func(orgID, userID int64) {
  33. org := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: orgID})
  34. expectedNumMembers := org.NumMembers
  35. if unittest.BeanExists(t, &organization.OrgUser{OrgID: orgID, UID: userID}) {
  36. expectedNumMembers--
  37. }
  38. assert.NoError(t, RemoveOrgUser(orgID, userID))
  39. unittest.AssertNotExistsBean(t, &organization.OrgUser{OrgID: orgID, UID: userID})
  40. org = unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: orgID})
  41. assert.EqualValues(t, expectedNumMembers, org.NumMembers)
  42. }
  43. testSuccess(3, 4)
  44. testSuccess(3, 4)
  45. err := RemoveOrgUser(7, 5)
  46. assert.Error(t, err)
  47. assert.True(t, organization.IsErrLastOrgOwner(err))
  48. unittest.AssertExistsAndLoadBean(t, &organization.OrgUser{OrgID: 7, UID: 5})
  49. unittest.CheckConsistencyFor(t, &user_model.User{}, &organization.Team{})
  50. }