public void terminated_message_should_not_reach_further_handlers() { List <object> results = new List <object> (); dispatcher.AddMessageHandler(message, CreateHandler.Handler((Action <object>)results.Add, new object[] { 'A' })); dispatcher.AddMessageHandler(message, CreateHandler.Handler((Action <object>)results.Add, new object[] { 'B' })); dispatcher.AddMessageHandler(message, CreateHandler.HandlerThatErrors((Action <object>)results.Add, new object[] { "C (with error)" })); dispatcher.AddMessageHandler(message, CreateHandler.Handler((Action <object>)results.Add, new object[] { 'D' })); dispatcher.DispatchMessage(message); Assert.That(results, Is.EqualTo(new object[] { 'A', 'B', "C (with error)" }).AsCollection); }
public async Task terminated_async_message_should_not_reach_further_handlers_when_reversed() { List <object> results = new List <object> (); dispatcher.AddMessageHandler(message, CreateHandler.AsyncHandler((Action <object>)results.Add, new object[] { 'A' })); dispatcher.AddMessageHandler(message, CreateHandler.AsyncHandler((Action <object>)results.Add, new object[] { 'B' })); dispatcher.AddMessageHandler(message, CreateHandler.HandlerThatErrors((Action <object>)results.Add, new object[] { "C (with error)" })); dispatcher.AddMessageHandler(message, CreateHandler.AsyncHandler((Action <object>)results.Add, new object[] { 'D' })); dispatcher.DispatchMessage(message, true); await Delay(200); Assert.That(results, Is.EqualTo(new object[] { 'D', "C (with error)" }).AsCollection); }