public static IApplicationBuilder UseRabbitListener(this IApplicationBuilder application) { Listener = application.ApplicationServices.GetRequiredService <RabbitMQQueueConnection>(); var liftime = application.ApplicationServices.GetRequiredService <Microsoft.AspNetCore.Hosting.IApplicationLifetime>(); liftime.ApplicationStarted.Register(OnStarted); liftime.ApplicationStopping.Register(OnStopping); return(application); }
public static IApplicationBuilder UseRabbitListener(this IApplicationBuilder application) { Listener = application.ApplicationServices.GetService <RabbitMQQueueConnection>(); var lifetime = application.ApplicationServices.GetService <IHostApplicationLifetime>(); lifetime.ApplicationStarted.Register(OnStarted); lifetime.ApplicationStopping.Register(OnStoped); return(application); }
public void BasicPublishReturnsWhenBasicAcksReceivedTest() { var connFactory = Substitute.For<IConnectionFactory>(); var mockConn = Substitute.For<IConnection>(); var model = Substitute.For<IModel>(); model.WhenForAnyArgs(x => x.BasicPublish(null, null, false, null, null)).Do(c => model.BasicAcks += Raise.EventWith<BasicAckEventArgs>()); connFactory.CreateConnection().Returns(mockConn); connFactory.CreateConnection(string.Empty).ReturnsForAnyArgs(mockConn); mockConn.CreateModel().Returns(model); var queueName = Guid.NewGuid().ToString(); var conn = new RabbitMQQueueConnection(connFactory, queueName, false); conn.BasicPublish(Constants.DefaultExchange, queueName, null, new MemoryStream(), TimeSpan.FromSeconds(5), CancellationToken.None); }
public void RabbitMQCoonnectivityTest() { var clientFactory = new ConnectionFactory() { HostName = "localhost", UserName = "******", Password = "******", Port = 5672, }; var message = new ChooserLbMessage() { //IDNP = "512412412312", IDVN = "1241231231", PartyChoosed = 3, Vote_date = DateTime.Now }; var connection = clientFactory.CreateConnection(); using (var channel = connection.CreateModel()) { channel.QueueDeclare(queue: "voteDataMsg", durable: false, exclusive: false, autoDelete: false, arguments: null); string messageSerialized = JsonConvert.SerializeObject(message); var body = Encoding.UTF8.GetBytes(messageSerialized); channel.BasicPublish(exchange: "", routingKey: "voteDataMsg", basicProperties: null, body: body); } var receive_connection = new RabbitMQQueueConnection(clientFactory); receive_connection.InitReceiverChannel(); Assert.IsTrue(receive_connection.IsConnected); }
public void BasicPublishThrowsWhenBasicAcksNotReceivedTest() { var connFactory = Substitute.For<IConnectionFactory>(); var mockConn = Substitute.For<IConnection>(); var model = Substitute.For<IModel>(); connFactory.CreateConnection().Returns(mockConn); connFactory.CreateConnection(string.Empty).ReturnsForAnyArgs(mockConn); mockConn.CreateModel().Returns(model); var queueName = Guid.NewGuid().ToString(); var conn = new RabbitMQQueueConnection(connFactory, queueName, false); Exception error = null; try { conn.BasicPublish(Constants.DefaultExchange, queueName, null, new MemoryStream(), TimeSpan.FromSeconds(5), CancellationToken.None); } catch(TimeoutException e) { error = e; } Assert.NotNull(error); }
public void BasicPublishThrowsWhenBasicNacksEventRaisedTest() { var connFactory = Substitute.For<IConnectionFactory>(); var mockConn = Substitute.For<IConnection>(); var model = Substitute.For<IModel>(); model.WhenForAnyArgs(x => x.BasicPublish(null, null, false, null, null)).Do(c => model.BasicNacks += Raise.EventWith<BasicNackEventArgs>()); connFactory.CreateConnection().Returns(mockConn); connFactory.CreateConnection(string.Empty).ReturnsForAnyArgs(mockConn); mockConn.CreateModel().Returns(model); var queueName = Guid.NewGuid().ToString(); var conn = new RabbitMQQueueConnection(connFactory, queueName, false); Exception error = null; try { conn.BasicPublish(Constants.DefaultExchange, queueName, null, new MemoryStream(), TimeSpan.FromSeconds(5), CancellationToken.None); } catch (MessageNotAcknowledgedByBrokerException e) { error = e; } Assert.NotNull(error); }
public void ReaderIsNotClosedOnDisposedWhenSetToFalseTest() { var connFactory = Substitute.For<IConnectionFactory>(); var mockConn = Substitute.For<IConnection>(); var model = Substitute.For<IModel>(); connFactory.CreateConnection().Returns(mockConn); connFactory.CreateConnection(string.Empty).ReturnsForAnyArgs(mockConn); mockConn.CreateModel().Returns(model); var queueName = Guid.NewGuid().ToString(); var conn = new RabbitMQQueueConnection(connFactory, queueName, false); conn.EnsureConnectionOpen(TimeSpan.FromSeconds(30), CancellationToken.None); conn.Dispose(); model.DidNotReceiveWithAnyArgs().QueueDeleteNoWait(null, false, false); }
public RabbitMQConnectionBaseTests(ITestOutputHelper outputHelper) : base(outputHelper) { var connFactory = Substitute.For<IConnectionFactory>(); Connection = new RabbitMQQueueConnection(connFactory); }
public void ExceptionsAreSuppressedWhenClosingQueueTest() { var connFactory = Substitute.For<IConnectionFactory>(); var mockConn = Substitute.For<IConnection>(); var model = Substitute.For<IModel>(); model.WhenForAnyArgs(x => x.QueueDeleteNoWait(null, false, false)).Do(x => { throw new Exception(); }); connFactory.CreateConnection().Returns(mockConn); connFactory.CreateConnection(string.Empty).ReturnsForAnyArgs(mockConn); mockConn.CreateModel().Returns(model); var queueName = Guid.NewGuid().ToString(); var conn = new RabbitMQQueueConnection(connFactory, queueName, true); conn.EnsureConnectionOpen(TimeSpan.FromSeconds(30), CancellationToken.None); conn.Dispose(); }