@@ -65,7 +65,8 @@ public SignOutResultAssertions WithAuthenticationProperties(AuthenticationProper
6565 Execute . Assertion
6666 . ForCondition ( actualAuthenticationProperties == expectedAuthenticationProperties )
6767 . BecauseOf ( reason , reasonArgs )
68- . FailWith ( string . Format ( FailureMessages . CommonFailMessage , "SignOutResult.AuthenticationProperties" , expectedAuthenticationProperties , actualAuthenticationProperties ) ) ;
68+ . WithDefaultIdentifier ( "SignOutResult.AuthenticationProperties" )
69+ . FailWith ( FailureMessages . CommonFailMessage , expectedAuthenticationProperties , actualAuthenticationProperties ) ;
6970
7071 return this ;
7172 }
@@ -88,7 +89,8 @@ public SignOutResultAssertions WithIsPersistent(bool expectedIsPersistent, strin
8889 Execute . Assertion
8990 . ForCondition ( actualIsPersistent == expectedIsPersistent )
9091 . BecauseOf ( reason , reasonArgs )
91- . FailWith ( string . Format ( FailureMessages . CommonFailMessage , "SignOutResult.AuthenticationProperties.IsPersistent" , expectedIsPersistent , actualIsPersistent ) ) ;
92+ . WithDefaultIdentifier ( "SignOutResult.AuthenticationProperties.IsPersistent" )
93+ . FailWith ( FailureMessages . CommonFailMessage , expectedIsPersistent , actualIsPersistent ) ;
9294
9395 return this ;
9496 }
@@ -111,7 +113,8 @@ public SignOutResultAssertions WithRedirectUri(string expectedRedirectUri, strin
111113 Execute . Assertion
112114 . ForCondition ( string . Equals ( actualRedirectUri , expectedRedirectUri ) )
113115 . BecauseOf ( reason , reasonArgs )
114- . FailWith ( string . Format ( FailureMessages . CommonFailMessage , "SignOutResult.AuthenticationProperties.RedirectUri" , expectedRedirectUri , actualRedirectUri ) ) ;
116+ . WithDefaultIdentifier ( "SignOutResult.AuthenticationProperties.RedirectUri" )
117+ . FailWith ( FailureMessages . CommonFailMessage , expectedRedirectUri , actualRedirectUri ) ;
115118
116119 return this ;
117120 }
@@ -130,42 +133,13 @@ public SignOutResultAssertions WithRedirectUri(string expectedRedirectUri, strin
130133 public SignOutResultAssertions WithIssuedUtc ( DateTimeOffset ? expectedIssuedUtc , string reason = "" , params object [ ] reasonArgs )
131134 {
132135 var actualResult = IssuedUtc ;
133-
134- var expectedIssuedUtcAsString = expectedIssuedUtc ? . ToString ( "r" , ( IFormatProvider ) CultureInfo . InvariantCulture ) ;
135-
136- var expectedResult = DateTimeOffset . TryParseExact ( expectedIssuedUtcAsString , "r" , ( IFormatProvider ) CultureInfo . InvariantCulture , DateTimeStyles . RoundtripKind , out var result )
137- ? new DateTimeOffset ? ( result )
138- : new DateTimeOffset ? ( ) ;
139-
140- if ( actualResult == null && expectedResult == null )
141- {
142- return this ;
143- }
144-
145- if ( actualResult == null )
146- {
147- Execute . Assertion
148- . ForCondition ( false )
149- . BecauseOf ( reason , reasonArgs )
150- . FailWith ( string . Format ( FailureMessages . CommonFailMessage , "SignOutResult.AuthenticationProperties.IssuedUtc" , expectedResult , null ) ) ;
151-
152- return this ;
153- }
154-
155- if ( expectedResult == null )
156- {
157- Execute . Assertion
158- . ForCondition ( false )
159- . BecauseOf ( reason , reasonArgs )
160- . FailWith ( string . Format ( FailureMessages . CommonFailMessage , "SignOutResult.AuthenticationProperties.IssuedUtc" , null , actualResult ) ) ;
161-
162- return this ;
163- }
136+ DateTimeOffset ? expectedResult = RoundToSeconds ( expectedIssuedUtc ) ;
164137
165138 Execute . Assertion
166- . ForCondition ( DateTimeOffset . Compare ( expectedResult . Value , actualResult . Value ) == 0 )
139+ . ForCondition ( EqualityComparer < DateTimeOffset ? > . Default . Equals ( expectedResult , actualResult ) )
167140 . BecauseOf ( reason , reasonArgs )
168- . FailWith ( string . Format ( FailureMessages . CommonFailMessage , "SignOutResult.AuthenticationProperties.IssuedUtc" , expectedResult . Value , actualResult . Value ) ) ;
141+ . WithDefaultIdentifier ( "SignOutResult.AuthenticationProperties.IssuedUtc" )
142+ . FailWith ( FailureMessages . CommonFailMessage , expectedResult , actualResult ) ;
169143
170144 return this ;
171145 }
@@ -185,41 +159,13 @@ public SignOutResultAssertions WithExpiresUtc(DateTimeOffset? expectedExpiresUtc
185159 {
186160 var actualResult = ExpiresUtc ;
187161
188- var expectedExpiresUtcAsString = expectedExpiresUtc ? . ToString ( "r" , ( IFormatProvider ) CultureInfo . InvariantCulture ) ;
189-
190- var expectedResult = DateTimeOffset . TryParseExact ( expectedExpiresUtcAsString , "r" , ( IFormatProvider ) CultureInfo . InvariantCulture , DateTimeStyles . RoundtripKind , out var result )
191- ? new DateTimeOffset ? ( result )
192- : new DateTimeOffset ? ( ) ;
193-
194- if ( actualResult == null && expectedResult == null )
195- {
196- return this ;
197- }
198-
199- if ( actualResult == null )
200- {
201- Execute . Assertion
202- . ForCondition ( false )
203- . BecauseOf ( reason , reasonArgs )
204- . FailWith ( string . Format ( FailureMessages . CommonFailMessage , "SignOutResult.AuthenticationProperties.ExpiresUtc" , expectedResult , null ) ) ;
205-
206- return this ;
207- }
208-
209- if ( expectedResult == null )
210- {
211- Execute . Assertion
212- . ForCondition ( false )
213- . BecauseOf ( reason , reasonArgs )
214- . FailWith ( string . Format ( FailureMessages . CommonFailMessage , "SignOutResult.AuthenticationProperties.ExpiresUtc" , null , actualResult ) ) ;
215-
216- return this ;
217- }
162+ DateTimeOffset ? expectedResult = RoundToSeconds ( expectedExpiresUtc ) ;
218163
219164 Execute . Assertion
220- . ForCondition ( DateTimeOffset . Compare ( expectedResult . Value , actualResult . Value ) == 0 )
165+ . ForCondition ( EqualityComparer < DateTimeOffset ? > . Default . Equals ( expectedResult , actualResult ) )
221166 . BecauseOf ( reason , reasonArgs )
222- . FailWith ( string . Format ( FailureMessages . CommonFailMessage , "SignOutResult.AuthenticationProperties.ExpiresUtc" , expectedResult . Value , actualResult . Value ) ) ;
167+ . WithDefaultIdentifier ( "SignOutResult.AuthenticationProperties.ExpiresUtc" )
168+ . FailWith ( FailureMessages . CommonFailMessage , expectedResult , actualResult ) ;
223169
224170 return this ;
225171 }
@@ -243,7 +189,8 @@ public SignOutResultAssertions WithAllowRefresh(bool? expectedAllowRefresh, stri
243189 Execute . Assertion
244190 . ForCondition ( actualAllowRefresh == expectedAllowRefresh )
245191 . BecauseOf ( reason , reasonArgs )
246- . FailWith ( string . Format ( FailureMessages . CommonFailMessage , "SignOutResult.AuthenticationProperties.AllowRefresh" , expectedAllowRefresh , actualAllowRefresh ) ) ;
192+ . WithDefaultIdentifier ( "SignOutResult.AuthenticationProperties.AllowRefresh" )
193+ . FailWith ( FailureMessages . CommonFailMessage , expectedAllowRefresh , actualAllowRefresh ) ;
247194
248195 return this ;
249196 }
@@ -323,5 +270,19 @@ public SignOutResultAssertions ContainsScheme(string expectedScheme, string reas
323270 }
324271
325272 #endregion
273+
274+ #region Private Methods
275+
276+ private static DateTimeOffset ? RoundToSeconds ( DateTimeOffset ? expectedIssuedUtc )
277+ {
278+ var expectedIssuedUtcAsString = expectedIssuedUtc ? . ToString ( "r" , CultureInfo . InvariantCulture ) ;
279+
280+ var expectedResult = DateTimeOffset . TryParseExact ( expectedIssuedUtcAsString , "r" , CultureInfo . InvariantCulture , DateTimeStyles . RoundtripKind , out var result )
281+ ? new DateTimeOffset ? ( result )
282+ : new DateTimeOffset ? ( ) ;
283+ return expectedResult ;
284+ }
285+
286+ #endregion
326287 }
327288}
0 commit comments