public void Message_Handler_Async_With_Transporter() { ResonanceTransporter t1 = new ResonanceTransporter(new InMemoryAdapter("TST")); ResonanceTransporter t2 = new ResonanceTransporter(new InMemoryAdapter("TST")); t1.Connect(); t2.Connect(); Handlers handlers = new Handlers(); IDisposable handler = t2.CreateHandlerBuilder() .ForMessage <CalculateRequest>() .IncludeTransporter() .IsAsync() .Build(handlers.HandleMessageAsyncWithTransporter); var request = new CalculateRequest() { A = 10, B = 15 }; t1.Send(request); TestHelper.WaitWhile(() => _receivedRequest == null, TimeSpan.FromSeconds(5)); Assert.AreEqual(_receivedRequest.A + _receivedRequest.B, request.A + request.B); Assert.AreEqual(_receivedTransporter, t2); _receivedRequest = null; handler.Dispose(); t1.Send(request); Thread.Sleep(500); Assert.IsNull(_receivedRequest); t1.Dispose(true); t2.Dispose(true); }
public void Request_Handler_Async_With_Response_With_Transporter() { ResonanceTransporter t1 = new ResonanceTransporter(new InMemoryAdapter("TST")); ResonanceTransporter t2 = new ResonanceTransporter(new InMemoryAdapter("TST")); t1.Connect(); t2.Connect(); Handlers handlers = new Handlers(); IDisposable handler = t2.CreateHandlerBuilder() .ForRequest <CalculateRequest>() .WithResponse <CalculateResponse>() .IncludeTransporter() .IsAsync() .Build(handlers.HandleRequestAsyncWithResponseWithTransporter); var request = new CalculateRequest() { A = 10, B = 15 }; var response = t1.SendRequest <CalculateRequest, CalculateResponse>(request); Assert.AreEqual(response.Sum, request.A + request.B); Assert.AreEqual(_receivedTransporter, t2); handler.Dispose(); Assert.ThrowsException <TimeoutException>(() => { t1.SendRequest <CalculateRequest, CalculateResponse>(request, new ResonanceRequestConfig() { Timeout = TimeSpan.FromSeconds(1) }); }); t1.Dispose(true); t2.Dispose(true); }