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.

iterate_test.go 1.1KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. // Copyright 2022 The Gitea Authors. All rights reserved.
  2. // SPDX-License-Identifier: MIT
  3. package db_test
  4. import (
  5. "context"
  6. "testing"
  7. "code.gitea.io/gitea/models/db"
  8. repo_model "code.gitea.io/gitea/models/repo"
  9. "code.gitea.io/gitea/models/unittest"
  10. "github.com/stretchr/testify/assert"
  11. )
  12. func TestIterate(t *testing.T) {
  13. assert.NoError(t, unittest.PrepareTestDatabase())
  14. xe := unittest.GetXORMEngine()
  15. assert.NoError(t, xe.Sync(&repo_model.RepoUnit{}))
  16. var repoCnt int
  17. err := db.Iterate(db.DefaultContext, nil, func(ctx context.Context, repo *repo_model.RepoUnit) error {
  18. repoCnt++
  19. return nil
  20. })
  21. assert.NoError(t, err)
  22. assert.EqualValues(t, 84, repoCnt)
  23. err = db.Iterate(db.DefaultContext, nil, func(ctx context.Context, repoUnit *repo_model.RepoUnit) error {
  24. reopUnit2 := repo_model.RepoUnit{ID: repoUnit.ID}
  25. has, err := db.GetByBean(ctx, &reopUnit2)
  26. if err != nil {
  27. return err
  28. } else if !has {
  29. return db.ErrNotExist{Resource: "repo_unit", ID: repoUnit.ID}
  30. }
  31. assert.EqualValues(t, repoUnit.RepoID, repoUnit.RepoID)
  32. assert.EqualValues(t, repoUnit.CreatedUnix, repoUnit.CreatedUnix)
  33. return nil
  34. })
  35. assert.NoError(t, err)
  36. }