internal void InitializedPublisher_IsInCorrectState() { // Arrange // Act var publisher = new MockDataPublisher( this.container, DataBusFactory.Create(this.container), EncryptionSettings.None(), ZmqNetworkAddress.LocalHost(new Port(55555))); // Assert Assert.Equal(ComponentState.Initialized, publisher.ComponentState); Assert.Equal(0, publisher.SentCount); }
internal void GivenMessageToPublish_WhenMessageValid_PublishesToSubscriber() { // Arrange var publisher = new MockDataPublisher( this.container, DataBusFactory.Create(this.container), EncryptionSettings.None(), ZmqNetworkAddress.LocalHost(new Port(55555))); publisher.Start().Wait(); const string testAddress = "tcp://localhost:55555"; var subscriber = new SubscriberSocket(testAddress); subscriber.Connect(testAddress); subscriber.Subscribe(TestTopic); Task.Delay(100).Wait(); // Allow sockets to subscribe // Act const string toSend = "1234,1234"; publisher.Endpoint.SendAsync((TestTopic, toSend)); var topic = subscriber.ReceiveFrameBytes(); var message = subscriber.ReceiveFrameBytes(); // Assert Assert.Equal(TestTopic, Encoding.UTF8.GetString(topic)); Assert.Equal(toSend, Encoding.UTF8.GetString(message)); Assert.Equal(ComponentState.Running, publisher.ComponentState); Assert.Equal(1, publisher.SentCount); // Tear Down subscriber.Disconnect(testAddress); subscriber.Dispose(); publisher.Stop().Wait(); publisher.Dispose(); }