@@ -31,9 +31,9 @@ namespace RestSharp.Tests
31
31
{
32
32
public class JsonTests
33
33
{
34
- private const string AlternativeCulture = "pt-PT" ;
34
+ private const string AlternativeCulture = "pt-PT" ;
35
35
36
- private const string GuidString = "AC1FC4BC-087A-4242-B8EE-C53EBE9887A5" ;
36
+ private const string GuidString = "AC1FC4BC-087A-4242-B8EE-C53EBE9887A5" ;
37
37
38
38
[ Fact ]
39
39
public void Can_Deserialize_4sq_Json_With_Root_Element_Specified ( )
@@ -190,8 +190,8 @@ public void Can_Deserialize_Elements_to_Nullable_Values()
190
190
Assert . Equal ( 123 , output . Id ) ;
191
191
Assert . NotNull ( output . StartDate ) ;
192
192
Assert . Equal (
193
- new DateTime ( 2010 , 2 , 21 , 9 , 35 , 00 , DateTimeKind . Utc ) . ToString ( "u" ) ,
194
- output . StartDate . Value . ToString ( "u" ) ) ;
193
+ new DateTime ( 2010 , 2 , 21 , 9 , 35 , 00 , DateTimeKind . Utc ) ,
194
+ output . StartDate . Value ) ;
195
195
Assert . Equal ( new Guid ( GuidString ) , output . UniqueId ) ;
196
196
}
197
197
@@ -315,14 +315,14 @@ public void Can_Deserialize_With_Default_Root()
315
315
Assert . Equal ( "Foe 2" , p . Foes [ "dict2" ] . Nickname ) ;
316
316
}
317
317
318
- [ Fact ]
319
- public void Can_Deserialize_With_Default_Root_Alternative_Culture ( )
320
- {
321
- using ( new CultureChange ( AlternativeCulture ) )
322
- {
323
- Can_Deserialize_With_Default_Root ( ) ;
324
- }
325
- }
318
+ [ Fact ]
319
+ public void Can_Deserialize_With_Default_Root_Alternative_Culture ( )
320
+ {
321
+ using ( new CultureChange ( AlternativeCulture ) )
322
+ {
323
+ Can_Deserialize_With_Default_Root ( ) ;
324
+ }
325
+ }
326
326
327
327
[ Fact ]
328
328
public void Can_Deserialize_Names_With_Underscores_With_Default_Root ( )
@@ -353,14 +353,14 @@ public void Can_Deserialize_Names_With_Underscores_With_Default_Root()
353
353
Assert . Equal ( "Foe 2" , p . Foes [ "dict2" ] . Nickname ) ;
354
354
}
355
355
356
- [ Fact ]
357
- public void Can_Deserialize_Names_With_Underscores_With_Default_Root_Alternative_Culture ( )
358
- {
359
- using ( new CultureChange ( AlternativeCulture ) )
360
- {
361
- Can_Deserialize_Names_With_Underscores_With_Default_Root ( ) ;
362
- }
363
- }
356
+ [ Fact ]
357
+ public void Can_Deserialize_Names_With_Underscores_With_Default_Root_Alternative_Culture ( )
358
+ {
359
+ using ( new CultureChange ( AlternativeCulture ) )
360
+ {
361
+ Can_Deserialize_Names_With_Underscores_With_Default_Root ( ) ;
362
+ }
363
+ }
364
364
365
365
[ Fact ]
366
366
public void Can_Deserialize_Names_With_Dashes_With_Default_Root ( )
@@ -391,14 +391,14 @@ public void Can_Deserialize_Names_With_Dashes_With_Default_Root()
391
391
Assert . Equal ( "Foe 2" , p . Foes [ "dict2" ] . Nickname ) ;
392
392
}
393
393
394
- [ Fact ]
395
- public void Can_Deserialize_Names_With_Dashes_With_Default_Root_Alternative_Culture ( )
396
- {
397
- using ( new CultureChange ( AlternativeCulture ) )
398
- {
399
- Can_Deserialize_Names_With_Dashes_With_Default_Root ( ) ;
400
- }
401
- }
394
+ [ Fact ]
395
+ public void Can_Deserialize_Names_With_Dashes_With_Default_Root_Alternative_Culture ( )
396
+ {
397
+ using ( new CultureChange ( AlternativeCulture ) )
398
+ {
399
+ Can_Deserialize_Names_With_Dashes_With_Default_Root ( ) ;
400
+ }
401
+ }
402
402
403
403
[ Fact ]
404
404
public void Ignore_Protected_Property_That_Exists_In_Data ( )
@@ -423,22 +423,19 @@ public void Ignore_ReadOnly_Property_That_Exists_In_Data()
423
423
}
424
424
425
425
[ Fact ]
426
- public void Can_Deserialize_TimeSpan ( )
427
- {
428
- var doc = File . ReadAllText ( Path . Combine ( "SampleData" , "timespans.txt" ) ) ;
429
- var d = new JsonDeserializer ( ) ;
430
- var response = new RestResponse { Content = doc } ;
431
- var payload = d . Deserialize < TimeSpanTestStructure > ( response ) ;
426
+ public void Can_Deserialize_TimeSpan ( )
427
+ {
428
+ var payload = GetPayLoad < TimeSpanTestStructure > ( "timespans.txt" ) ;
432
429
433
- Assert . Equal ( new TimeSpan ( 468006 ) , payload . Tick ) ;
434
- Assert . Equal ( new TimeSpan ( 0 , 0 , 0 , 0 , 125 ) , payload . Millisecond ) ;
435
- Assert . Equal ( new TimeSpan ( 0 , 0 , 8 ) , payload . Second ) ;
436
- Assert . Equal ( new TimeSpan ( 0 , 55 , 2 ) , payload . Minute ) ;
437
- Assert . Equal ( new TimeSpan ( 21 , 30 , 7 ) , payload . Hour ) ;
438
- Assert . Null ( payload . NullableWithoutValue ) ;
439
- Assert . NotNull ( payload . NullableWithValue ) ;
440
- Assert . Equal ( new TimeSpan ( 21 , 30 , 7 ) , payload . NullableWithValue . Value ) ;
441
- }
430
+ Assert . Equal ( new TimeSpan ( 468006 ) , payload . Tick ) ;
431
+ Assert . Equal ( new TimeSpan ( 0 , 0 , 0 , 0 , 125 ) , payload . Millisecond ) ;
432
+ Assert . Equal ( new TimeSpan ( 0 , 0 , 8 ) , payload . Second ) ;
433
+ Assert . Equal ( new TimeSpan ( 0 , 55 , 2 ) , payload . Minute ) ;
434
+ Assert . Equal ( new TimeSpan ( 21 , 30 , 7 ) , payload . Hour ) ;
435
+ Assert . Null ( payload . NullableWithoutValue ) ;
436
+ Assert . NotNull ( payload . NullableWithValue ) ;
437
+ Assert . Equal ( new TimeSpan ( 21 , 30 , 7 ) , payload . NullableWithValue . Value ) ;
438
+ }
442
439
443
440
[ Fact ]
444
441
public void Can_Deserialize_Iso_Json_Dates ( )
@@ -465,88 +462,97 @@ public void Can_Deserialize_Unix_Json_Dates()
465
462
[ Fact ]
466
463
public void Can_Deserialize_JsonNet_Dates ( )
467
464
{
468
- var doc = File . ReadAllText ( Path . Combine ( "SampleData" , "person.json.txt" ) ) ;
469
- var d = new JsonDeserializer ( ) ;
470
- var response = new RestResponse { Content = doc } ;
471
- var person = d . Deserialize < PersonForJson > ( response ) ;
465
+ var person = GetPayLoad < PersonForJson > ( "person.json.txt" ) ;
472
466
473
467
Assert . Equal (
474
- new DateTime ( 2011 , 6 , 30 , 8 , 15 , 46 , DateTimeKind . Utc ) . ToString ( "u" ) ,
475
- person . StartDate . ToString ( "u" ) ) ;
468
+ new DateTime ( 2011 , 6 , 30 , 8 , 15 , 46 , 929 , DateTimeKind . Utc ) ,
469
+ person . StartDate ) ;
476
470
}
477
471
478
472
[ Fact ]
479
473
public void Can_Deserialize_DateTime ( )
480
474
{
481
- var doc = File . ReadAllText ( Path . Combine ( "SampleData" , "datetimes.txt" ) ) ;
482
- var d = new JsonDeserializer ( ) ;
483
- var response = new RestResponse { Content = doc } ;
484
- var payload = d . Deserialize < DateTimeTestStructure > ( response ) ;
475
+ var payload = GetPayLoad < DateTimeTestStructure > ( "datetimes.txt" ) ;
485
476
486
477
Assert . Equal (
487
- new DateTime ( 2011 , 6 , 30 , 8 , 15 , 46 , DateTimeKind . Utc ) . ToString ( "u" ) ,
488
- payload . DateTime . ToString ( "u" ) ) ;
478
+ new DateTime ( 2011 , 6 , 30 , 8 , 15 , 46 , 929 , DateTimeKind . Utc ) ,
479
+ payload . DateTime ) ;
489
480
}
490
481
491
482
[ Fact ]
492
483
public void Can_Deserialize_Nullable_DateTime_With_Value ( )
493
484
{
494
- var doc = File . ReadAllText ( Path . Combine ( "SampleData" , "datetimes.txt" ) ) ;
495
- var d = new JsonDeserializer ( ) ;
496
- var response = new RestResponse { Content = doc } ;
497
- var payload = d . Deserialize < DateTimeTestStructure > ( response ) ;
485
+ var payload = GetPayLoad < DateTimeTestStructure > ( "datetimes.txt" ) ;
498
486
499
487
Assert . NotNull ( payload . NullableDateTimeWithValue ) ;
500
488
Assert . Equal (
501
- new DateTime ( 2011 , 6 , 30 , 8 , 15 , 46 , DateTimeKind . Utc ) . ToString ( "u" ) ,
502
- payload . NullableDateTimeWithValue . Value . ToString ( "u" ) ) ;
489
+ new DateTime ( 2011 , 6 , 30 , 8 , 15 , 46 , 929 , DateTimeKind . Utc ) ,
490
+ payload . NullableDateTimeWithValue . Value ) ;
503
491
}
504
492
505
493
[ Fact ]
506
494
public void Can_Deserialize_Nullable_DateTime_With_Null ( )
507
495
{
508
- var doc = File . ReadAllText ( Path . Combine ( "SampleData" , "datetimes.txt" ) ) ;
509
- var d = new JsonDeserializer ( ) ;
510
- var response = new RestResponse { Content = doc } ;
511
- var payload = d . Deserialize < DateTimeTestStructure > ( response ) ;
496
+ var payload = GetPayLoad < DateTimeTestStructure > ( "datetimes.txt" ) ;
512
497
513
498
Assert . Null ( payload . NullableDateTimeWithNull ) ;
514
499
}
515
500
516
501
[ Fact ]
517
502
public void Can_Deserialize_DateTimeOffset ( )
518
503
{
519
- var doc = File . ReadAllText ( Path . Combine ( "SampleData" , "datetimes.txt" ) ) ;
520
- var d = new JsonDeserializer ( ) ;
521
- var response = new RestResponse { Content = doc } ;
522
- var payload = d . Deserialize < DateTimeTestStructure > ( response ) ;
504
+ var payload = GetPayLoad < DateTimeTestStructure > ( "datetimes.txt" ) ;
523
505
524
506
Assert . Equal (
525
- new DateTime ( 2011 , 6 , 30 , 8 , 15 , 46 , DateTimeKind . Utc ) . ToString ( "u" ) ,
526
- payload . DateTimeOffset . ToString ( "u" ) ) ;
507
+ new DateTime ( 2011 , 6 , 30 , 8 , 15 , 46 , 929 , DateTimeKind . Utc ) ,
508
+ payload . DateTimeOffset ) ;
509
+ }
510
+
511
+ [ Fact ]
512
+ public void Can_Deserialize_Iso8601DateTimeLocal ( )
513
+ {
514
+ var payload = GetPayLoad < Iso8601DateTimeTestStructure > ( "iso8601datetimes.txt" ) ;
515
+
516
+ Assert . Equal (
517
+ new DateTime ( 2012 , 7 , 19 , 10 , 23 , 25 , DateTimeKind . Utc ) ,
518
+ payload . DateTimeLocal ) ;
519
+ }
520
+
521
+ [ Fact ]
522
+ public void Can_Deserialize_Iso8601DateTimeZulu ( )
523
+ {
524
+ var payload = GetPayLoad < Iso8601DateTimeTestStructure > ( "iso8601datetimes.txt" ) ;
525
+
526
+ Assert . Equal (
527
+ new DateTime ( 2012 , 7 , 19 , 10 , 23 , 25 , 544 , DateTimeKind . Utc ) ,
528
+ payload . DateTimeUtc . ToUniversalTime ( ) ) ;
529
+ }
530
+
531
+ [ Fact ]
532
+ public void Can_Deserialize_Iso8601DateTimeWithOffset ( )
533
+ {
534
+ var payload = GetPayLoad < Iso8601DateTimeTestStructure > ( "iso8601datetimes.txt" ) ;
535
+
536
+ Assert . Equal (
537
+ new DateTime ( 2012 , 7 , 19 , 10 , 23 , 25 , 544 , DateTimeKind . Utc ) ,
538
+ payload . DateTimeWithOffset . ToUniversalTime ( ) ) ;
527
539
}
528
540
529
541
[ Fact ]
530
542
public void Can_Deserialize_Nullable_DateTimeOffset_With_Value ( )
531
543
{
532
- var doc = File . ReadAllText ( Path . Combine ( "SampleData" , "datetimes.txt" ) ) ;
533
- var d = new JsonDeserializer ( ) ;
534
- var response = new RestResponse { Content = doc } ;
535
- var payload = d . Deserialize < DateTimeTestStructure > ( response ) ;
544
+ var payload = GetPayLoad < DateTimeTestStructure > ( "datetimes.txt" ) ;
536
545
537
546
Assert . NotNull ( payload . NullableDateTimeOffsetWithValue ) ;
538
547
Assert . Equal (
539
- new DateTime ( 2011 , 6 , 30 , 8 , 15 , 46 , DateTimeKind . Utc ) . ToString ( "u" ) ,
540
- payload . NullableDateTimeOffsetWithValue . Value . ToString ( "u" ) ) ;
548
+ new DateTime ( 2011 , 6 , 30 , 8 , 15 , 46 , 929 , DateTimeKind . Utc ) ,
549
+ payload . NullableDateTimeOffsetWithValue ) ;
541
550
}
542
551
543
552
[ Fact ]
544
553
public void Can_Deserialize_Nullable_DateTimeOffset_With_Null ( )
545
554
{
546
- var doc = File . ReadAllText ( Path . Combine ( "SampleData" , "datetimes.txt" ) ) ;
547
- var d = new JsonDeserializer ( ) ;
548
- var response = new RestResponse { Content = doc } ;
549
- var payload = d . Deserialize < DateTimeTestStructure > ( response ) ;
555
+ var payload = GetPayLoad < DateTimeTestStructure > ( "datetimes.txt" ) ;
550
556
551
557
Assert . Null ( payload . NullableDateTimeOffsetWithNull ) ;
552
558
}
@@ -759,5 +765,13 @@ public string CreateDynamicJsonStringDictionary ()
759
765
doc [ "ThingBlue" ] = new JObject ( new JProperty ( "Name" , "ThingBlue" ) , new JProperty ( "Color" , "Blue" ) ) ;
760
766
return doc . ToString ( ) ;
761
767
}
768
+
769
+ private T GetPayLoad < T > ( string fileName )
770
+ {
771
+ var doc = File . ReadAllText ( Path . Combine ( "SampleData" , fileName ) ) ;
772
+ var response = new RestResponse { Content = doc } ;
773
+ var d = new JsonDeserializer ( ) ;
774
+ return d . Deserialize < T > ( response ) ;
775
+ }
762
776
}
763
777
}
0 commit comments