/// <summary>
 /// Start using a new time provider in a using block
 /// </summary>
 /// <param name="newTimeProvider">The new time provider to use</param>
 /// <returns>An IDisposable that will revert to the old time provider when disposed</returns>
 public static IDisposable StartUsing(TimeProvider newTimeProvider)
 {
     return(new TimeProviderDisposable(newTimeProvider));
 }
 public TimeProviderDisposable(TimeProvider newTimeProvider)
 {
     this.pushed          = TimeProvider.Current;
     TimeProvider.Current = newTimeProvider;
 }