@@ -16,29 +16,25 @@ dotnet add package HeboTech.TimeService
16
16
Example usage in production code
17
17
``` csharp
18
18
// Set up during application startup
19
- TimeService .SetProvider ( new SystemTimeProvider () );
19
+ TimeService .Set ( TimeProviders . SystemTime );
20
20
21
21
// Use as a static service
22
- DateTime time = TimeService .UtcNow ;
22
+ DateTime time = TimeService .Now ;
23
23
```
24
24
25
25
Example usage when running unit tests
26
26
``` csharp
27
- // Set up during test initialization
28
- DateTime testTime = new DateTime (2020 , 1 , 1 , 12 , 0 , 0 , DateTimeKind .Utc );
29
- ManualTimeProvider testProvider = new ManualTimeProvider (testTime );
30
- TimeService .SetProvider (testProvider );
31
-
32
- // Unit testing:
27
+ // Set the time
28
+ DateTime startTime = new DateTime (2020 , 1 , 2 );
29
+ TimeService .Set (() => startTime );
33
30
34
31
// TimeService returns the set time
35
- Assert .AreEqual (testTime , TimeService .UtcNow );
32
+ Assert .AreEqual (startTime , TimeService .Now );
36
33
37
- // Add a TimeSpan to the current time
38
- testProvider .Elapse (TimeSpan .FromDays (1 ));
34
+ // Set a new time
35
+ DateTime newTime = new DateTime (2021 , 2 , 3 );
36
+ TimeService .Set (() => newTime );
39
37
40
38
// TimeService returns the new time
41
- Assert .AreEqual ( testTime . AddDays ( 1 ) , TimeService .UtcNow );
39
+ Assert .Equal ( newTime , TimeService .Now );
42
40
```
43
- ## Building
44
- Note that Git is required in the path to build the project from source because of a NuGet package used for versioning.
0 commit comments