1
1
using System ;
2
+ using System . Linq ;
2
3
using System . Linq . Expressions ;
3
4
using System . Threading ;
4
5
using System . Threading . Tasks ;
@@ -19,20 +20,23 @@ public void ItPersistsPropertiesWhenSerializedAndDeserialized()
19
20
var taskInfos = new [ ] {
20
21
GetTestTask ( ( ) => TestMethod1 ( "hello world" ) ) ,
21
22
GetTestTask ( ( ) => TestMethod2 ( ) ) ,
22
- GetTestTask ( ( ) => TestMethod3 ( default ) )
23
+ GetTestTask ( ( ) => TestMethod3 ( new CancellationToken ( ) ) )
23
24
} ;
24
25
25
26
foreach ( var taskInfo in taskInfos )
26
27
{
27
28
var serializedTaskInfo = JsonTaskInfoSerializer . Serialize ( taskInfo ) ;
28
29
var deserializedTaskInfo = JsonTaskInfoSerializer . Deserialize < TaskInfo > ( serializedTaskInfo ) ;
29
30
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
+
30
34
deserializedTaskInfo . Id . Should ( ) . Be ( taskInfo . Id ) ;
31
35
deserializedTaskInfo . AssemblyName . Should ( ) . Be ( taskInfo . AssemblyName ) ;
32
36
deserializedTaskInfo . TypeName . Should ( ) . Be ( taskInfo . TypeName ) ;
33
37
deserializedTaskInfo . MethodName . Should ( ) . Be ( taskInfo . MethodName ) ;
34
38
deserializedTaskInfo . ReturnType . Should ( ) . Be ( taskInfo . ReturnType ) ;
35
- deserializedTaskInfo . Args . ShouldAllBeEquivalentTo ( taskInfo . Args ) ;
39
+ deserializedTaskInfo . Args . ShouldAllBeEquivalentTo ( importantTaskArgs ) ;
36
40
deserializedTaskInfo . ArgTypes . ShouldAllBeEquivalentTo ( taskInfo . ArgTypes ) ;
37
41
deserializedTaskInfo . CreatedAtUtc . Should ( ) . Be ( taskInfo . CreatedAtUtc ) ;
38
42
@@ -50,7 +54,7 @@ public void ItProperlyDeterminesEquivalence()
50
54
var taskInfo2a = GetTestTask ( ( ) => TestMethod2 ( ) ) ;
51
55
var taskInfo2b = GetTestTask ( ( ) => TestMethod2 ( ) ) ;
52
56
53
- var taskInfo3a = GetTestTask ( ( ) => TestMethod3 ( default ) ) ;
57
+ var taskInfo3a = GetTestTask ( ( ) => TestMethod3 ( new CancellationToken ( ) ) ) ;
54
58
var taskInfo3b = GetTestTask ( ( ) => TestMethod3 ( new CancellationTokenSource ( ) . Token ) ) ;
55
59
56
60
var taskInfo4a = GetTestTask ( ( ) => Console . WriteLine ( "hello" ) ) ;
0 commit comments