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.

branches_test.go 5.1KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156
  1. // Copyright 2017 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 models
  5. import (
  6. "testing"
  7. "code.gitea.io/gitea/models/unittest"
  8. "github.com/stretchr/testify/assert"
  9. )
  10. func TestAddDeletedBranch(t *testing.T) {
  11. assert.NoError(t, unittest.PrepareTestDatabase())
  12. repo := unittest.AssertExistsAndLoadBean(t, &Repository{ID: 1}).(*Repository)
  13. firstBranch := unittest.AssertExistsAndLoadBean(t, &DeletedBranch{ID: 1}).(*DeletedBranch)
  14. assert.Error(t, repo.AddDeletedBranch(firstBranch.Name, firstBranch.Commit, firstBranch.DeletedByID))
  15. assert.NoError(t, repo.AddDeletedBranch("test", "5655464564554545466464656", int64(1)))
  16. }
  17. func TestGetDeletedBranches(t *testing.T) {
  18. assert.NoError(t, unittest.PrepareTestDatabase())
  19. repo := unittest.AssertExistsAndLoadBean(t, &Repository{ID: 1}).(*Repository)
  20. branches, err := repo.GetDeletedBranches()
  21. assert.NoError(t, err)
  22. assert.Len(t, branches, 2)
  23. }
  24. func TestGetDeletedBranch(t *testing.T) {
  25. assert.NoError(t, unittest.PrepareTestDatabase())
  26. firstBranch := unittest.AssertExistsAndLoadBean(t, &DeletedBranch{ID: 1}).(*DeletedBranch)
  27. assert.NotNil(t, getDeletedBranch(t, firstBranch))
  28. }
  29. func TestDeletedBranchLoadUser(t *testing.T) {
  30. assert.NoError(t, unittest.PrepareTestDatabase())
  31. firstBranch := unittest.AssertExistsAndLoadBean(t, &DeletedBranch{ID: 1}).(*DeletedBranch)
  32. secondBranch := unittest.AssertExistsAndLoadBean(t, &DeletedBranch{ID: 2}).(*DeletedBranch)
  33. branch := getDeletedBranch(t, firstBranch)
  34. assert.Nil(t, branch.DeletedBy)
  35. branch.LoadUser()
  36. assert.NotNil(t, branch.DeletedBy)
  37. assert.Equal(t, "user1", branch.DeletedBy.Name)
  38. branch = getDeletedBranch(t, secondBranch)
  39. assert.Nil(t, branch.DeletedBy)
  40. branch.LoadUser()
  41. assert.NotNil(t, branch.DeletedBy)
  42. assert.Equal(t, "Ghost", branch.DeletedBy.Name)
  43. }
  44. func TestRemoveDeletedBranch(t *testing.T) {
  45. assert.NoError(t, unittest.PrepareTestDatabase())
  46. repo := unittest.AssertExistsAndLoadBean(t, &Repository{ID: 1}).(*Repository)
  47. firstBranch := unittest.AssertExistsAndLoadBean(t, &DeletedBranch{ID: 1}).(*DeletedBranch)
  48. err := repo.RemoveDeletedBranch(1)
  49. assert.NoError(t, err)
  50. unittest.AssertNotExistsBean(t, firstBranch)
  51. unittest.AssertExistsAndLoadBean(t, &DeletedBranch{ID: 2})
  52. }
  53. func getDeletedBranch(t *testing.T, branch *DeletedBranch) *DeletedBranch {
  54. repo := unittest.AssertExistsAndLoadBean(t, &Repository{ID: 1}).(*Repository)
  55. deletedBranch, err := repo.GetDeletedBranchByID(branch.ID)
  56. assert.NoError(t, err)
  57. assert.Equal(t, branch.ID, deletedBranch.ID)
  58. assert.Equal(t, branch.Name, deletedBranch.Name)
  59. assert.Equal(t, branch.Commit, deletedBranch.Commit)
  60. assert.Equal(t, branch.DeletedByID, deletedBranch.DeletedByID)
  61. return deletedBranch
  62. }
  63. func TestFindRenamedBranch(t *testing.T) {
  64. assert.NoError(t, unittest.PrepareTestDatabase())
  65. branch, exist, err := FindRenamedBranch(1, "dev")
  66. assert.NoError(t, err)
  67. assert.Equal(t, true, exist)
  68. assert.Equal(t, "master", branch.To)
  69. _, exist, err = FindRenamedBranch(1, "unknow")
  70. assert.NoError(t, err)
  71. assert.Equal(t, false, exist)
  72. }
  73. func TestRenameBranch(t *testing.T) {
  74. assert.NoError(t, unittest.PrepareTestDatabase())
  75. repo1 := unittest.AssertExistsAndLoadBean(t, &Repository{ID: 1}).(*Repository)
  76. _isDefault := false
  77. err := UpdateProtectBranch(repo1, &ProtectedBranch{
  78. RepoID: repo1.ID,
  79. BranchName: "master",
  80. }, WhitelistOptions{})
  81. assert.NoError(t, err)
  82. assert.NoError(t, repo1.RenameBranch("master", "main", func(isDefault bool) error {
  83. _isDefault = isDefault
  84. return nil
  85. }))
  86. assert.Equal(t, true, _isDefault)
  87. repo1 = unittest.AssertExistsAndLoadBean(t, &Repository{ID: 1}).(*Repository)
  88. assert.Equal(t, "main", repo1.DefaultBranch)
  89. pull := unittest.AssertExistsAndLoadBean(t, &PullRequest{ID: 1}).(*PullRequest) // merged
  90. assert.Equal(t, "master", pull.BaseBranch)
  91. pull = unittest.AssertExistsAndLoadBean(t, &PullRequest{ID: 2}).(*PullRequest) // open
  92. assert.Equal(t, "main", pull.BaseBranch)
  93. renamedBranch := unittest.AssertExistsAndLoadBean(t, &RenamedBranch{ID: 2}).(*RenamedBranch)
  94. assert.Equal(t, "master", renamedBranch.From)
  95. assert.Equal(t, "main", renamedBranch.To)
  96. assert.Equal(t, int64(1), renamedBranch.RepoID)
  97. unittest.AssertExistsAndLoadBean(t, &ProtectedBranch{
  98. RepoID: repo1.ID,
  99. BranchName: "main",
  100. })
  101. }
  102. func TestOnlyGetDeletedBranchOnCorrectRepo(t *testing.T) {
  103. assert.NoError(t, unittest.PrepareTestDatabase())
  104. // Get deletedBranch with ID of 1 on repo with ID 2.
  105. // This should return a nil branch as this deleted branch
  106. // is actually on repo with ID 1.
  107. repo2 := unittest.AssertExistsAndLoadBean(t, &Repository{ID: 2}).(*Repository)
  108. deletedBranch, err := repo2.GetDeletedBranchByID(1)
  109. // Expect no error, and the returned branch is nil.
  110. assert.NoError(t, err)
  111. assert.Nil(t, deletedBranch)
  112. // Now get the deletedBranch with ID of 1 on repo with ID 1.
  113. // This should return the deletedBranch.
  114. repo1 := unittest.AssertExistsAndLoadBean(t, &Repository{ID: 1}).(*Repository)
  115. deletedBranch, err = repo1.GetDeletedBranchByID(1)
  116. // Expect no error, and the returned branch to be not nil.
  117. assert.NoError(t, err)
  118. assert.NotNil(t, deletedBranch)
  119. }