| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
- package main
- import (
- "testing"
- "time"
- )
- // mustParseTime parses a time string using the time.RFC3339 format, or panics.
- func mustParseTime(value string) time.Time {
- t, err := time.Parse(time.RFC3339, value)
- if err != nil {
- panic(err)
- }
- return t
- }
- func TestParseRetryAfter(t *testing.T) {
- now := mustParseTime("2000-01-01T06:00:00Z")
- for _, test := range []struct {
- value string
- expected string
- }{
- {"", "error"},
- {"0", now.Format(time.RFC3339)},
- {"100", "2000-01-01T06:01:40Z"},
- {"0100", "2000-01-01T06:01:40Z"},
- {"-100", "error"},
- {"9999999999999", "error"},
- {"Fri, 31 Dec 1999 23:59:59 GMT", "1999-12-31T23:59:59Z"},
- {"xxx", "error"},
- } {
- result, err := parseRetryAfter(test.value, now)
- if test.expected == "error" {
- if err == nil {
- t.Errorf("%+q returned (%v, %v), expected error",
- test.value, result.Format(time.RFC3339), err)
- }
- } else {
- expectedResult := mustParseTime(test.expected)
- if err != nil || result != expectedResult {
- t.Errorf("%+q returned (%v, %v), expected (%v, %v)",
- test.value, result.Format(time.RFC3339),
- err, expectedResult.Format(time.RFC3339), nil)
- }
- }
- }
- }
|