p_redis_test.go 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  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 g.Shutdown()
  29. if gateway, ok := g.(*BackendGateway); ok {
  30. r := gateway.Process(e)
  31. if strings.Index(r.String(), "250 2.0.0 OK") == -1 {
  32. t.Error("redis processor didn't result with expected result, it said", r)
  33. }
  34. }
  35. // check the log
  36. if _, err := os.Stat("./test_redis.log"); err != nil {
  37. t.Error(err)
  38. return
  39. }
  40. if b, err := ioutil.ReadFile("./test_redis.log"); err != nil {
  41. t.Error(err)
  42. return
  43. } else {
  44. if strings.Index(string(b), "SETEX") == -1 {
  45. t.Error("Log did not contain SETEX, the log was: ", string(b))
  46. }
  47. }
  48. os.Remove("./test_redis.log")
  49. }