public void Message_Handler_ACK() { ResonanceTransporter t1 = new ResonanceTransporter(new InMemoryAdapter("TST")); ResonanceTransporter t2 = new ResonanceTransporter(new InMemoryAdapter("TST")); t1.Connect(); t2.Connect(); bool received = false; t2.RegisterMessageHandler <CalculateRequest>((t, message) => { received = true; }); t1.Send(new CalculateRequest() { A = 10, B = 15 }, new ResonanceMessageConfig() { RequireACK = true }); Thread.Sleep(500); Assert.IsTrue(received); t1.Dispose(true); t2.Dispose(true); }
public void Message_Handler_ACK_Throws_Exception() { ResonanceTransporter t1 = new ResonanceTransporter(new InMemoryAdapter("TST")); ResonanceTransporter t2 = new ResonanceTransporter(new InMemoryAdapter("TST")); t2.MessageAcknowledgmentBehavior = ResonanceMessageAckBehavior.ReportErrors; t1.MessageAcknowledgmentBehavior = ResonanceMessageAckBehavior.ReportErrors; t1.Connect(); t2.Connect(); bool received = false; t2.RegisterMessageHandler <CalculateRequest>((t, message) => { received = true; throw new Exception("Test Error"); }); Assert.ThrowsException <ResonanceResponseException>(() => { t1.Send(new CalculateRequest() { A = 10, B = 15 }, new ResonanceMessageConfig() { RequireACK = true }); }); Thread.Sleep(500); Assert.IsTrue(received); t1.Dispose(true); t2.Dispose(true); }