public void WeShouldGetTheRightMethod() { var request = new SomeInternalRequest(); var handlerMethod = RequestMessageDispatcher.GetGenericDispatchMethodFor(request); handlerMethod.ShouldNotBe(null); }
public IEnumerable<IMessagePump> CreateAll() { _logger.Debug("Creating request message pumps"); var requestTypes = _requestHandlerTypes.Value.SelectMany(ht => ht.GetGenericInterfacesClosing(typeof (IHandleRequest<,>))) .Select(gi => gi.GetGenericArguments().First()) .OrderBy(t => t.FullName) .Distinct() .ToArray(); foreach (var requestType in requestTypes) { _logger.Debug("Creating message pump for request type {0}", requestType.Name); var queuePath = PathFactory.QueuePathFor(requestType); var messageReceiver = new NimbusQueueMessageReceiver(_queueManager, queuePath, _concurrentHandlerLimit); _garbageMan.Add(messageReceiver); var dispatcher = new RequestMessageDispatcher(_messagingFactory, requestType, _requestHandlerFactory, _clock); _garbageMan.Add(dispatcher); var pump = new MessagePump(messageReceiver, dispatcher, _logger, _clock); _garbageMan.Add(pump); yield return pump; } }