Last active
October 10, 2015 00:38
-
-
Save mscottreed/ad1994367d5fc7688194 to your computer and use it in GitHub Desktop.
DateTimeProvider and friends
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
public abstract class DateTimeProvider | |
{ | |
public static DateTimeProvider Current = new DefaultDateTimeProvider(); | |
public abstract DateTime UtcNow { get; } | |
} | |
public class DefaultDateTimeProvider : DateTimeProvider | |
{ | |
public override DateTime UtcNow | |
{ | |
get { return DateTime.UtcNow; } | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
public class MockDateTimeContext : IDisposable | |
{ | |
public MockDateTimeContext(DateTime dateTime) | |
{ | |
DateTimeProvider.Current = new MockDateTimeProvider(dateTime); | |
} | |
public void Dispose() | |
{ | |
DateTimeProvider.Current = new DefaultDateTimeProvider(); | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
public class MockDateTimeProvider : DateTimeProvider | |
{ | |
private readonly DateTime dateTime; | |
public MockDateTimeProvider(DateTime dateTime) | |
{ | |
this.dateTime = dateTime; | |
} | |
public override DateTime UtcNow | |
{ | |
get { return dateTime.ToUniversalTime(); } | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment