gitea

Зеркало из https://github.com/go-gitea/gitea
Форк
0
/
org_test.go 
74 строки · 2.9 Кб
1
// Copyright 2017 The Gitea Authors. All rights reserved.
2
// SPDX-License-Identifier: MIT
3

4
package models
5

6
import (
7
	"testing"
8

9
	"code.gitea.io/gitea/models/db"
10
	"code.gitea.io/gitea/models/organization"
11
	"code.gitea.io/gitea/models/unittest"
12
	user_model "code.gitea.io/gitea/models/user"
13

14
	"github.com/stretchr/testify/assert"
15
)
16

17
func TestUser_RemoveMember(t *testing.T) {
18
	assert.NoError(t, unittest.PrepareTestDatabase())
19

20
	org := unittest.AssertExistsAndLoadBean(t, &organization.Organization{ID: 3})
21
	user4 := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 4})
22
	user5 := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 5})
23

24
	// remove a user that is a member
25
	unittest.AssertExistsAndLoadBean(t, &organization.OrgUser{UID: user4.ID, OrgID: org.ID})
26
	prevNumMembers := org.NumMembers
27
	assert.NoError(t, RemoveOrgUser(db.DefaultContext, org, user4))
28
	unittest.AssertNotExistsBean(t, &organization.OrgUser{UID: user4.ID, OrgID: org.ID})
29

30
	org = unittest.AssertExistsAndLoadBean(t, &organization.Organization{ID: org.ID})
31
	assert.Equal(t, prevNumMembers-1, org.NumMembers)
32

33
	// remove a user that is not a member
34
	unittest.AssertNotExistsBean(t, &organization.OrgUser{UID: user5.ID, OrgID: org.ID})
35
	prevNumMembers = org.NumMembers
36
	assert.NoError(t, RemoveOrgUser(db.DefaultContext, org, user5))
37
	unittest.AssertNotExistsBean(t, &organization.OrgUser{UID: user5.ID, OrgID: org.ID})
38

39
	org = unittest.AssertExistsAndLoadBean(t, &organization.Organization{ID: org.ID})
40
	assert.Equal(t, prevNumMembers, org.NumMembers)
41

42
	unittest.CheckConsistencyFor(t, &user_model.User{}, &organization.Team{})
43
}
44

45
func TestRemoveOrgUser(t *testing.T) {
46
	assert.NoError(t, unittest.PrepareTestDatabase())
47

48
	testSuccess := func(org *organization.Organization, user *user_model.User) {
49
		expectedNumMembers := org.NumMembers
50
		if unittest.BeanExists(t, &organization.OrgUser{OrgID: org.ID, UID: user.ID}) {
51
			expectedNumMembers--
52
		}
53
		assert.NoError(t, RemoveOrgUser(db.DefaultContext, org, user))
54
		unittest.AssertNotExistsBean(t, &organization.OrgUser{OrgID: org.ID, UID: user.ID})
55
		org = unittest.AssertExistsAndLoadBean(t, &organization.Organization{ID: org.ID})
56
		assert.EqualValues(t, expectedNumMembers, org.NumMembers)
57
	}
58

59
	org3 := unittest.AssertExistsAndLoadBean(t, &organization.Organization{ID: 3})
60
	org7 := unittest.AssertExistsAndLoadBean(t, &organization.Organization{ID: 7})
61
	user4 := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 4})
62
	user5 := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 5})
63

64
	testSuccess(org3, user4)
65

66
	org3 = unittest.AssertExistsAndLoadBean(t, &organization.Organization{ID: 3})
67
	testSuccess(org3, user4)
68

69
	err := RemoveOrgUser(db.DefaultContext, org7, user5)
70
	assert.Error(t, err)
71
	assert.True(t, organization.IsErrLastOrgOwner(err))
72
	unittest.AssertExistsAndLoadBean(t, &organization.OrgUser{OrgID: org7.ID, UID: user5.ID})
73
	unittest.CheckConsistencyFor(t, &user_model.User{}, &organization.Team{})
74
}
75

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.