mirror of
https://github.com/tladesignz/dnstt.git
synced 2026-09-29 18:38:09 +03:00
48 lines
1.1 KiB
Go
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)
|
|
}
|
|
}
|
|
}
|
|
}
|