gtime_test.go 957 B

123456789101112131415161718192021222324252627282930313233343536
  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: "2w", duration: time.Hour * 24 * 7 * 2},
  17. {interval: "1y", duration: time.Hour * 24 * 7 * 365},
  18. {interval: "5y", duration: time.Hour * 24 * 7 * 365 * 5},
  19. {interval: "1M", err: errors.New("time: unknown unit M in duration 1M")},
  20. {interval: "invalid-duration", err: errors.New("time: invalid duration invalid-duration")},
  21. }
  22. for i, tc := range tcs {
  23. t.Run(fmt.Sprintf("testcase %d", i), func(t *testing.T) {
  24. res, err := ParseInterval(tc.interval)
  25. if err != nil && err.Error() != tc.err.Error() {
  26. t.Fatalf("expected '%v' got '%v'", tc.err, err)
  27. }
  28. if res != tc.duration {
  29. t.Errorf("expected %v got %v", tc.duration, res)
  30. }
  31. })
  32. }
  33. }