public void Subscribe_HandleAllMessages(int messageCount) { var consumerMock = new Mock <INatsStreamingConsumer>(); consumerMock.Setup(c => c.Subscribe(It.IsAny <Func <byte[], INatsStreamingSignalProperties, Task> >())) .Callback((Func <byte[], INatsStreamingSignalProperties, Task> handler) => { for (var i = 0; i < messageCount; i++) { handler(new byte[0], new Mock <INatsStreamingSignalProperties>().Object).Wait(); } }); var factory = Create.NatsConsumerFactory().SetupCreate(consumerMock.Object).Get(); var natsConsumer = new NatsConsumer("topic", "Environment", factory); var receiveMessagesCount = 0; natsConsumer.Subscribe(bytes => { receiveMessagesCount++; return(Task.CompletedTask); }); receiveMessagesCount.Should().Be(messageCount); }
public void CtorTopicIsEmply_GetArgumentException() { var Environment = "Test"; var factoryMock = new Mock <INatsStreamingConsumerFactory>(); IConsumer natsConsumer = null; Action act = () => { natsConsumer = new NatsConsumer("", Environment, factoryMock.Object); }; act.Should().Throw <ArgumentNullException>("Topic(subscription) must me not empty."); }
public void Connect_Success() { var consumerMock = new Mock <INatsStreamingConsumer>(); var factory = Create.NatsConsumerFactory().SetupCreate(consumerMock.Object).Get(); IConsumer natsConsumer = new NatsConsumer("topic", "Environment", factory); Action act = () => { natsConsumer.Connect(); }; act.Should().NotThrow(); consumerMock.Verify(c => c.Connect(), Times.Once); }
public void Subscribe_Error() { var consumerMock = new Mock <INatsStreamingConsumer>(); consumerMock.Setup(c => c.Subscribe(It.IsAny <Func <byte[], INatsStreamingSignalProperties, Task> >())).Throws <Exception>(); var factory = Create.NatsConsumerFactory().SetupCreate(consumerMock.Object).Get(); var natsConsumer = new NatsConsumer("topic", "Environment", factory); Action act = () => { natsConsumer.Subscribe(bytes => Task.CompletedTask); }; act.Should().Throw <Exception>(); consumerMock.Verify(c => c.Subscribe(It.IsAny <Func <byte[], INatsStreamingSignalProperties, Task> >()), Times.Once); }
public void Ctor_SetSameTierAndTopic() { var Environment = "Test"; var topic = "Test.Topic"; var factoryMock = new Mock <INatsStreamingConsumerFactory>(); IConsumer natsConsumer = null; Action act = () => { natsConsumer = new NatsConsumer(topic, Environment, factoryMock.Object); }; act.Should().NotThrow(); natsConsumer.Should().NotBeNull(); using (new AssertionScope()) { natsConsumer.Environment.Should().Be(Environment); natsConsumer.Topic.Should().Be(topic); } }
public async Task Test2() { var port = 4222; var subPort = 8222; using var container = Containers.CreateNatsStreamingContainer(port, subPort); container.Start(); await Task.Delay(1000); //StartingNats var connectionConfiguration = new NatsStreamingConnectionConfigurationBuilder() .WithClusterId("test-cluster") .WithNatsUrl($"http://localhost:{port}/") .Build(); var factory = new NatsStreamingConsumerFactory(connectionConfiguration); var natsConsumer = new NatsConsumer("test", "test", factory); Action act = () => natsConsumer.Connect(); act.Should().NotThrow(); }