public void AddCommandListenerShouldHaveBasicConsumer() { // Arrange IBasicConsumer basicConsumer = null; var modelMock = new Mock <IModel>(); var model = modelMock.Object; var connectionMock = new Mock <IConnection>(); var connection = connectionMock.Object; connectionMock.Setup(mock => mock.CreateModel()).Returns(model); modelMock.Setup(mock => mock.QueueDeclare(string.Empty, false, true, true, null)) .Returns(new QueueDeclareOk("TestQueue", 0, 1)); modelMock.Setup(mock => mock.BasicConsume("TestQueue", false, It.IsAny <string>(), false, false, null, It.IsAny <IBasicConsumer>())) .Callback(( string queue, bool autoAck, string consumerTag, bool noLocal, bool exclusive, IDictionary <string, object> arguments, IBasicConsumer consumer) => { basicConsumer = consumer; }); using var eventBus = new EventBus(connection, "TestExchange"); // Act eventBus.AddCommandListener(new Mock <ICommandListener>().Object, "TestQueue"); // Assert Assert.IsNotNull(basicConsumer); }
public void AddCommandListenerShouldCallQueueDeclare() { // Arrange var modelMock = new Mock <IModel>(); var model = modelMock.Object; var connectionMock = new Mock <IConnection>(); var connection = connectionMock.Object; connectionMock.Setup(mock => mock.CreateModel()).Returns(model); modelMock.Setup(mock => mock.QueueDeclare(string.Empty, false, true, true, null)) .Returns(new QueueDeclareOk("TestQueue", 0, 1)); using var eventBus = new EventBus(connection, "TestExchange"); // Act eventBus.AddCommandListener(new Mock <ICommandListener>().Object, "TestQueue"); // Assert modelMock.Verify(mock => mock.QueueDeclare("TestQueue", true, false, false, null)); }
public void AddCommandListenerShouldAddHandleToConsumerReceived() { // Arrange IBasicConsumer basicConsumer = null; var modelMock = new Mock <IModel>(); var model = modelMock.Object; var connectionMock = new Mock <IConnection>(); var connection = connectionMock.Object; var commandListenerMock = new Mock <ICommandListener>(); connectionMock.Setup(mock => mock.CreateModel()).Returns(model); modelMock.Setup(mock => mock.QueueDeclare(string.Empty, false, true, true, null)) .Returns(new QueueDeclareOk("TestQueue", 0, 1)); modelMock.Setup(mock => mock.BasicConsume("TestQueue", false, It.IsAny <string>(), false, false, null, It.IsAny <IBasicConsumer>())) .Callback(( string queue, bool autoAck, string consumerTag, bool noLocal, bool exclusive, IDictionary <string, object> arguments, IBasicConsumer consumer) => { basicConsumer = consumer; }); using var eventBus = new EventBus(connection, "TestExchange"); // Act eventBus.AddCommandListener(commandListenerMock.Object, "TestQueue"); basicConsumer.HandleBasicDeliver("", ulong.MaxValue, false, "TestExchange", "Test.Test.*", new BasicProperties(), It.IsAny <byte[]>()); // Assert commandListenerMock.Verify(mock => mock.Handle(It.IsAny <object>(), It.IsAny <BasicDeliverEventArgs>())); }