Платформа ЦРНП "Мирокод" для разработки проектов
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.
82 lines
1.9 KiB
82 lines
1.9 KiB
// Copyright 2020 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 models |
|
|
|
import ( |
|
"testing" |
|
|
|
"code.gitea.io/gitea/modules/timeutil" |
|
|
|
"github.com/stretchr/testify/assert" |
|
) |
|
|
|
func TestIsProjectTypeValid(t *testing.T) { |
|
const UnknownType ProjectType = 15 |
|
|
|
cases := []struct { |
|
typ ProjectType |
|
valid bool |
|
}{ |
|
{ProjectTypeIndividual, false}, |
|
{ProjectTypeRepository, true}, |
|
{ProjectTypeOrganization, false}, |
|
{UnknownType, false}, |
|
} |
|
|
|
for _, v := range cases { |
|
assert.Equal(t, v.valid, IsProjectTypeValid(v.typ)) |
|
} |
|
} |
|
|
|
func TestGetProjects(t *testing.T) { |
|
assert.NoError(t, PrepareTestDatabase()) |
|
|
|
projects, _, err := GetProjects(ProjectSearchOptions{RepoID: 1}) |
|
assert.NoError(t, err) |
|
|
|
// 1 value for this repo exists in the fixtures |
|
assert.Len(t, projects, 1) |
|
|
|
projects, _, err = GetProjects(ProjectSearchOptions{RepoID: 3}) |
|
assert.NoError(t, err) |
|
|
|
// 1 value for this repo exists in the fixtures |
|
assert.Len(t, projects, 1) |
|
} |
|
|
|
func TestProject(t *testing.T) { |
|
assert.NoError(t, PrepareTestDatabase()) |
|
|
|
project := &Project{ |
|
Type: ProjectTypeRepository, |
|
BoardType: ProjectBoardTypeBasicKanban, |
|
Title: "New Project", |
|
RepoID: 1, |
|
CreatedUnix: timeutil.TimeStampNow(), |
|
CreatorID: 2, |
|
} |
|
|
|
assert.NoError(t, NewProject(project)) |
|
|
|
_, err := GetProjectByID(project.ID) |
|
assert.NoError(t, err) |
|
|
|
// Update project |
|
project.Title = "Updated title" |
|
assert.NoError(t, UpdateProject(project)) |
|
|
|
projectFromDB, err := GetProjectByID(project.ID) |
|
assert.NoError(t, err) |
|
|
|
assert.Equal(t, project.Title, projectFromDB.Title) |
|
|
|
assert.NoError(t, ChangeProjectStatus(project, true)) |
|
|
|
// Retrieve from DB afresh to check if it is truly closed |
|
projectFromDB, err = GetProjectByID(project.ID) |
|
assert.NoError(t, err) |
|
|
|
assert.True(t, projectFromDB.IsClosed) |
|
}
|
|
|