github.com/gogf/gf@v1.16.9/os/gtimer/gtimer_z_unit_api_test.go (about) 1 // Copyright GoFrame Author(https://goframe.org). All Rights Reserved. 2 // 3 // This Source Code Form is subject to the terms of the MIT License. 4 // If a copy of the MIT was not distributed with this file, 5 // You can obtain one at https://github.com/gogf/gf. 6 7 // Package functions 8 9 package gtimer_test 10 11 import ( 12 "testing" 13 "time" 14 15 "github.com/gogf/gf/container/garray" 16 "github.com/gogf/gf/os/gtimer" 17 "github.com/gogf/gf/test/gtest" 18 ) 19 20 func TestSetTimeout(t *testing.T) { 21 gtest.C(t, func(t *gtest.T) { 22 array := garray.New(true) 23 gtimer.SetTimeout(200*time.Millisecond, func() { 24 array.Append(1) 25 }) 26 time.Sleep(1000 * time.Millisecond) 27 t.Assert(array.Len(), 1) 28 }) 29 } 30 31 func TestSetInterval(t *testing.T) { 32 gtest.C(t, func(t *gtest.T) { 33 array := garray.New(true) 34 gtimer.SetInterval(300*time.Millisecond, func() { 35 array.Append(1) 36 }) 37 time.Sleep(1000 * time.Millisecond) 38 t.Assert(array.Len(), 3) 39 }) 40 } 41 42 func TestAddEntry(t *testing.T) { 43 gtest.C(t, func(t *gtest.T) { 44 array := garray.New(true) 45 gtimer.AddEntry(200*time.Millisecond, func() { 46 array.Append(1) 47 }, false, 2, gtimer.StatusReady) 48 time.Sleep(1100 * time.Millisecond) 49 t.Assert(array.Len(), 2) 50 }) 51 } 52 53 func TestAddSingleton(t *testing.T) { 54 gtest.C(t, func(t *gtest.T) { 55 array := garray.New(true) 56 gtimer.AddSingleton(200*time.Millisecond, func() { 57 array.Append(1) 58 time.Sleep(10000 * time.Millisecond) 59 }) 60 time.Sleep(1100 * time.Millisecond) 61 t.Assert(array.Len(), 1) 62 }) 63 } 64 65 func TestAddTimes(t *testing.T) { 66 gtest.C(t, func(t *gtest.T) { 67 array := garray.New(true) 68 gtimer.AddTimes(200*time.Millisecond, 2, func() { 69 array.Append(1) 70 }) 71 time.Sleep(1000 * time.Millisecond) 72 t.Assert(array.Len(), 2) 73 }) 74 } 75 76 func TestDelayAdd(t *testing.T) { 77 gtest.C(t, func(t *gtest.T) { 78 array := garray.New(true) 79 gtimer.DelayAdd(500*time.Millisecond, 500*time.Millisecond, func() { 80 array.Append(1) 81 }) 82 time.Sleep(600 * time.Millisecond) 83 t.Assert(array.Len(), 0) 84 time.Sleep(600 * time.Millisecond) 85 t.Assert(array.Len(), 1) 86 }) 87 } 88 89 func TestDelayAddEntry(t *testing.T) { 90 gtest.C(t, func(t *gtest.T) { 91 array := garray.New(true) 92 gtimer.DelayAddEntry(200*time.Millisecond, 200*time.Millisecond, func() { 93 array.Append(1) 94 }, false, 2, gtimer.StatusReady) 95 time.Sleep(300 * time.Millisecond) 96 t.Assert(array.Len(), 0) 97 time.Sleep(1000 * time.Millisecond) 98 t.Assert(array.Len(), 2) 99 }) 100 } 101 102 func TestDelayAddSingleton(t *testing.T) { 103 gtest.C(t, func(t *gtest.T) { 104 array := garray.New(true) 105 gtimer.DelayAddSingleton(500*time.Millisecond, 500*time.Millisecond, func() { 106 array.Append(1) 107 time.Sleep(10000 * time.Millisecond) 108 }) 109 time.Sleep(300 * time.Millisecond) 110 t.Assert(array.Len(), 0) 111 time.Sleep(1000 * time.Millisecond) 112 t.Assert(array.Len(), 1) 113 }) 114 } 115 116 func TestDelayAddOnce(t *testing.T) { 117 gtest.C(t, func(t *gtest.T) { 118 array := garray.New(true) 119 gtimer.DelayAddOnce(200*time.Millisecond, 200*time.Millisecond, func() { 120 array.Append(1) 121 }) 122 time.Sleep(300 * time.Millisecond) 123 t.Assert(array.Len(), 0) 124 time.Sleep(1000 * time.Millisecond) 125 t.Assert(array.Len(), 1) 126 }) 127 } 128 129 func TestDelayAddTimes(t *testing.T) { 130 gtest.C(t, func(t *gtest.T) { 131 array := garray.New(true) 132 gtimer.DelayAddTimes(500*time.Millisecond, 500*time.Millisecond, 2, func() { 133 array.Append(1) 134 }) 135 time.Sleep(300 * time.Millisecond) 136 t.Assert(array.Len(), 0) 137 time.Sleep(1500 * time.Millisecond) 138 t.Assert(array.Len(), 2) 139 }) 140 }