diff options
Diffstat (limited to 'models/project_test.go')
-rw-r--r-- | models/project_test.go | 82 |
1 files changed, 82 insertions, 0 deletions
diff --git a/models/project_test.go b/models/project_test.go new file mode 100644 index 0000000000..49c46f9184 --- /dev/null +++ b/models/project_test.go @@ -0,0 +1,82 @@ +// 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) +} |