Платформа ЦРНП "Мирокод" для разработки проектов
https://git.mirocod.ru
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
49 lines
1.5 KiB
49 lines
1.5 KiB
// Copyright 2022 The Gitea Authors. All rights reserved. |
|
// Use of this source code is governed by a MIT-style |
|
// license that can be found in the LICENSE file. |
|
|
|
package repo |
|
|
|
import ( |
|
"testing" |
|
|
|
"code.gitea.io/gitea/models/db" |
|
"code.gitea.io/gitea/models/unittest" |
|
|
|
"github.com/stretchr/testify/assert" |
|
) |
|
|
|
func TestRepository_GetCollaborators(t *testing.T) { |
|
assert.NoError(t, unittest.PrepareTestDatabase()) |
|
test := func(repoID int64) { |
|
repo := unittest.AssertExistsAndLoadBean(t, &Repository{ID: repoID}).(*Repository) |
|
collaborators, err := GetCollaborators(db.DefaultContext, repo.ID, db.ListOptions{}) |
|
assert.NoError(t, err) |
|
expectedLen, err := db.GetEngine(db.DefaultContext).Count(&Collaboration{RepoID: repoID}) |
|
assert.NoError(t, err) |
|
assert.Len(t, collaborators, int(expectedLen)) |
|
for _, collaborator := range collaborators { |
|
assert.EqualValues(t, collaborator.User.ID, collaborator.Collaboration.UserID) |
|
assert.EqualValues(t, repoID, collaborator.Collaboration.RepoID) |
|
} |
|
} |
|
test(1) |
|
test(2) |
|
test(3) |
|
test(4) |
|
} |
|
|
|
func TestRepository_IsCollaborator(t *testing.T) { |
|
assert.NoError(t, unittest.PrepareTestDatabase()) |
|
|
|
test := func(repoID, userID int64, expected bool) { |
|
repo := unittest.AssertExistsAndLoadBean(t, &Repository{ID: repoID}).(*Repository) |
|
actual, err := IsCollaborator(db.DefaultContext, repo.ID, userID) |
|
assert.NoError(t, err) |
|
assert.Equal(t, expected, actual) |
|
} |
|
test(3, 2, true) |
|
test(3, unittest.NonexistentID, false) |
|
test(4, 2, false) |
|
test(4, 4, true) |
|
}
|
|
|