12345678910111213141516171819202122232425262728293031323334353637383940414243 |
- package timex
- import (
- "sync/atomic"
- "testing"
- "time"
- "github.com/stretchr/testify/assert"
- )
- func TestRealTickerDoTick(t *testing.T) {
- ticker := NewTicker(time.Millisecond * 10)
- defer ticker.Stop()
- var count int
- for range ticker.Chan() {
- count++
- if count > 5 {
- break
- }
- }
- }
- func TestFakeTicker(t *testing.T) {
- const total = 5
- ticker := NewFakeTicker()
- defer ticker.Stop()
- var count int32
- go func() {
- for range ticker.Chan() {
- if atomic.AddInt32(&count, 1) == total {
- ticker.Done()
- }
- }
- }()
- for i := 0; i < 5; i++ {
- ticker.Tick()
- }
- assert.Nil(t, ticker.Wait(time.Second))
- assert.Equal(t, int32(total), atomic.LoadInt32(&count))
- }
|