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.

repo_transfer_test.go 1.6KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. // Copyright 2021 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/db"
  8. "github.com/stretchr/testify/assert"
  9. )
  10. func TestRepositoryTransfer(t *testing.T) {
  11. assert.NoError(t, db.PrepareTestDatabase())
  12. doer := db.AssertExistsAndLoadBean(t, &User{ID: 3}).(*User)
  13. repo := db.AssertExistsAndLoadBean(t, &Repository{ID: 3}).(*Repository)
  14. transfer, err := GetPendingRepositoryTransfer(repo)
  15. assert.NoError(t, err)
  16. assert.NotNil(t, transfer)
  17. // Cancel transfer
  18. assert.NoError(t, CancelRepositoryTransfer(repo))
  19. transfer, err = GetPendingRepositoryTransfer(repo)
  20. assert.Error(t, err)
  21. assert.Nil(t, transfer)
  22. assert.True(t, IsErrNoPendingTransfer(err))
  23. user2 := db.AssertExistsAndLoadBean(t, &User{ID: 2}).(*User)
  24. assert.NoError(t, CreatePendingRepositoryTransfer(doer, user2, repo.ID, nil))
  25. transfer, err = GetPendingRepositoryTransfer(repo)
  26. assert.Nil(t, err)
  27. assert.NoError(t, transfer.LoadAttributes())
  28. assert.Equal(t, "user2", transfer.Recipient.Name)
  29. user6 := db.AssertExistsAndLoadBean(t, &User{ID: 2}).(*User)
  30. // Only transfer can be started at any given time
  31. err = CreatePendingRepositoryTransfer(doer, user6, repo.ID, nil)
  32. assert.Error(t, err)
  33. assert.True(t, IsErrRepoTransferInProgress(err))
  34. // Unknown user
  35. err = CreatePendingRepositoryTransfer(doer, &User{ID: 1000, LowerName: "user1000"}, repo.ID, nil)
  36. assert.Error(t, err)
  37. // Cancel transfer
  38. assert.NoError(t, CancelRepositoryTransfer(repo))
  39. }