コード例 #1
0
        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);
        }
コード例 #2
0
        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);
        }