+//\r
+// AsyncOperationManager.cs\r
+//\r
+// Author:\r
+// Jonathan Pobst <monkey@jpobst.com>\r
+//\r
+// Copyright (C) 2007 Novell, Inc.\r
+//\r
+\r
+#if NET_2_0\r
+\r
+using System;\r
+using System.Threading;\r
+using System.ComponentModel;\r
+using System.Globalization;\r
+\r
+using NUnit.Framework;\r
+\r
+namespace MonoTests.System.ComponentModel\r
+{\r
+ [TestFixture]\r
+ public class AsyncOperationManagerTest\r
+ {\r
+ [Test]\r
+ public void SyncContext ()\r
+ {\r
+ SynchronizationContext sc1 = new SynchronizationContext ();\r
+ SynchronizationContext sc2 = new SynchronizationContext ();\r
+\r
+ Assert.IsNull (SynchronizationContext.Current, "A1");\r
+ Assert.IsNotNull (AsyncOperationManager.SynchronizationContext, "A2");\r
+ Assert.IsNotNull (SynchronizationContext.Current, "A3");\r
+ \r
+ SynchronizationContext.SetSynchronizationContext (sc1);\r
+\r
+ Assert.AreSame (sc1, SynchronizationContext.Current, "A4");\r
+ Assert.AreSame (sc1, AsyncOperationManager.SynchronizationContext, "A5");\r
+ \r
+ AsyncOperationManager.SynchronizationContext = sc2;\r
+\r
+ Assert.AreSame (sc2, SynchronizationContext.Current, "A6");\r
+ Assert.AreSame (sc2, AsyncOperationManager.SynchronizationContext, "A7");\r
+ \r
+ SynchronizationContext.SetSynchronizationContext (null);\r
+\r
+ Assert.IsNull (SynchronizationContext.Current, "A8");\r
+ // This is a brand new one, not sc1 or sc2\r
+ Assert.IsNotNull (AsyncOperationManager.SynchronizationContext, "A9");\r
+ Assert.IsNotNull (SynchronizationContext.Current, "A10");\r
+ \r
+ AsyncOperationManager.SynchronizationContext = null;\r
+\r
+ Assert.IsNull (SynchronizationContext.Current, "A11");\r
+ // This is a brand new one, not sc1 or sc2\r
+ Assert.IsNotNull (AsyncOperationManager.SynchronizationContext, "A12");\r
+ Assert.IsNotNull (SynchronizationContext.Current, "A13");\r
+ }\r
+ }\r
+}\r
+\r
+#endif\r