Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
        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]);
        }