0c91937e575e475e444914e46683264ebe514a7b
[mono.git] / mcs / class / System / Test / System.ComponentModel / AsyncOperationManagerTest.cs
1 //\r
2 // AsyncOperationManager.cs\r
3 //\r
4 // Author:\r
5 //      Jonathan Pobst  <monkey@jpobst.com>\r
6 //\r
7 // Copyright (C) 2007 Novell, Inc.\r
8 //\r
9 \r
10 \r
11 using System;\r
12 using System.Threading;\r
13 using System.ComponentModel;\r
14 using System.Globalization;\r
15 \r
16 using NUnit.Framework;\r
17 \r
18 namespace MonoTests.System.ComponentModel\r
19 {\r
20         [TestFixture]\r
21         public class AsyncOperationManagerTest\r
22         {\r
23                 [Test]\r
24                 public void SyncContext ()\r
25                 {\r
26                         SynchronizationContext sc1 = new SynchronizationContext ();\r
27                         SynchronizationContext sc2 = new SynchronizationContext ();\r
28 \r
29 #if MOBILE\r
30                         Assert.IsNotNull (SynchronizationContext.Current, "A1");\r
31 #else\r
32                         Assert.IsNull (SynchronizationContext.Current, "A1");\r
33 #endif\r
34                         Assert.IsNotNull (AsyncOperationManager.SynchronizationContext, "A2");\r
35                         Assert.IsNotNull (SynchronizationContext.Current, "A3");\r
36                         \r
37                         SynchronizationContext.SetSynchronizationContext (sc1);\r
38 \r
39                         Assert.AreSame (sc1, SynchronizationContext.Current, "A4");\r
40                         Assert.AreSame (sc1, AsyncOperationManager.SynchronizationContext, "A5");\r
41                         \r
42                         AsyncOperationManager.SynchronizationContext = sc2;\r
43 \r
44                         Assert.AreSame (sc2, SynchronizationContext.Current, "A6");\r
45                         Assert.AreSame (sc2, AsyncOperationManager.SynchronizationContext, "A7");\r
46                         \r
47                         SynchronizationContext.SetSynchronizationContext (null);\r
48 \r
49                         Assert.IsNull (SynchronizationContext.Current, "A8");\r
50                         // This is a brand new one, not sc1 or sc2\r
51                         Assert.IsNotNull (AsyncOperationManager.SynchronizationContext, "A9");\r
52                         Assert.IsNotNull (SynchronizationContext.Current, "A10");\r
53                         \r
54                         AsyncOperationManager.SynchronizationContext = null;\r
55 \r
56                         Assert.IsNull (SynchronizationContext.Current, "A11");\r
57                         // This is a brand new one, not sc1 or sc2\r
58                         Assert.IsNotNull (AsyncOperationManager.SynchronizationContext, "A12");\r
59                         Assert.IsNotNull (SynchronizationContext.Current, "A13");\r
60                 }\r
61         }\r
62 }\r
63 \r