Files
tladesignz_dnstt/dnstt-client/http_test.go
T

48 lines
1.1 KiB
Go

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)
}
}
}
}