This repository was archived by the owner on May 18, 2023. It is now read-only.

Description
The standard library versions of these behave monotonic, meaning that if I change the system clock while the program is running time.After and time.Timer still fire after the time I programmed them to. The mocked variants don't behave this way:
now := time.Now()
mClock := clock.NewMock()
mClock.Set(now)
ch := mClock.After(10 * time.Second)
mClock.Set(now.Add(-1 * time.Minute))
mClock.Add(15 * time.Second)
select {
case <-ch:
fmt.Println("it works!")
default:
fmt.Println("mocked After is not monotonic")
}