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.

project_test.go 2.0KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. // Copyright 2020 The Gitea Authors. All rights reserved.
  2. // Use of this source code is governed by a MIT-style
  3. // license that can be found in the LICENSE file.
  4. package project
  5. import (
  6. "testing"
  7. "code.gitea.io/gitea/models/db"
  8. "code.gitea.io/gitea/models/unittest"
  9. "code.gitea.io/gitea/modules/timeutil"
  10. "github.com/stretchr/testify/assert"
  11. )
  12. func TestIsProjectTypeValid(t *testing.T) {
  13. const UnknownType Type = 15
  14. cases := []struct {
  15. typ Type
  16. valid bool
  17. }{
  18. {TypeIndividual, false},
  19. {TypeRepository, true},
  20. {TypeOrganization, false},
  21. {UnknownType, false},
  22. }
  23. for _, v := range cases {
  24. assert.Equal(t, v.valid, IsTypeValid(v.typ))
  25. }
  26. }
  27. func TestGetProjects(t *testing.T) {
  28. assert.NoError(t, unittest.PrepareTestDatabase())
  29. projects, _, err := GetProjects(db.DefaultContext, SearchOptions{RepoID: 1})
  30. assert.NoError(t, err)
  31. // 1 value for this repo exists in the fixtures
  32. assert.Len(t, projects, 1)
  33. projects, _, err = GetProjects(db.DefaultContext, SearchOptions{RepoID: 3})
  34. assert.NoError(t, err)
  35. // 1 value for this repo exists in the fixtures
  36. assert.Len(t, projects, 1)
  37. }
  38. func TestProject(t *testing.T) {
  39. assert.NoError(t, unittest.PrepareTestDatabase())
  40. project := &Project{
  41. Type: TypeRepository,
  42. BoardType: BoardTypeBasicKanban,
  43. Title: "New Project",
  44. RepoID: 1,
  45. CreatedUnix: timeutil.TimeStampNow(),
  46. CreatorID: 2,
  47. }
  48. assert.NoError(t, NewProject(project))
  49. _, err := GetProjectByID(db.DefaultContext, project.ID)
  50. assert.NoError(t, err)
  51. // Update project
  52. project.Title = "Updated title"
  53. assert.NoError(t, UpdateProject(db.DefaultContext, project))
  54. projectFromDB, err := GetProjectByID(db.DefaultContext, project.ID)
  55. assert.NoError(t, err)
  56. assert.Equal(t, project.Title, projectFromDB.Title)
  57. assert.NoError(t, ChangeProjectStatus(project, true))
  58. // Retrieve from DB afresh to check if it is truly closed
  59. projectFromDB, err = GetProjectByID(db.DefaultContext, project.ID)
  60. assert.NoError(t, err)
  61. assert.True(t, projectFromDB.IsClosed)
  62. }