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  }