Skip to content

Commit 7b512db

Browse files
committed
Extract GetConvertedDateTimeOffset rename RoundToSeconds. Make Test dates static value.
1 parent 2688709 commit 7b512db

File tree

6 files changed

+86
-111
lines changed

6 files changed

+86
-111
lines changed

tests/FluentAssertions.AspNetCore.Mvc.Tests/ChallengeResultAssertions_Tests.cs

Lines changed: 19 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ public class ChallengeResultAssertions_Tests
1313
{
1414
public const string Reason = FailureMessageHelper.Reason;
1515
public readonly static object[] ReasonArgs = FailureMessageHelper.ReasonArgs;
16+
private readonly DateTimeOffset? TestLastModified = DateTimeOffset.Parse("2020-04-28 15:48:33.6672395 +2", CultureInfo.InvariantCulture);
1617

1718
[Fact]
1819
public void WithAuthenticationProperties_GivenExpected_ShouldPass()
@@ -107,7 +108,7 @@ public void WithRedirectUri_GivenUnexpected_ShouldFail()
107108
[Fact]
108109
public void WithIssuedUtc_GivenExpected_ShouldPass()
109110
{
110-
var actualIssuedUtc = DateTimeOffset.Now;
111+
var actualIssuedUtc = TestLastModified;
111112
var actualAuthenticationProperties = new AuthenticationProperties { IssuedUtc = actualIssuedUtc };
112113
ActionResult result = new ChallengeResult(actualAuthenticationProperties);
113114

@@ -128,12 +129,12 @@ public void WithIssuedUtc_GivenNull_ShouldPass()
128129
[Fact]
129130
public void WithIssuedUtc_GivenUnexpected_ShouldFail()
130131
{
131-
var actualIssuedUtc = DateTimeOffset.Now;
132-
var expectedIssuedUtc = DateTimeOffset.Now.AddSeconds(1);
132+
var actualIssuedUtc = TestLastModified;
133+
var expectedIssuedUtc = TestLastModified.Value.AddSeconds(1);
133134
var actualAuthenticationProperties = new AuthenticationProperties { IssuedUtc = actualIssuedUtc };
134135
ActionResult result = new ChallengeResult(actualAuthenticationProperties);
135-
var convertedExpectedIssuedUtc = GetConvertedDateTimeOffset(expectedIssuedUtc);
136-
var convertedActualIssuedUtc = GetConvertedDateTimeOffset(actualIssuedUtc);
136+
var convertedExpectedIssuedUtc = FailureMessageHelper.RoundToSeconds(expectedIssuedUtc);
137+
var convertedActualIssuedUtc = FailureMessageHelper.RoundToSeconds(actualIssuedUtc);
137138
var failureMessage = FailureMessageHelper.ExpectedContextToBeXButY("ChallengeResult.AuthenticationProperties.IssuedUtc", convertedExpectedIssuedUtc, convertedActualIssuedUtc);
138139

139140
Action a = () => result.Should().BeChallengeResult().WithIssuedUtc(expectedIssuedUtc, Reason, ReasonArgs);
@@ -145,10 +146,10 @@ public void WithIssuedUtc_GivenUnexpected_ShouldFail()
145146
public void WithIssuedUtc_GivenNull_For_Actual_ShouldFail()
146147
{
147148
var actualIssuedUtc = null as DateTimeOffset?;
148-
var expectedIssuedUtc = DateTimeOffset.Now;
149+
var expectedIssuedUtc = TestLastModified;
149150
var actualAuthenticationProperties = new AuthenticationProperties { IssuedUtc = actualIssuedUtc };
150151
ActionResult result = new ChallengeResult(actualAuthenticationProperties);
151-
var convertedExpectedIssuedUtc = GetConvertedDateTimeOffset(expectedIssuedUtc);
152+
var convertedExpectedIssuedUtc = FailureMessageHelper.RoundToSeconds(expectedIssuedUtc);
152153
var failureMessage = FailureMessageHelper.ExpectedContextToBeXButY("ChallengeResult.AuthenticationProperties.IssuedUtc", convertedExpectedIssuedUtc, null);
153154

154155
Action a = () => result.Should().BeChallengeResult().WithIssuedUtc(expectedIssuedUtc, Reason, ReasonArgs);
@@ -159,11 +160,11 @@ public void WithIssuedUtc_GivenNull_For_Actual_ShouldFail()
159160
[Fact]
160161
public void WithIssuedUtc_GivenNull_For_Expected_ShouldFail()
161162
{
162-
var actualIssuedUtc = DateTimeOffset.Now;
163+
var actualIssuedUtc = TestLastModified;
163164
var expectedIssuedUtc = null as DateTimeOffset?;
164165
var actualAuthenticationProperties = new AuthenticationProperties { IssuedUtc = actualIssuedUtc };
165166
ActionResult result = new ChallengeResult(actualAuthenticationProperties);
166-
var convertedActualIssuedUtc = GetConvertedDateTimeOffset(actualIssuedUtc);
167+
var convertedActualIssuedUtc = FailureMessageHelper.RoundToSeconds(actualIssuedUtc);
167168
var failureMessage = FailureMessageHelper.ExpectedContextToBeXButY("ChallengeResult.AuthenticationProperties.IssuedUtc", null, convertedActualIssuedUtc);
168169

169170
Action a = () => result.Should().BeChallengeResult().WithIssuedUtc(expectedIssuedUtc, Reason, ReasonArgs);
@@ -174,7 +175,7 @@ public void WithIssuedUtc_GivenNull_For_Expected_ShouldFail()
174175
[Fact]
175176
public void WithExpiresUtc_GivenExpected_ShouldPass()
176177
{
177-
var actualExpiresUtc = DateTimeOffset.Now;
178+
var actualExpiresUtc = TestLastModified;
178179
var actualAuthenticationProperties = new AuthenticationProperties { ExpiresUtc = actualExpiresUtc };
179180
ActionResult result = new ChallengeResult(actualAuthenticationProperties);
180181

@@ -195,12 +196,12 @@ public void WithExpiresUtc_GivenNull_ShouldPass()
195196
[Fact]
196197
public void WithExpiresUtc_GivenUnexpected_ShouldFail()
197198
{
198-
var actualExpiresUtc = DateTimeOffset.Now;
199-
var expectedExpiresUtc = DateTimeOffset.Now.AddSeconds(1);
199+
var actualExpiresUtc = TestLastModified;
200+
var expectedExpiresUtc = TestLastModified.Value.AddSeconds(1);
200201
var actualAuthenticationProperties = new AuthenticationProperties { ExpiresUtc = actualExpiresUtc };
201202
ActionResult result = new ChallengeResult(actualAuthenticationProperties);
202-
var convertedExpectedExpiresUtc = GetConvertedDateTimeOffset(expectedExpiresUtc);
203-
var convertedActualExpiresUtc = GetConvertedDateTimeOffset(actualExpiresUtc);
203+
var convertedExpectedExpiresUtc = FailureMessageHelper.RoundToSeconds(expectedExpiresUtc);
204+
var convertedActualExpiresUtc = FailureMessageHelper.RoundToSeconds(actualExpiresUtc);
204205
var failureMessage = FailureMessageHelper.ExpectedContextToBeXButY("ChallengeResult.AuthenticationProperties.ExpiresUtc", convertedExpectedExpiresUtc, convertedActualExpiresUtc);
205206

206207
Action a = () => result.Should().BeChallengeResult().WithExpiresUtc(expectedExpiresUtc, Reason, ReasonArgs);
@@ -212,10 +213,10 @@ public void WithExpiresUtc_GivenUnexpected_ShouldFail()
212213
public void WithExpiresUtc_GivenNull_For_Actual_ShouldFail()
213214
{
214215
var actualExpiresUtc = null as DateTimeOffset?;
215-
var expectedExpiresUtc = DateTimeOffset.Now;
216+
var expectedExpiresUtc = TestLastModified;
216217
var actualAuthenticationProperties = new AuthenticationProperties { ExpiresUtc = actualExpiresUtc };
217218
ActionResult result = new ChallengeResult(actualAuthenticationProperties);
218-
var convertedExpectedExpiresUtc = GetConvertedDateTimeOffset(expectedExpiresUtc);
219+
var convertedExpectedExpiresUtc = FailureMessageHelper.RoundToSeconds(expectedExpiresUtc);
219220
var failureMessage = FailureMessageHelper.ExpectedContextToBeXButY("ChallengeResult.AuthenticationProperties.ExpiresUtc", convertedExpectedExpiresUtc, null);
220221

221222
Action a = () => result.Should().BeChallengeResult().WithExpiresUtc(expectedExpiresUtc, Reason, ReasonArgs);
@@ -226,11 +227,11 @@ public void WithExpiresUtc_GivenNull_For_Actual_ShouldFail()
226227
[Fact]
227228
public void WithExpiresUtc_GivenNull_For_Expected_ShouldFail()
228229
{
229-
var actualExpiresUtc = DateTimeOffset.Now;
230+
var actualExpiresUtc = TestLastModified;
230231
var expectedExpiresUtc = null as DateTimeOffset?;
231232
var actualAuthenticationProperties = new AuthenticationProperties { ExpiresUtc = actualExpiresUtc };
232233
ActionResult result = new ChallengeResult(actualAuthenticationProperties);
233-
var convertedActualExpiresUtc = GetConvertedDateTimeOffset(actualExpiresUtc);
234+
var convertedActualExpiresUtc = FailureMessageHelper.RoundToSeconds(actualExpiresUtc);
234235
var failureMessage = FailureMessageHelper.ExpectedContextToBeXButY("ChallengeResult.AuthenticationProperties.ExpiresUtc", null, convertedActualExpiresUtc);
235236

236237
Action a = () => result.Should().BeChallengeResult().WithExpiresUtc(expectedExpiresUtc, Reason, ReasonArgs);
@@ -337,15 +338,5 @@ public void ContainsScheme_GivenUnexpected_ShouldFail()
337338

338339
a.Should().Throw<Exception>().WithMessage(failureMessage);
339340
}
340-
341-
// DateTimeOffset is stored as string and converted back in ASP.NET Core Framework
342-
private DateTimeOffset? GetConvertedDateTimeOffset(DateTimeOffset value)
343-
{
344-
var expectedIssuedUtcAsString = value.ToString("r", CultureInfo.InvariantCulture);
345-
346-
return DateTimeOffset.TryParseExact(expectedIssuedUtcAsString, "r", CultureInfo.InvariantCulture, DateTimeStyles.RoundtripKind, out var result)
347-
? new DateTimeOffset?(result)
348-
: new DateTimeOffset?();
349-
}
350341
}
351342
}

tests/FluentAssertions.AspNetCore.Mvc.Tests/ForbidResultAssertions_Tests.cs

Lines changed: 19 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ public class ForbidResultAssertions_Tests
1313
{
1414
public const string Reason = FailureMessageHelper.Reason;
1515
public readonly static object[] ReasonArgs = FailureMessageHelper.ReasonArgs;
16+
private readonly DateTimeOffset? TestLastModified = DateTimeOffset.Parse("2020-04-28 15:48:33.6672395 +2", CultureInfo.InvariantCulture);
1617

1718
[Fact]
1819
public void WithAuthenticationProperties_GivenExpected_ShouldPass()
@@ -107,7 +108,7 @@ public void WithRedirectUri_GivenUnexpected_ShouldFail()
107108
[Fact]
108109
public void WithIssuedUtc_GivenExpected_ShouldPass()
109110
{
110-
var actualIssuedUtc = DateTimeOffset.Now;
111+
var actualIssuedUtc = TestLastModified;
111112
var actualAuthenticationProperties = new AuthenticationProperties { IssuedUtc = actualIssuedUtc };
112113
ActionResult result = new ForbidResult(actualAuthenticationProperties);
113114

@@ -128,12 +129,12 @@ public void WithIssuedUtc_GivenNull_ShouldPass()
128129
[Fact]
129130
public void WithIssuedUtc_GivenUnexpected_ShouldFail()
130131
{
131-
var actualIssuedUtc = DateTimeOffset.Now;
132-
var expectedIssuedUtc = DateTimeOffset.Now.AddSeconds(1);
132+
var actualIssuedUtc = TestLastModified;
133+
var expectedIssuedUtc = TestLastModified.Value.AddSeconds(1);
133134
var actualAuthenticationProperties = new AuthenticationProperties { IssuedUtc = actualIssuedUtc };
134135
ActionResult result = new ForbidResult(actualAuthenticationProperties);
135-
var convertedExpectedIssuedUtc = GetConvertedDateTimeOffset(expectedIssuedUtc);
136-
var convertedActualIssuedUtc = GetConvertedDateTimeOffset(actualIssuedUtc);
136+
var convertedExpectedIssuedUtc = FailureMessageHelper.RoundToSeconds(expectedIssuedUtc);
137+
var convertedActualIssuedUtc = FailureMessageHelper.RoundToSeconds(actualIssuedUtc);
137138
var failureMessage = FailureMessageHelper.ExpectedContextToBeXButY("ForbidResult.AuthenticationProperties.IssuedUtc", convertedExpectedIssuedUtc, convertedActualIssuedUtc);
138139

139140
Action a = () => result.Should().BeForbidResult().WithIssuedUtc(expectedIssuedUtc, Reason, ReasonArgs);
@@ -145,10 +146,10 @@ public void WithIssuedUtc_GivenUnexpected_ShouldFail()
145146
public void WithIssuedUtc_GivenNull_For_Actual_ShouldFail()
146147
{
147148
var actualIssuedUtc = null as DateTimeOffset?;
148-
var expectedIssuedUtc = DateTimeOffset.Now;
149+
var expectedIssuedUtc = TestLastModified;
149150
var actualAuthenticationProperties = new AuthenticationProperties { IssuedUtc = actualIssuedUtc };
150151
ActionResult result = new ForbidResult(actualAuthenticationProperties);
151-
var convertedExpectedIssuedUtc = GetConvertedDateTimeOffset(expectedIssuedUtc);
152+
var convertedExpectedIssuedUtc = FailureMessageHelper.RoundToSeconds(expectedIssuedUtc);
152153
var failureMessage = FailureMessageHelper.ExpectedContextToBeXButY("ForbidResult.AuthenticationProperties.IssuedUtc", convertedExpectedIssuedUtc, null);
153154

154155
Action a = () => result.Should().BeForbidResult().WithIssuedUtc(expectedIssuedUtc, Reason, ReasonArgs);
@@ -159,11 +160,11 @@ public void WithIssuedUtc_GivenNull_For_Actual_ShouldFail()
159160
[Fact]
160161
public void WithIssuedUtc_GivenNull_For_Expected_ShouldFail()
161162
{
162-
var actualIssuedUtc = DateTimeOffset.Now;
163+
var actualIssuedUtc = TestLastModified;
163164
var expectedIssuedUtc = null as DateTimeOffset?;
164165
var actualAuthenticationProperties = new AuthenticationProperties { IssuedUtc = actualIssuedUtc };
165166
ActionResult result = new ForbidResult(actualAuthenticationProperties);
166-
var convertedActualIssuedUtc = GetConvertedDateTimeOffset(actualIssuedUtc);
167+
var convertedActualIssuedUtc = FailureMessageHelper.RoundToSeconds(actualIssuedUtc);
167168
var failureMessage = FailureMessageHelper.ExpectedContextToBeXButY("ForbidResult.AuthenticationProperties.IssuedUtc", null, convertedActualIssuedUtc);
168169

169170
Action a = () => result.Should().BeForbidResult().WithIssuedUtc(expectedIssuedUtc, Reason, ReasonArgs);
@@ -174,7 +175,7 @@ public void WithIssuedUtc_GivenNull_For_Expected_ShouldFail()
174175
[Fact]
175176
public void WithExpiresUtc_GivenExpected_ShouldPass()
176177
{
177-
var actualExpiresUtc = DateTimeOffset.Now;
178+
var actualExpiresUtc = TestLastModified;
178179
var actualAuthenticationProperties = new AuthenticationProperties { ExpiresUtc = actualExpiresUtc };
179180
ActionResult result = new ForbidResult(actualAuthenticationProperties);
180181

@@ -195,12 +196,12 @@ public void WithExpiresUtc_GivenNull_ShouldPass()
195196
[Fact]
196197
public void WithExpiresUtc_GivenUnexpected_ShouldFail()
197198
{
198-
var actualExpiresUtc = DateTimeOffset.Now;
199-
var expectedExpiresUtc = DateTimeOffset.Now.AddSeconds(1);
199+
var actualExpiresUtc = TestLastModified;
200+
var expectedExpiresUtc = TestLastModified.Value.AddSeconds(1);
200201
var actualAuthenticationProperties = new AuthenticationProperties { ExpiresUtc = actualExpiresUtc };
201202
ActionResult result = new ForbidResult(actualAuthenticationProperties);
202-
var convertedExpectedExpiresUtc = GetConvertedDateTimeOffset(expectedExpiresUtc);
203-
var convertedActualExpiresUtc = GetConvertedDateTimeOffset(actualExpiresUtc);
203+
var convertedExpectedExpiresUtc = FailureMessageHelper.RoundToSeconds(expectedExpiresUtc);
204+
var convertedActualExpiresUtc = FailureMessageHelper.RoundToSeconds(actualExpiresUtc);
204205
var failureMessage = FailureMessageHelper.ExpectedContextToBeXButY("ForbidResult.AuthenticationProperties.ExpiresUtc", convertedExpectedExpiresUtc, convertedActualExpiresUtc);
205206

206207
Action a = () => result.Should().BeForbidResult().WithExpiresUtc(expectedExpiresUtc, Reason, ReasonArgs);
@@ -212,10 +213,10 @@ public void WithExpiresUtc_GivenUnexpected_ShouldFail()
212213
public void WithExpiresUtc_GivenNull_For_Actual_ShouldFail()
213214
{
214215
var actualExpiresUtc = null as DateTimeOffset?;
215-
var expectedExpiresUtc = DateTimeOffset.Now;
216+
var expectedExpiresUtc = TestLastModified;
216217
var actualAuthenticationProperties = new AuthenticationProperties { ExpiresUtc = actualExpiresUtc };
217218
ActionResult result = new ForbidResult(actualAuthenticationProperties);
218-
var convertedExpectedExpiresUtc = GetConvertedDateTimeOffset(expectedExpiresUtc);
219+
var convertedExpectedExpiresUtc = FailureMessageHelper.RoundToSeconds(expectedExpiresUtc);
219220
var failureMessage = FailureMessageHelper.ExpectedContextToBeXButY("ForbidResult.AuthenticationProperties.ExpiresUtc", convertedExpectedExpiresUtc, null);
220221

221222
Action a = () => result.Should().BeForbidResult().WithExpiresUtc(expectedExpiresUtc, Reason, ReasonArgs);
@@ -226,11 +227,11 @@ public void WithExpiresUtc_GivenNull_For_Actual_ShouldFail()
226227
[Fact]
227228
public void WithExpiresUtc_GivenNull_For_Expected_ShouldFail()
228229
{
229-
var actualExpiresUtc = DateTimeOffset.Now;
230+
var actualExpiresUtc = TestLastModified;
230231
var expectedExpiresUtc = null as DateTimeOffset?;
231232
var actualAuthenticationProperties = new AuthenticationProperties { ExpiresUtc = actualExpiresUtc };
232233
ActionResult result = new ForbidResult(actualAuthenticationProperties);
233-
var convertedActualExpiresUtc = GetConvertedDateTimeOffset(actualExpiresUtc);
234+
var convertedActualExpiresUtc = FailureMessageHelper.RoundToSeconds(actualExpiresUtc);
234235
var failureMessage = FailureMessageHelper.ExpectedContextToBeXButY("ForbidResult.AuthenticationProperties.ExpiresUtc", null, convertedActualExpiresUtc);
235236

236237
Action a = () => result.Should().BeForbidResult().WithExpiresUtc(expectedExpiresUtc, Reason, ReasonArgs);
@@ -337,15 +338,5 @@ public void ContainsScheme_GivenUnexpected_ShouldFail()
337338

338339
a.Should().Throw<Exception>().WithMessage(failureMessage);
339340
}
340-
341-
// DateTimeOffset is stored as string and converted back in ASP.NET Core Framework
342-
private DateTimeOffset? GetConvertedDateTimeOffset(DateTimeOffset value)
343-
{
344-
var expectedIssuedUtcAsString = value.ToString("r", CultureInfo.InvariantCulture);
345-
346-
return DateTimeOffset.TryParseExact(expectedIssuedUtcAsString, "r", CultureInfo.InvariantCulture, DateTimeStyles.RoundtripKind, out var result)
347-
? new DateTimeOffset?(result)
348-
: new DateTimeOffset?();
349-
}
350341
}
351342
}

tests/FluentAssertions.AspNetCore.Mvc.Tests/Helpers/FailureMessageHelper.cs

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
using System;
2+
using System.Globalization;
23
using System.Linq;
34
using System.Text;
45

@@ -88,5 +89,18 @@ internal static string ExpectedContextContainValueAtKeyButKeyNotFound(string con
8889
{
8990
return $"Expected {context} to contain value \"{value}\" at key \"{key}\" because it is 10, but the key was not found.";
9091
}
92+
93+
// DateTimeOffset is stored as string and converted back in ASP.NET Core Framework
94+
public static DateTimeOffset? RoundToSeconds(DateTimeOffset? value)
95+
{
96+
if (!value.HasValue)
97+
return null;
98+
99+
var expectedIssuedUtcAsString = value.Value.ToString("r", CultureInfo.InvariantCulture);
100+
101+
return DateTimeOffset.TryParseExact(expectedIssuedUtcAsString, "r", CultureInfo.InvariantCulture, DateTimeStyles.RoundtripKind, out var result)
102+
? new DateTimeOffset?(result)
103+
: new DateTimeOffset?();
104+
}
91105
}
92106
}

tests/FluentAssertions.AspNetCore.Mvc.Tests/PhysicalFileResultAssertions_Tests.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -127,7 +127,7 @@ public void WithLastModified_GivenExpectedNull_ShouldFail()
127127
public void WithLastModified_GivenUnexpected_ShouldFail()
128128
{
129129
var actualLastModified = TestLastModified;
130-
var expectedLastModified = DateTimeOffset.Now.AddMilliseconds(1);
130+
var expectedLastModified = TestLastModified.Value.AddMilliseconds(1);
131131
ActionResult result = new PhysicalFileResult(string.Empty, TestContentType) { LastModified = actualLastModified };
132132
var failureMessage = FailureMessageHelper.ExpectedContextToBeXButY("PhysicalFileResult.LastModified", expectedLastModified, actualLastModified);
133133

0 commit comments

Comments
 (0)