login_source_files_test.go 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. // Copyright 2020 The Gogs 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 db
  5. import (
  6. "testing"
  7. "time"
  8. "github.com/stretchr/testify/assert"
  9. "gogs.io/gogs/internal/errutil"
  10. )
  11. func Test_loginSourceFiles_GetByID(t *testing.T) {
  12. store := &loginSourceFiles{
  13. sources: []*LoginSource{
  14. {ID: 101},
  15. },
  16. }
  17. t.Run("source does not exist", func(t *testing.T) {
  18. _, err := store.GetByID(1)
  19. expErr := ErrLoginSourceNotExist{args: errutil.Args{"id": int64(1)}}
  20. assert.Equal(t, expErr, err)
  21. })
  22. t.Run("source exists", func(t *testing.T) {
  23. source, err := store.GetByID(101)
  24. if err != nil {
  25. t.Fatal(err)
  26. }
  27. assert.Equal(t, int64(101), source.ID)
  28. })
  29. }
  30. func Test_loginSourceFiles_Len(t *testing.T) {
  31. store := &loginSourceFiles{
  32. sources: []*LoginSource{
  33. {ID: 101},
  34. },
  35. }
  36. assert.Equal(t, 1, store.Len())
  37. }
  38. func Test_loginSourceFiles_List(t *testing.T) {
  39. store := &loginSourceFiles{
  40. sources: []*LoginSource{
  41. {ID: 101, IsActived: true},
  42. {ID: 102, IsActived: false},
  43. },
  44. }
  45. t.Run("list all sources", func(t *testing.T) {
  46. sources := store.List(ListLoginSourceOpts{})
  47. assert.Equal(t, 2, len(sources), "number of sources")
  48. })
  49. t.Run("list only activated sources", func(t *testing.T) {
  50. sources := store.List(ListLoginSourceOpts{OnlyActivated: true})
  51. assert.Equal(t, 1, len(sources), "number of sources")
  52. assert.Equal(t, int64(101), sources[0].ID)
  53. })
  54. }
  55. func Test_loginSourceFiles_Update(t *testing.T) {
  56. store := &loginSourceFiles{
  57. sources: []*LoginSource{
  58. {ID: 101, IsActived: true, IsDefault: true},
  59. {ID: 102, IsActived: false},
  60. },
  61. clock: time.Now,
  62. }
  63. source102 := &LoginSource{
  64. ID: 102,
  65. IsActived: true,
  66. IsDefault: true,
  67. }
  68. store.Update(source102)
  69. assert.False(t, store.sources[0].IsDefault)
  70. assert.True(t, store.sources[1].IsActived)
  71. assert.True(t, store.sources[1].IsDefault)
  72. }