Example #1
0
        /// <summary>
        /// Creates a new instance of <see cref="INetMQSubscriber"/> connected to the supplied <see cref="IAddress"/>
        /// </summary>
        /// <param name="address"><see cref="IAddress"/> of the remote publishing <see cref="Pigeon.Common.IConnection"/></param>
        /// <param name="topicEventHandler"><see cref="TopicEventHandler"/> delegate that the <see cref="INetMQSubscriber"/> will call
        /// upon receiving a topic message</param>
        /// <returns><see cref="INetMQSubscriber"/> connected to the <see cref="IAddress"/></returns>
        protected override INetMQSubscriber CreateNewSubscriber(IAddress address)
        {
            var socket     = new SubscriberSocket();
            var subscriber = new NetMQSubscriber(socket, messageFactory, topicDispatcher);

            subscriber.AddAddress(address);

            return(subscriber);
        }
Example #2
0
        public void ConnectAll_WithNoAddresses_DoesNothing()
        {
            // Arrange
            var socket     = new SubscriberSocket();
            var subscriber = new NetMQSubscriber(socket, messageFactory, topicDispatcher);

            // Act
            TestDelegate connectAll = () => subscriber.InitializeConnection();

            // Assert
            Assert.That(connectAll, Throws.Nothing);

            // Cleanup
            subscriber.Dispose();
        }
Example #3
0
        public void Addresses_WithNoAddressesAdded_IsEmpty()
        {
            // Arrange
            var socket     = new SubscriberSocket();
            var subscriber = new NetMQSubscriber(socket, messageFactory, topicDispatcher);

            // Act
            var any = subscriber.Addresses.Any();

            // Assert
            Assert.That(any, Is.False);

            // Cleanup
            subscriber.Dispose();
        }
Example #4
0
        public void RemoveAddress_WithUnaddedAddress_DoesNothing()
        {
            // Arrange
            var socket     = new SubscriberSocket();
            var subscriber = new NetMQSubscriber(socket, messageFactory, topicDispatcher);

            // Act
            TestDelegate removeAddress = () => subscriber.RemoveAddress(address);

            // Assert
            Assert.That(removeAddress, Throws.Nothing);

            // Cleanup
            subscriber.Dispose();
        }
Example #5
0
        public void AddAddress_WithNewAddress_AddsToAddresses()
        {
            // Arrange
            var socket     = new SubscriberSocket();
            var subscriber = new NetMQSubscriber(socket, messageFactory, topicDispatcher);

            // Act
            subscriber.AddAddress(address);

            // Assert
            CollectionAssert.Contains(subscriber.Addresses, address);

            // Cleanup
            subscriber.Dispose();
        }
Example #6
0
        public void AddAddress_WithNullAddress_ThrowsArgumentNullException()
        {
            // Arrange
            var socket     = new SubscriberSocket();
            var subscriber = new NetMQSubscriber(socket, messageFactory, topicDispatcher);

            // Act
            TestDelegate addAddress = () => subscriber.AddAddress(null);

            // Assert
            Assert.That(addAddress, Throws.ArgumentNullException);

            // Cleanup
            subscriber.Dispose();
        }
Example #7
0
        public void AddAddress_WithAlreadyAddedAddress_DoesNotAddTwice()
        {
            // Arrange
            var socket     = new SubscriberSocket();
            var subscriber = new NetMQSubscriber(socket, messageFactory, topicDispatcher);

            // Act
            subscriber.AddAddress(address);
            subscriber.AddAddress(address);

            // Assert
            Assert.That(subscriber.Addresses, Has.Count.EqualTo(1));

            // Cleanup
            subscriber.Dispose();
        }
Example #8
0
        public void RemoveAllAddresses_WithAddedAddresses_IsConnectedFalse()
        {
            // Arrange
            var socket     = new SubscriberSocket();
            var subscriber = new NetMQSubscriber(socket, messageFactory, topicDispatcher);

            subscriber.AddAddress(TcpAddress.Wildcard(5555));

            // Act
            subscriber.RemoveAllAddresses();

            // Assert
            Assert.That(subscriber.IsConnected, Is.False);

            // Cleanup
            subscriber.Dispose();
        }
Example #9
0
        public void RemoveAllAddresses_WithAddedAddresses_ClearsAddresses()
        {
            // Arrange
            var socket     = new SubscriberSocket();
            var subscriber = new NetMQSubscriber(socket, messageFactory, topicDispatcher);

            subscriber.AddAddress(TcpAddress.Wildcard(5555));

            // Act
            subscriber.RemoveAllAddresses();

            // Assert
            CollectionAssert.IsEmpty(subscriber.Addresses);

            // Cleanup
            subscriber.Dispose();
        }
Example #10
0
        public void RemoveAddress_WithAddedAddress_RemovesFromAddresses()
        {
            // Arrange
            var socket     = new SubscriberSocket();
            var subscriber = new NetMQSubscriber(socket, messageFactory, topicDispatcher);

            subscriber.AddAddress(address);

            // Act
            subscriber.RemoveAddress(address);

            // Assert
            CollectionAssert.DoesNotContain(subscriber.Addresses, address);

            // Cleanup
            subscriber.Dispose();
        }
Example #11
0
        public void Addresses_WhenDisposed_ThrowsInvalidOperationException()
        {
            // Arrange
            var socket     = new SubscriberSocket();
            var subscriber = new NetMQSubscriber(socket, messageFactory, topicDispatcher);
            var address    = TcpAddress.Wildcard(5555);

            subscriber.Dispose();

            // Act
            void AddAddress() => subscriber.AddAddress(address);

            // Assert
            Assert.That(AddAddress, Throws.TypeOf <InvalidOperationException>());

            // Cleanup
            subscriber.Dispose();
        }
Example #12
0
        public void Remove_WithAddedAddress_IsConnectedTrue()
        {
            // Arrange
            var socket     = new SubscriberSocket();
            var subscriber = new NetMQSubscriber(socket, messageFactory, topicDispatcher);
            var address    = TcpAddress.Wildcard(5555);
            var address2   = TcpAddress.Wildcard(5556);

            subscriber.AddAddress(address);
            subscriber.AddAddress(address2);
            subscriber.InitializeConnection();

            // Act
            subscriber.RemoveAddress(address);

            // Assert
            Assert.That(subscriber.IsConnected, Is.True);

            // Cleanup
            subscriber.TerminateConnection();
            subscriber.Dispose();
        }
Example #13
0
 private void Start()
 {
     netMQSubscriber = new NetMQSubscriber(HandleMessage);
     netMQSubscriber.Start();
 }