Codebase list golang-github-cenkalti-backoff / e681597e-85d3-40f1-b31d-212b5641be52/main backoff_test.go
e681597e-85d3-40f1-b31d-212b5641be52/main

Tree @e681597e-85d3-40f1-b31d-212b5641be52/main (Download .tar.gz)

backoff_test.go @e681597e-85d3-40f1-b31d-212b5641be52/mainraw · history · blame

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