...
1 package sdk
2
3 import (
4 "context"
5 "time"
6 )
7
8 func init() {
9 NowTime = time.Now
10 Sleep = time.Sleep
11 SleepWithContext = sleepWithContext
12 }
13
14
15
16 var NowTime func() time.Time
17
18
19
20 var Sleep func(time.Duration)
21
22
23
24
25
26
27 var SleepWithContext func(context.Context, time.Duration) error
28
29
30
31
32 func sleepWithContext(ctx context.Context, dur time.Duration) error {
33 t := time.NewTimer(dur)
34 defer t.Stop()
35
36 select {
37 case <-t.C:
38 break
39 case <-ctx.Done():
40 return ctx.Err()
41 }
42
43 return nil
44 }
45
46
47 func noOpSleepWithContext(context.Context, time.Duration) error {
48 return nil
49 }
50
51 func noOpSleep(time.Duration) {}
52
53
54
55 func TestingUseNopSleep() func() {
56 SleepWithContext = noOpSleepWithContext
57 Sleep = noOpSleep
58
59 return func() {
60 SleepWithContext = sleepWithContext
61 Sleep = time.Sleep
62 }
63 }
64
65
66
67 func TestingUseReferenceTime(referenceTime time.Time) func() {
68 NowTime = func() time.Time {
69 return referenceTime
70 }
71 return func() {
72 NowTime = time.Now
73 }
74 }
75
View as plain text