package throttling

import (
	"os"
	"testing"
	"time"
)

type testClock struct {
	now time.Time
}

func (t *testClock) time() time.Time {
	return t.now
}

// Set this value to obtain a new value for the current time.
// This allows testing various scenario's with timing.
//
// Simply:    currentTime.now = ....
var currentTime = &testClock{}

func TestMain(m *testing.M) {
	oldclock := clock
	clock = currentTime
	exitCode := m.Run()
	clock = oldclock
	os.Exit(exitCode)
}