11using System ;
2+ using System . Linq ;
23using System . Linq . Expressions ;
34using System . Threading ;
45using System . Threading . Tasks ;
@@ -19,20 +20,23 @@ public void ItPersistsPropertiesWhenSerializedAndDeserialized()
1920 var taskInfos = new [ ] {
2021 GetTestTask ( ( ) => TestMethod1 ( "hello world" ) ) ,
2122 GetTestTask ( ( ) => TestMethod2 ( ) ) ,
22- GetTestTask ( ( ) => TestMethod3 ( default ) )
23+ GetTestTask ( ( ) => TestMethod3 ( new CancellationToken ( ) ) )
2324 } ;
2425
2526 foreach ( var taskInfo in taskInfos )
2627 {
2728 var serializedTaskInfo = JsonTaskInfoSerializer . Serialize ( taskInfo ) ;
2829 var deserializedTaskInfo = JsonTaskInfoSerializer . Deserialize < TaskInfo > ( serializedTaskInfo ) ;
2930
31+ // we do skip cancellation tokens as they are ignored on serialization
32+ var importantTaskArgs = taskInfo . Args . Select ( a => a is CancellationToken ? null : a ) . ToArray ( ) ;
33+
3034 deserializedTaskInfo . Id . Should ( ) . Be ( taskInfo . Id ) ;
3135 deserializedTaskInfo . AssemblyName . Should ( ) . Be ( taskInfo . AssemblyName ) ;
3236 deserializedTaskInfo . TypeName . Should ( ) . Be ( taskInfo . TypeName ) ;
3337 deserializedTaskInfo . MethodName . Should ( ) . Be ( taskInfo . MethodName ) ;
3438 deserializedTaskInfo . ReturnType . Should ( ) . Be ( taskInfo . ReturnType ) ;
35- deserializedTaskInfo . Args . ShouldAllBeEquivalentTo ( taskInfo . Args ) ;
39+ deserializedTaskInfo . Args . ShouldAllBeEquivalentTo ( importantTaskArgs ) ;
3640 deserializedTaskInfo . ArgTypes . ShouldAllBeEquivalentTo ( taskInfo . ArgTypes ) ;
3741 deserializedTaskInfo . CreatedAtUtc . Should ( ) . Be ( taskInfo . CreatedAtUtc ) ;
3842
@@ -50,7 +54,7 @@ public void ItProperlyDeterminesEquivalence()
5054 var taskInfo2a = GetTestTask ( ( ) => TestMethod2 ( ) ) ;
5155 var taskInfo2b = GetTestTask ( ( ) => TestMethod2 ( ) ) ;
5256
53- var taskInfo3a = GetTestTask ( ( ) => TestMethod3 ( default ) ) ;
57+ var taskInfo3a = GetTestTask ( ( ) => TestMethod3 ( new CancellationToken ( ) ) ) ;
5458 var taskInfo3b = GetTestTask ( ( ) => TestMethod3 ( new CancellationTokenSource ( ) . Token ) ) ;
5559
5660 var taskInfo4a = GetTestTask ( ( ) => Console . WriteLine ( "hello" ) ) ;
0 commit comments