Du kan inte välja fler än 25 ämnen Ämnen måste starta med en bokstav eller siffra, kan innehålla bindestreck ('-') och vara max 35 tecken långa.

adopt_test.go 2.5KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. // Copyright 2021 The Gitea Authors. All rights reserved.
  2. // SPDX-License-Identifier: MIT
  3. package repository
  4. import (
  5. "os"
  6. "path"
  7. "testing"
  8. "code.gitea.io/gitea/models/db"
  9. "code.gitea.io/gitea/models/unittest"
  10. "code.gitea.io/gitea/modules/setting"
  11. "github.com/stretchr/testify/assert"
  12. )
  13. func TestCheckUnadoptedRepositories_Add(t *testing.T) {
  14. start := 10
  15. end := 20
  16. unadopted := &unadoptedRepositories{
  17. start: start,
  18. end: end,
  19. index: 0,
  20. }
  21. total := 30
  22. for i := 0; i < total; i++ {
  23. unadopted.add("something")
  24. }
  25. assert.Equal(t, total, unadopted.index)
  26. assert.Len(t, unadopted.repositories, end-start)
  27. }
  28. func TestCheckUnadoptedRepositories(t *testing.T) {
  29. assert.NoError(t, unittest.PrepareTestDatabase())
  30. //
  31. // Non existent user
  32. //
  33. unadopted := &unadoptedRepositories{start: 0, end: 100}
  34. err := checkUnadoptedRepositories(db.DefaultContext, "notauser", []string{"repo"}, unadopted)
  35. assert.NoError(t, err)
  36. assert.Empty(t, unadopted.repositories)
  37. //
  38. // Unadopted repository is returned
  39. // Existing (adopted) repository is not returned
  40. //
  41. userName := "user2"
  42. repoName := "repo2"
  43. unadoptedRepoName := "unadopted"
  44. unadopted = &unadoptedRepositories{start: 0, end: 100}
  45. err = checkUnadoptedRepositories(db.DefaultContext, userName, []string{repoName, unadoptedRepoName}, unadopted)
  46. assert.NoError(t, err)
  47. assert.Equal(t, []string{path.Join(userName, unadoptedRepoName)}, unadopted.repositories)
  48. //
  49. // Existing (adopted) repository is not returned
  50. //
  51. unadopted = &unadoptedRepositories{start: 0, end: 100}
  52. err = checkUnadoptedRepositories(db.DefaultContext, userName, []string{repoName}, unadopted)
  53. assert.NoError(t, err)
  54. assert.Empty(t, unadopted.repositories)
  55. assert.Equal(t, 0, unadopted.index)
  56. }
  57. func TestListUnadoptedRepositories_ListOptions(t *testing.T) {
  58. assert.NoError(t, unittest.PrepareTestDatabase())
  59. username := "user2"
  60. unadoptedList := []string{path.Join(username, "unadopted1"), path.Join(username, "unadopted2")}
  61. for _, unadopted := range unadoptedList {
  62. _ = os.Mkdir(path.Join(setting.RepoRootPath, unadopted+".git"), 0o755)
  63. }
  64. opts := db.ListOptions{Page: 1, PageSize: 1}
  65. repoNames, count, err := ListUnadoptedRepositories(db.DefaultContext, "", &opts)
  66. assert.NoError(t, err)
  67. assert.Equal(t, 2, count)
  68. assert.Equal(t, unadoptedList[0], repoNames[0])
  69. opts = db.ListOptions{Page: 2, PageSize: 1}
  70. repoNames, count, err = ListUnadoptedRepositories(db.DefaultContext, "", &opts)
  71. assert.NoError(t, err)
  72. assert.Equal(t, 2, count)
  73. assert.Equal(t, unadoptedList[1], repoNames[0])
  74. }