package scrobble

import (
	"testing"
	"time"
)

func TestBackoffDelay(t *testing.T) {
	cases := []struct {
		attempts int
		want     time.Duration
		ok       bool
	}{
		{1, 1 * time.Minute, true},
		{2, 5 * time.Minute, true},
		{3, 30 * time.Minute, true},
		{4, 2 * time.Hour, true},
		{5, 6 * time.Hour, true},
		{6, 0, false},
		{99, 0, false},
	}
	for _, c := range cases {
		got, ok := backoffDelay(c.attempts)
		if ok != c.ok {
			t.Errorf("backoffDelay(%d) ok = %v, want %v", c.attempts, ok, c.ok)
		}
		if got != c.want {
			t.Errorf("backoffDelay(%d) = %v, want %v", c.attempts, got, c.want)
		}
	}
}
