no_database_test.go 2.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. // Copyright 2021 gorse Project Authors
  2. //
  3. // Licensed under the Apache License, Version 2.0 (the "License");
  4. // you may not use this file except in compliance with the License.
  5. // You may obtain a copy of the License at
  6. //
  7. // http://www.apache.org/licenses/LICENSE-2.0
  8. //
  9. // Unless required by applicable law or agreed to in writing, software
  10. // distributed under the License is distributed on an "AS IS" BASIS,
  11. // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  12. // See the License for the specific language governing permissions and
  13. // limitations under the License.
  14. package data
  15. import (
  16. "context"
  17. "testing"
  18. "time"
  19. "github.com/samber/lo"
  20. "github.com/stretchr/testify/assert"
  21. )
  22. func TestNoDatabase(t *testing.T) {
  23. ctx := context.Background()
  24. var database NoDatabase
  25. err := database.Close()
  26. assert.ErrorIs(t, err, ErrNoDatabase)
  27. err = database.Init()
  28. assert.ErrorIs(t, err, ErrNoDatabase)
  29. err = database.Ping()
  30. assert.ErrorIs(t, err, ErrNoDatabase)
  31. err = database.Purge()
  32. assert.ErrorIs(t, err, ErrNoDatabase)
  33. err = database.BatchInsertItems(ctx, nil)
  34. assert.ErrorIs(t, err, ErrNoDatabase)
  35. _, err = database.BatchGetItems(ctx, nil)
  36. assert.ErrorIs(t, err, ErrNoDatabase)
  37. err = database.ModifyItem(ctx, "", ItemPatch{})
  38. assert.ErrorIs(t, err, ErrNoDatabase)
  39. _, err = database.GetItem(ctx, "")
  40. assert.ErrorIs(t, err, ErrNoDatabase)
  41. _, _, err = database.GetItems(ctx, "", 0, nil)
  42. assert.ErrorIs(t, err, ErrNoDatabase)
  43. err = database.DeleteItem(ctx, "")
  44. assert.ErrorIs(t, err, ErrNoDatabase)
  45. _, c := database.GetItemStream(ctx, 0, nil)
  46. assert.ErrorIs(t, <-c, ErrNoDatabase)
  47. err = database.BatchInsertUsers(ctx, nil)
  48. assert.ErrorIs(t, err, ErrNoDatabase)
  49. _, err = database.GetUser(ctx, "")
  50. assert.ErrorIs(t, err, ErrNoDatabase)
  51. err = database.ModifyUser(ctx, "", UserPatch{})
  52. assert.ErrorIs(t, err, ErrNoDatabase)
  53. _, _, err = database.GetUsers(ctx, "", 0)
  54. assert.ErrorIs(t, err, ErrNoDatabase)
  55. err = database.DeleteUser(ctx, "")
  56. assert.ErrorIs(t, err, ErrNoDatabase)
  57. _, c = database.GetUserStream(ctx, 0)
  58. assert.ErrorIs(t, <-c, ErrNoDatabase)
  59. err = database.BatchInsertFeedback(ctx, nil, false, false, false)
  60. assert.ErrorIs(t, err, ErrNoDatabase)
  61. err = database.BatchInsertFeedback(ctx, nil, false, false, false)
  62. assert.ErrorIs(t, err, ErrNoDatabase)
  63. _, err = database.GetUserFeedback(ctx, "", lo.ToPtr(time.Now()))
  64. assert.ErrorIs(t, err, ErrNoDatabase)
  65. _, err = database.GetItemFeedback(ctx, "")
  66. assert.ErrorIs(t, err, ErrNoDatabase)
  67. _, _, err = database.GetFeedback(ctx, "", 0, nil, lo.ToPtr(time.Now()))
  68. assert.ErrorIs(t, err, ErrNoDatabase)
  69. _, err = database.GetUserItemFeedback(ctx, "", "")
  70. assert.ErrorIs(t, err, ErrNoDatabase)
  71. _, err = database.DeleteUserItemFeedback(ctx, "", "")
  72. assert.ErrorIs(t, err, ErrNoDatabase)
  73. _, c = database.GetFeedbackStream(ctx, 0)
  74. assert.ErrorIs(t, <-c, ErrNoDatabase)
  75. }