p_redis_test.go 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  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, 10)
  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("default", BackendConfig{
  15. ConfigProcessors: {
  16. "redis": {
  17. "redis_interface": "127.0.0.1:6379",
  18. "redis_expire_seconds": 7200,
  19. },
  20. },
  21. ConfigGateways: {
  22. "default": {
  23. "save_process": "Hasher|Redis",
  24. },
  25. },
  26. }, l)
  27. if err != nil {
  28. t.Error(err)
  29. return
  30. }
  31. err = g.Start()
  32. if err != nil {
  33. t.Error(err)
  34. return
  35. }
  36. defer func() {
  37. err := g.Shutdown()
  38. if err != nil {
  39. t.Error(err)
  40. }
  41. }()
  42. if gateway, ok := g.(*BackendGateway); ok {
  43. r := gateway.Process(e)
  44. if strings.Index(r.String(), "250 2.0.0 OK") == -1 {
  45. t.Error("redis processor didn't result with expected result, it said", r)
  46. }
  47. }
  48. // check the log
  49. if _, err := os.Stat("./test_redis.log"); err != nil {
  50. t.Error(err)
  51. return
  52. }
  53. if b, err := ioutil.ReadFile("./test_redis.log"); err != nil {
  54. t.Error(err)
  55. return
  56. } else {
  57. if strings.Index(string(b), "SETEX") == -1 {
  58. t.Error("Log did not contain SETEX, the log was: ", string(b))
  59. }
  60. }
  61. if err := os.Remove("./test_redis.log"); err != nil {
  62. t.Error(err)
  63. }
  64. }