2 // AsyncOperationManager.cs
\r
5 // Jonathan Pobst <monkey@jpobst.com>
\r
7 // Copyright (C) 2007 Novell, Inc.
\r
12 using System.Threading;
\r
13 using System.ComponentModel;
\r
14 using System.Globalization;
\r
16 using NUnit.Framework;
\r
18 namespace MonoTests.System.ComponentModel
\r
21 public class AsyncOperationManagerTest
\r
24 public void SyncContext ()
\r
26 SynchronizationContext sc1 = new SynchronizationContext ();
\r
27 SynchronizationContext sc2 = new SynchronizationContext ();
\r
30 Assert.IsNotNull (SynchronizationContext.Current, "A1");
\r
32 Assert.IsNull (SynchronizationContext.Current, "A1");
\r
34 Assert.IsNotNull (AsyncOperationManager.SynchronizationContext, "A2");
\r
35 Assert.IsNotNull (SynchronizationContext.Current, "A3");
\r
37 SynchronizationContext.SetSynchronizationContext (sc1);
\r
39 Assert.AreSame (sc1, SynchronizationContext.Current, "A4");
\r
40 Assert.AreSame (sc1, AsyncOperationManager.SynchronizationContext, "A5");
\r
42 AsyncOperationManager.SynchronizationContext = sc2;
\r
44 Assert.AreSame (sc2, SynchronizationContext.Current, "A6");
\r
45 Assert.AreSame (sc2, AsyncOperationManager.SynchronizationContext, "A7");
\r
47 SynchronizationContext.SetSynchronizationContext (null);
\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
54 AsyncOperationManager.SynchronizationContext = null;
\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