/// <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); }
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(); }
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(); }
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(); }
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(); }
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(); }
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(); }
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(); }
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(); }
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(); }
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(); }
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(); }
private void Start() { netMQSubscriber = new NetMQSubscriber(HandleMessage); netMQSubscriber.Start(); }