Sha256: 9a6594922bcac4e87a3ae6c4b08019c4ad99b17ac0871e595f787f5806a2eb62
Contents?: true
Size: 1.87 KB
Versions: 16
Compression:
Stored size: 1.87 KB
Contents
package sdk import ( "context" "time" ) func init() { NowTime = time.Now Sleep = time.Sleep SleepWithContext = sleepWithContext } // NowTime is a value for getting the current time. This value can be overridden // for testing mocking out current time. var NowTime func() time.Time // Sleep is a value for sleeping for a duration. This value can be overridden // for testing and mocking out sleep duration. var Sleep func(time.Duration) // SleepWithContext will wait for the timer duration to expire, or the context // is canceled. Which ever happens first. If the context is canceled the Context's // error will be returned. // // This value can be overridden for testing and mocking out sleep duration. var SleepWithContext func(context.Context, time.Duration) error // sleepWithContext will wait for the timer duration to expire, or the context // is canceled. Which ever happens first. If the context is canceled the // Context's error will be returned. func sleepWithContext(ctx context.Context, dur time.Duration) error { t := time.NewTimer(dur) defer t.Stop() select { case <-t.C: break case <-ctx.Done(): return ctx.Err() } return nil } // noOpSleepWithContext does nothing, returns immediately. func noOpSleepWithContext(context.Context, time.Duration) error { return nil } func noOpSleep(time.Duration) {} // TestingUseNopSleep is a utility for disabling sleep across the SDK for // testing. func TestingUseNopSleep() func() { SleepWithContext = noOpSleepWithContext Sleep = noOpSleep return func() { SleepWithContext = sleepWithContext Sleep = time.Sleep } } // TestingUseReferenceTime is a utility for swapping the time function across the SDK to return a specific reference time // for testing purposes. func TestingUseReferenceTime(referenceTime time.Time) func() { NowTime = func() time.Time { return referenceTime } return func() { NowTime = time.Now } }
Version data entries
16 entries across 16 versions & 1 rubygems