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.

engine_test.go 1.6KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. // Copyright 2019 The Gitea Authors. All rights reserved.
  2. // SPDX-License-Identifier: MIT
  3. package db_test
  4. import (
  5. "path/filepath"
  6. "testing"
  7. "code.gitea.io/gitea/models/db"
  8. issues_model "code.gitea.io/gitea/models/issues"
  9. "code.gitea.io/gitea/models/unittest"
  10. "code.gitea.io/gitea/modules/setting"
  11. "github.com/stretchr/testify/assert"
  12. )
  13. func TestDumpDatabase(t *testing.T) {
  14. assert.NoError(t, unittest.PrepareTestDatabase())
  15. dir := t.TempDir()
  16. type Version struct {
  17. ID int64 `xorm:"pk autoincr"`
  18. Version int64
  19. }
  20. assert.NoError(t, db.GetEngine(db.DefaultContext).Sync2(new(Version)))
  21. for _, dbType := range setting.SupportedDatabaseTypes {
  22. assert.NoError(t, db.DumpDatabase(filepath.Join(dir, dbType+".sql"), dbType))
  23. }
  24. }
  25. func TestDeleteOrphanedObjects(t *testing.T) {
  26. assert.NoError(t, unittest.PrepareTestDatabase())
  27. countBefore, err := db.GetEngine(db.DefaultContext).Count(&issues_model.PullRequest{})
  28. assert.NoError(t, err)
  29. _, err = db.GetEngine(db.DefaultContext).Insert(&issues_model.PullRequest{IssueID: 1000}, &issues_model.PullRequest{IssueID: 1001}, &issues_model.PullRequest{IssueID: 1003})
  30. assert.NoError(t, err)
  31. orphaned, err := db.CountOrphanedObjects(db.DefaultContext, "pull_request", "issue", "pull_request.issue_id=issue.id")
  32. assert.NoError(t, err)
  33. assert.EqualValues(t, 3, orphaned)
  34. err = db.DeleteOrphanedObjects(db.DefaultContext, "pull_request", "issue", "pull_request.issue_id=issue.id")
  35. assert.NoError(t, err)
  36. countAfter, err := db.GetEngine(db.DefaultContext).Count(&issues_model.PullRequest{})
  37. assert.NoError(t, err)
  38. assert.EqualValues(t, countBefore, countAfter)
  39. }