public void ResultHandler_WaitForResult_WaitHandler() { var resultHandler = new ResultHandler(); var waitHandle = resultHandler.RegisterWaitHandler(ResultFilterFactory.CreateConnectResultFilter()); var waitTask = resultHandler.WaitForResult(waitHandle); var connected = new Connected() {Session = "TestSession"}; var returnedObject = new ReturnedObject(connected.MessageType, JObject.FromObject(connected), JsonConvert.SerializeObject(connected)); resultHandler.AddResult(returnedObject); waitTask.Wait(); Assert.AreEqual(returnedObject, waitTask.Result); }
public void ResultHandler_WaitForResult_ReactivateWaitHandle() { var resultHandler = new ResultHandler(); var waitHandle = resultHandler.RegisterWaitHandler(ResultFilterFactory.CreateConnectResultFilter()); var waitTask = resultHandler.WaitForResult(waitHandle); var connected = new Connected() { Session = "TestSession" }; var returnedObject = new ReturnedObject(connected.MessageType, JObject.FromObject(connected), JsonConvert.SerializeObject(connected)); resultHandler.AddResult(returnedObject); waitTask.Wait(); Assert.AreEqual(returnedObject, waitTask.Result); PCLTesting.ExceptionAssert.Throws<InvalidOperationException>(() => resultHandler.WaitForResult(waitHandle)); }
public void ResultHandler_RegisterResultCallback_DuplicateCallback() { var resultHandler = new ResultHandler(); bool callbackCalled = false; bool secondCallbackCalled = false; var connected = new Connected() { Session = "TestSession" }; var returnedObject = new ReturnedObject(connected.MessageType, JObject.FromObject(connected), JsonConvert.SerializeObject(connected)); resultHandler.RegisterResultCallback(ResultFilterFactory.CreateConnectResultFilter(), o => { callbackCalled = true; Assert.AreEqual(returnedObject, o); }); resultHandler.RegisterResultCallback(ResultFilterFactory.CreateConnectResultFilter(), o => { secondCallbackCalled = true; Assert.AreEqual(returnedObject, o); }); resultHandler.AddResult(returnedObject); Assert.IsTrue(callbackCalled); Assert.IsTrue(secondCallbackCalled); }