database_storage_test.go 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. package remotecache
  2. import (
  3. "testing"
  4. "time"
  5. "github.com/grafana/grafana/pkg/log"
  6. "github.com/grafana/grafana/pkg/services/sqlstore"
  7. "github.com/stretchr/testify/assert"
  8. )
  9. func TestDatabaseStorageGarbageCollection(t *testing.T) {
  10. sqlstore := sqlstore.InitTestDB(t)
  11. db := &databaseCache{
  12. SQLStore: sqlstore,
  13. log: log.New("remotecache.database"),
  14. }
  15. obj := &CacheableStruct{String: "foolbar"}
  16. //set time.now to 2 weeks ago
  17. var err error
  18. getTime = func() time.Time { return time.Now().AddDate(0, 0, -2) }
  19. err = db.Set("key1", obj, 1000*time.Second)
  20. assert.Equal(t, err, nil)
  21. err = db.Set("key2", obj, 1000*time.Second)
  22. assert.Equal(t, err, nil)
  23. err = db.Set("key3", obj, 1000*time.Second)
  24. assert.Equal(t, err, nil)
  25. // insert object that should never expire
  26. db.Set("key4", obj, 0)
  27. getTime = time.Now
  28. db.Set("key5", obj, 1000*time.Second)
  29. //run GC
  30. db.internalRunGC()
  31. //try to read values
  32. _, err = db.Get("key1")
  33. assert.Equal(t, err, ErrCacheItemNotFound, "expected cache item not found. got: ", err)
  34. _, err = db.Get("key2")
  35. assert.Equal(t, err, ErrCacheItemNotFound)
  36. _, err = db.Get("key3")
  37. assert.Equal(t, err, ErrCacheItemNotFound)
  38. _, err = db.Get("key4")
  39. assert.Equal(t, err, nil)
  40. _, err = db.Get("key5")
  41. assert.Equal(t, err, nil)
  42. }
  43. func TestSecondSet(t *testing.T) {
  44. var err error
  45. sqlstore := sqlstore.InitTestDB(t)
  46. db := &databaseCache{
  47. SQLStore: sqlstore,
  48. log: log.New("remotecache.database"),
  49. }
  50. obj := &CacheableStruct{String: "hey!"}
  51. err = db.Set("killa-gorilla", obj, 0)
  52. assert.Equal(t, err, nil)
  53. err = db.Set("killa-gorilla", obj, 0)
  54. assert.Equal(t, err, nil)
  55. }