-
Notifications
You must be signed in to change notification settings - Fork 0
/
Extensions.cs
32 lines (29 loc) · 1.27 KB
/
Extensions.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
using Xunit.Abstractions;
namespace Mbican.DotnetSnippets
{
public static class Extensions
{
/// <summary>
/// Returns test case context
/// </summary>
public static ITest GetTest(this ITestOutputHelper testOutputHelper)
{
// source: https://github.com/xunit/xunit/issues/416
var type = testOutputHelper.GetType();
var testMember = type.GetField("test", System.Reflection.BindingFlags.Instance | System.Reflection.BindingFlags.NonPublic);
return (ITest)testMember.GetValue(testOutputHelper);
}
/// <summary>
/// Resets time portion of <paramref name="dateTimeOffset"/> to 00:00 (midnight) and keeps offset
/// </summary>
public static DateTimeOffset ToDateOffset(this DateTimeOffset dateTimeOffset)
=> new DateTimeOffset(dateTimeOffset.DateTime.Date, dateTimeOffset.Offset);
/// <summary>
/// Resets time portion of <paramref name="dateTimeOffset"/> to 00:00 (midnight) and keeps offset
/// </summary>
public static DateTimeOffset? ToDateOffset(this DateTimeOffset? dateTimeOffset)
=> dateTimeOffset.HasValue
? dateTimeOffset.Value.ToDateOffset()
: (DateTimeOffset?)null;
}
}