bloom_test.go 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. package bloom
  2. import (
  3. "testing"
  4. "github.com/alicebob/miniredis"
  5. "github.com/stretchr/testify/assert"
  6. "github.com/tal-tech/go-zero/core/stores/redis"
  7. )
  8. func TestRedisBitSet_New_Set_Test(t *testing.T) {
  9. s, err := miniredis.Run()
  10. if err != nil {
  11. t.Error("Miniredis could not start")
  12. }
  13. defer s.Close()
  14. store := redis.NewRedis(s.Addr(), redis.NodeType)
  15. bitSet := newRedisBitSet(store, "test_key", 1024)
  16. isSetBefore, err := bitSet.check([]uint{0})
  17. if err != nil {
  18. t.Fatal(err)
  19. }
  20. if isSetBefore {
  21. t.Fatal("Bit should not be set")
  22. }
  23. err = bitSet.set([]uint{512})
  24. if err != nil {
  25. t.Fatal(err)
  26. }
  27. isSetAfter, err := bitSet.check([]uint{512})
  28. if err != nil {
  29. t.Fatal(err)
  30. }
  31. if !isSetAfter {
  32. t.Fatal("Bit should be set")
  33. }
  34. err = bitSet.expire(3600)
  35. if err != nil {
  36. t.Fatal(err)
  37. }
  38. err = bitSet.del()
  39. if err != nil {
  40. t.Fatal(err)
  41. }
  42. }
  43. func TestRedisBitSet_Add(t *testing.T) {
  44. s, err := miniredis.Run()
  45. if err != nil {
  46. t.Error("Miniredis could not start")
  47. }
  48. defer s.Close()
  49. store := redis.NewRedis(s.Addr(), redis.NodeType)
  50. filter := New(store, "test_key", 64)
  51. assert.Nil(t, filter.Add([]byte("hello")))
  52. assert.Nil(t, filter.Add([]byte("world")))
  53. ok, err := filter.Exists([]byte("hello"))
  54. assert.Nil(t, err)
  55. assert.True(t, ok)
  56. }