Files
nmon/internal/clock/clock_test.go

32 lines
589 B
Go

package clock
import (
"testing"
"time"
)
func TestFakeAdvanceFiresInOrder(t *testing.T) {
f := NewFake(time.Unix(0, 0))
a := f.After(2 * time.Second)
tk := f.NewTicker(time.Second)
defer tk.Stop()
f.Advance(1500 * time.Millisecond)
select {
case <-tk.C():
default:
t.Fatal("ticker should have fired at 1s")
}
select {
case <-a:
t.Fatal("After(2s) fired early")
default:
}
f.Advance(time.Second)
if got := <-a; !got.Equal(time.Unix(2, 0)) {
t.Fatalf("After fired at %v", got)
}
if !f.Now().Equal(time.Unix(2, 500_000_000)) {
t.Fatalf("now = %v", f.Now())
}
}