void IHandle <CountedTestMessage> .Handle(CountedTestMessage message) { if (message.MessageNumber != _testMsgCount) { _isInOrder = false; } Interlocked.Increment(ref _testMsgCount); }
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 }"); } }