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)); }