package gocron

import 

var _ TimeWrapper = (*trueTime)(nil)

// TimeWrapper is an interface that wraps the Now, Sleep, and Unix methods of the time package.
// This allows the library and users to mock the time package for testing.
type TimeWrapper interface {
	Now(*time.Location) time.Time
	Unix(int64, int64) time.Time
	Sleep(time.Duration)
}

type trueTime struct{}

func ( *trueTime) ( *time.Location) time.Time {
	return time.Now().In()
}

func ( *trueTime) ( int64,  int64) time.Time {
	return time.Unix(, )
}

func ( *trueTime) ( time.Duration) {
	time.Sleep()
}

// afterFunc proxies the time.AfterFunc function.
// This allows it to be mocked for testing.
func afterFunc( time.Duration,  func()) *time.Timer {
	return time.AfterFunc(, )
}