option_test.go 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. package cron
  2. import (
  3. "bytes"
  4. "log"
  5. "strings"
  6. "testing"
  7. "time"
  8. )
  9. func TestWithLocation(t *testing.T) {
  10. c := New(WithLocation(time.UTC))
  11. if c.location != time.UTC {
  12. t.Errorf("expected UTC, got %v", c.location)
  13. }
  14. }
  15. func TestWithParser(t *testing.T) {
  16. var parser = NewParser(Dow)
  17. c := New(WithParser(parser))
  18. if c.parser != parser {
  19. t.Error("expected provided parser")
  20. }
  21. }
  22. func TestWithPanicLogger(t *testing.T) {
  23. var b bytes.Buffer
  24. var logger = log.New(&b, "", log.LstdFlags)
  25. c := New(WithPanicLogger(logger))
  26. if c.logger.(printfLogger).logger != logger {
  27. t.Error("expected provided logger")
  28. }
  29. }
  30. func TestWithVerboseLogger(t *testing.T) {
  31. var buf syncWriter
  32. var logger = log.New(&buf, "", log.LstdFlags)
  33. c := New(WithLogger(VerbosePrintfLogger(logger)))
  34. if c.logger.(printfLogger).logger != logger {
  35. t.Error("expected provided logger")
  36. }
  37. c.AddFunc("@every 1s", func() {})
  38. c.Start()
  39. time.Sleep(OneSecond)
  40. c.Stop()
  41. out := buf.String()
  42. if !strings.Contains(out, "schedule,") ||
  43. !strings.Contains(out, "run,") {
  44. t.Error("expected to see some actions, got:", out)
  45. }
  46. }