bloom_test.go 1.1 KB

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