gtime_test.go 843 B

12345678910111213141516171819202122232425262728293031323334
  1. package gtime
  2. import (
  3. "errors"
  4. "fmt"
  5. "testing"
  6. "time"
  7. )
  8. func TestParseInterval(t *testing.T) {
  9. tcs := []struct {
  10. interval string
  11. duration time.Duration
  12. err error
  13. }{
  14. {interval: "1d", duration: time.Hour * 24},
  15. {interval: "1w", duration: time.Hour * 24 * 7},
  16. {interval: "1y", duration: time.Hour * 24 * 7 * 365},
  17. {interval: "1M", err: errors.New("time: unknown unit M in duration 1M")},
  18. {interval: "invalid-duration", err: errors.New("time: invalid duration invalid-duration")},
  19. }
  20. for i, tc := range tcs {
  21. t.Run(fmt.Sprintf("testcase %d", i), func(t *testing.T) {
  22. res, err := ParseInterval(tc.interval)
  23. if err != nil && err.Error() != tc.err.Error() {
  24. t.Fatalf("expected '%v' got '%v'", tc.err, err)
  25. }
  26. if res != tc.duration {
  27. t.Errorf("expected %v got %v", tc.duration, res)
  28. }
  29. })
  30. }
  31. }