gitea源码

v181_test.go 1.3KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. // Copyright 2021 The Gitea Authors. All rights reserved.
  2. // SPDX-License-Identifier: MIT
  3. package v1_15
  4. import (
  5. "strings"
  6. "testing"
  7. "code.gitea.io/gitea/models/migrations/base"
  8. "github.com/stretchr/testify/assert"
  9. )
  10. func Test_AddPrimaryEmail2EmailAddress(t *testing.T) {
  11. type User struct {
  12. ID int64
  13. Email string
  14. IsActive bool
  15. }
  16. // Prepare and load the testing database
  17. x, deferable := base.PrepareTestEnv(t, 0, new(User))
  18. if x == nil || t.Failed() {
  19. defer deferable()
  20. return
  21. }
  22. defer deferable()
  23. err := AddPrimaryEmail2EmailAddress(x)
  24. assert.NoError(t, err)
  25. type EmailAddress struct {
  26. ID int64 `xorm:"pk autoincr"`
  27. UID int64 `xorm:"INDEX NOT NULL"`
  28. Email string `xorm:"UNIQUE NOT NULL"`
  29. LowerEmail string `xorm:"UNIQUE NOT NULL"`
  30. IsActivated bool
  31. IsPrimary bool `xorm:"DEFAULT(false) NOT NULL"`
  32. }
  33. users := make([]User, 0, 20)
  34. err = x.Find(&users)
  35. assert.NoError(t, err)
  36. for _, user := range users {
  37. var emailAddress EmailAddress
  38. has, err := x.Where("lower_email=?", strings.ToLower(user.Email)).Get(&emailAddress)
  39. assert.NoError(t, err)
  40. assert.True(t, has)
  41. assert.True(t, emailAddress.IsPrimary)
  42. assert.Equal(t, user.IsActive, emailAddress.IsActivated)
  43. assert.Equal(t, user.ID, emailAddress.UID)
  44. }
  45. }