public void Subscribe(Type messageType, IMessageSink messageSink) { Condition.Requires(messageType, "messageType").IsNotNull(); Condition.Requires(messageSink, "messageSink").IsNotNull(); QueueName destination = RouteManager.GetDestinationForMessage(messageType); if (destination == null) { throw new InvalidOperationException(string.Format("Could not find any message routing information for message type '{0}'.", messageType)); } Logger.DebugFormat("Subscribing to {0} at {1}.", messageType, destination); SubscribeCommand cmd = new SubscribeCommand(messageType, InputQueueName); Message msg = new Message(cmd); messageSink.Send(destination, msg); }
public void Subscribe(Type messageType, IMessageSink messageSink) { Condition.Requires(messageType, "messageType").IsNotNull(); Condition.Requires(messageSink, "messageSink").IsNotNull(); QueueName destination = RouteManager.GetDestinationForMessage(messageType); if (destination == null) throw new InvalidOperationException(string.Format("Could not find any message routing information for message type '{0}'.", messageType)); Logger.DebugFormat("Subscribing to {0} at {1}.", messageType, destination); SubscribeCommand cmd = new SubscribeCommand(messageType, InputQueueName); Message msg = new Message(cmd); messageSink.Send(destination, msg); }
public void ItCanHandleSubscribeMessage() { // Arrange SubscriptionMessageHandlers handlers = new SubscriptionMessageHandlers { SubscriptionService = Service }; SubscribeCommand cmd = new SubscribeCommand(typeof(MessageToSubscribe1), "WhollyBob"); // Act handlers.Handle(cmd); // Assert IList<QueueName> subscribers = Service.GetSubscribers(typeof(MessageToSubscribe1)).ToList(); Assert.AreEqual(1, subscribers.Count); Assert.AreEqual(new QueueName("WhollyBob"), subscribers[0]); }