Ejemplo n.º 1
0
 void IHandle <CountedTestMessage> .Handle(CountedTestMessage message)
 {
     if (message.MessageNumber != _testMsgCount)
     {
         _isInOrder = false;
     }
     Interlocked.Increment(ref _testMsgCount);
 }
Ejemplo n.º 2
0
        void can_handle_threaded_messages()
        {
            var bus = new Dispatcher("test", 2);

            using (var sub = new TestSubscriber(bus)) {
                sub.Subscribe(
                    new AdHocHandler <CountedTestMessage>(_ => Interlocked.Increment(ref _msgCount)));
                var messages = new IMessage[_count];
                for (int i = 0; i < _count; i++)
                {
                    messages[i] = new CountedTestMessage(i);
                }

                for (int i = 0; i < _count; i++)
                {
                    bus.Publish(messages[i]);
                }

                AssertEx.IsOrBecomesTrue(
                    () => _msgCount == _count,
                    1000,
                    $"Expected message count to be {_count} Messages, found {_msgCount }");
            }
        }