public void TestConstructor2() { SyncMockApplication ap = new SyncMockApplication(new MockClientCallback()); WebSynchronizationContext broker = new WebSynchronizationContext(ap); broker.Dispose(); ap.Stop(); }
public void TestStopInModal() { SyncMockApplication ap = new SyncMockApplication(new MockClientCallback()); _callCount = 1; _messageCount = 0; _fault = false; ap.SyncContext.Post(Wait, null); ap.SyncContext.Post(Send, ++_messageCount); ap.SyncContext.Post(Send, ++_messageCount); ap.SyncContext.Post(DoModal, ap); ap.SyncContext.Post(Send, ++_messageCount); ap.SyncContext.Post(Send, ++_messageCount); ap.SyncContext.Post(Sleep, 100); Thread.Sleep(1000); lock (_waitSyncLock) Monitor.Pulse(_waitSyncLock); ap.SyncContext.Send(Sleep, 100); ap.Stop(); Assert.IsFalse(_fault, "Fault during test, out of order entries"); }
public void TestSend() { SyncMockApplication ap = new SyncMockApplication(new MockClientCallback()); _messageCount = 0; _callCount = 1; _fault = false; ThreadPool.QueueUserWorkItem(delegate { ap.SyncContext.Send(Wait, null); }); ThreadPool.QueueUserWorkItem(delegate { ap.SyncContext.Send(Send, ++_messageCount); }); ThreadPool.QueueUserWorkItem(delegate { ap.SyncContext.Send(Send, ++_messageCount); }); ThreadPool.QueueUserWorkItem(delegate { ap.SyncContext.Send(Send, ++_messageCount); }); ThreadPool.QueueUserWorkItem(delegate { ap.SyncContext.Send(Send, ++_messageCount); }); ThreadPool.QueueUserWorkItem(delegate { ap.SyncContext.Send(Sleep, 100); }); while (_messageCount < 4) { Thread.Sleep(1000); } lock (_waitSyncLock) { Monitor.Pulse(_waitSyncLock); } ap.SyncContext.Send(Sleep, 100); Assert.IsFalse(_fault, "Fault during test, out of order entries"); ap.Stop(); }
public void TestNestedSendAndPost() { SyncMockApplication ap = new SyncMockApplication(new MockClientCallback()); _messageCount = 0; _callCount = 1; _fault = false; ThreadPool.QueueUserWorkItem(delegate { ap.SyncContext.Send(Wait, null); }); ThreadPool.QueueUserWorkItem(delegate { ap.SyncContext.Send(Send, ++_messageCount); }); ThreadPool.QueueUserWorkItem(delegate { ap.SyncContext.Send(Send, ++_messageCount); }); ap.SyncContext.Post(Send, ++_messageCount); ap.SyncContext.Post(Send, ++_messageCount); ThreadPool.QueueUserWorkItem(delegate { ap.SyncContext.Send(Send, ++_messageCount); }); ap.SyncContext.Post(DoModal, ap); ap.SyncContext.Post(Send, ++_messageCount); ap.SyncContext.Post(PostMessage, ap); ap.SyncContext.Post(PostMessage, ap); ap.SyncContext.Post(Send, ++_messageCount); ap.SyncContext.Post(ReleaseModal, ap); ap.SyncContext.Post(SendMessage, ap); ap.SyncContext.Post(Send, ++_messageCount); ap.SyncContext.Post(SendMessage, ap); ap.SyncContext.Post(Send, ++_messageCount); ThreadPool.QueueUserWorkItem(delegate { ap.SyncContext.Send(Send, ++_messageCount); }); ThreadPool.QueueUserWorkItem(delegate { ap.SyncContext.Send(Sleep, 100); }); ap.SyncContext.Post(Send, ++_messageCount); ap.SyncContext.Post(Send, ++_messageCount); while (_messageCount < 12) Thread.Sleep(1000); lock (_waitSyncLock) { Monitor.Pulse(_waitSyncLock); } Thread.Sleep(1000); ap.SyncContext.Send(Sleep, 100); Assert.IsFalse(_fault, "Fault during test, out of order entries"); ap.Stop(); }
public void NestedDoModal() { SyncMockApplication ap = new SyncMockApplication(new MockClientCallback()); _callCount = 1; _messageCount = 0; _fault = false; ap.SyncContext.Post(Wait, null); ap.SyncContext.Post(Send, ++_messageCount); ap.SyncContext.Post(Send, ++_messageCount); ap.SyncContext.Post(DoModal, ap); ap.SyncContext.Post(Send, ++_messageCount); ap.SyncContext.Post(Send, ++_messageCount); ap.SyncContext.Post(DoModal, ap); ap.SyncContext.Post(Send, ++_messageCount); ap.SyncContext.Post(Send, ++_messageCount); ap.SyncContext.Post(ReleaseModal, ap); ap.SyncContext.Post(Send, ++_messageCount); ap.SyncContext.Post(Send, ++_messageCount); ap.SyncContext.Post(DoModal, ap); ap.SyncContext.Post(Send, ++_messageCount); ap.SyncContext.Post(Send, ++_messageCount); ap.SyncContext.Post(ReleaseModal, ap); ap.SyncContext.Post(Send, ++_messageCount); ap.SyncContext.Post(Send, ++_messageCount); ap.SyncContext.Post(ReleaseModal, ap); ap.SyncContext.Post(Send, ++_messageCount); ap.SyncContext.Post(Sleep, 100); //broker.Post(Release, null); Thread.Sleep(1000); lock (_waitSyncLock) Monitor.Pulse(_waitSyncLock); ap.SyncContext.Send(Sleep, 100); Assert.IsFalse(_fault, "Fault during test, out of order entries"); ap.Stop(); }