|
|
- // 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
-
- var 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)
- }
|