gitea源码

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. // Copyright 2017 The Gitea Authors. All rights reserved.
  2. // SPDX-License-Identifier: MIT
  3. package issues_test
  4. import (
  5. "testing"
  6. issues_model "code.gitea.io/gitea/models/issues"
  7. "code.gitea.io/gitea/models/unittest"
  8. "code.gitea.io/gitea/modules/setting"
  9. "github.com/stretchr/testify/assert"
  10. )
  11. func TestIssueList_LoadRepositories(t *testing.T) {
  12. assert.NoError(t, unittest.PrepareTestDatabase())
  13. issueList := issues_model.IssueList{
  14. unittest.AssertExistsAndLoadBean(t, &issues_model.Issue{ID: 1}),
  15. unittest.AssertExistsAndLoadBean(t, &issues_model.Issue{ID: 2}),
  16. unittest.AssertExistsAndLoadBean(t, &issues_model.Issue{ID: 4}),
  17. }
  18. repos, err := issueList.LoadRepositories(t.Context())
  19. assert.NoError(t, err)
  20. assert.Len(t, repos, 2)
  21. for _, issue := range issueList {
  22. assert.Equal(t, issue.RepoID, issue.Repo.ID)
  23. }
  24. }
  25. func TestIssueList_LoadAttributes(t *testing.T) {
  26. assert.NoError(t, unittest.PrepareTestDatabase())
  27. setting.Service.EnableTimetracking = true
  28. issueList := issues_model.IssueList{
  29. unittest.AssertExistsAndLoadBean(t, &issues_model.Issue{ID: 1}),
  30. unittest.AssertExistsAndLoadBean(t, &issues_model.Issue{ID: 4}),
  31. }
  32. assert.NoError(t, issueList.LoadAttributes(t.Context()))
  33. for _, issue := range issueList {
  34. assert.Equal(t, issue.RepoID, issue.Repo.ID)
  35. for _, label := range issue.Labels {
  36. assert.Equal(t, issue.RepoID, label.RepoID)
  37. unittest.AssertExistsAndLoadBean(t, &issues_model.IssueLabel{IssueID: issue.ID, LabelID: label.ID})
  38. }
  39. if issue.PosterID > 0 {
  40. assert.Equal(t, issue.PosterID, issue.Poster.ID)
  41. }
  42. if issue.AssigneeID > 0 {
  43. assert.Equal(t, issue.AssigneeID, issue.Assignee.ID)
  44. }
  45. if issue.MilestoneID > 0 {
  46. assert.Equal(t, issue.MilestoneID, issue.Milestone.ID)
  47. }
  48. if issue.IsPull {
  49. assert.Equal(t, issue.ID, issue.PullRequest.IssueID)
  50. }
  51. for _, attachment := range issue.Attachments {
  52. assert.Equal(t, issue.ID, attachment.IssueID)
  53. }
  54. for _, comment := range issue.Comments {
  55. assert.Equal(t, issue.ID, comment.IssueID)
  56. }
  57. if issue.ID == int64(1) {
  58. assert.Equal(t, int64(400), issue.TotalTrackedTime)
  59. assert.NotNil(t, issue.Project)
  60. assert.Equal(t, int64(1), issue.Project.ID)
  61. } else {
  62. assert.Nil(t, issue.Project)
  63. }
  64. }
  65. }