28 lines
601 B
Go
28 lines
601 B
Go
package backoff
|
|
|
|
import (
|
|
"testing"
|
|
"time"
|
|
)
|
|
|
|
func TestNextBackOffMillis(t *testing.T) {
|
|
subtestNextBackOff(t, 0, new(ZeroBackOff))
|
|
subtestNextBackOff(t, Stop, new(StopBackOff))
|
|
}
|
|
|
|
func subtestNextBackOff(t *testing.T, expectedValue time.Duration, backOffPolicy BackOff) {
|
|
for i := 0; i < 10; i++ {
|
|
next := backOffPolicy.NextBackOff()
|
|
if next != expectedValue {
|
|
t.Errorf("got: %d expected: %d", next, expectedValue)
|
|
}
|
|
}
|
|
}
|
|
|
|
func TestConstantBackOff(t *testing.T) {
|
|
backoff := NewConstantBackOff(time.Second)
|
|
if backoff.NextBackOff() != time.Second {
|
|
t.Error("invalid interval")
|
|
}
|
|
}
|