p_redis_test.go 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. package backends
  2. import (
  3. "github.com/flashmob/go-guerrilla/log"
  4. "github.com/flashmob/go-guerrilla/mail"
  5. "io/ioutil"
  6. "os"
  7. "strings"
  8. "testing"
  9. )
  10. func TestRedisGeneric(t *testing.T) {
  11. e := mail.NewEnvelope("127.0.0.1", 1)
  12. e.RcptTo = append(e.RcptTo, mail.Address{User: "test", Host: "grr.la"})
  13. l, _ := log.GetLogger("./test_redis.log", "debug")
  14. g, err := New(BackendConfig{
  15. "save_process": "Hasher|Redis",
  16. "redis_interface": "127.0.0.1:6379",
  17. "redis_expire_seconds": 7200,
  18. }, l)
  19. if err != nil {
  20. t.Error(err)
  21. return
  22. }
  23. err = g.Start()
  24. if err != nil {
  25. t.Error(err)
  26. return
  27. }
  28. defer func() {
  29. err := g.Shutdown()
  30. if err != nil {
  31. t.Error(err)
  32. }
  33. }()
  34. if gateway, ok := g.(*BackendGateway); ok {
  35. r := gateway.Process(e)
  36. if strings.Index(r.String(), "250 2.0.0 OK") == -1 {
  37. t.Error("redis processor didn't result with expected result, it said", r)
  38. }
  39. }
  40. // check the log
  41. if _, err := os.Stat("./test_redis.log"); err != nil {
  42. t.Error(err)
  43. return
  44. }
  45. if b, err := ioutil.ReadFile("./test_redis.log"); err != nil {
  46. t.Error(err)
  47. return
  48. } else {
  49. if strings.Index(string(b), "SETEX") == -1 {
  50. t.Error("Log did not contain SETEX, the log was: ", string(b))
  51. }
  52. }
  53. if err := os.Remove("./test_redis.log"); err != nil {
  54. t.Error(err)
  55. }
  56. }