public async Task WhenReceiveShouldValidateMaxNumberOfMessages() { //Arrange const int maxNumberOfMessages = 0; var modelMock = new Mock <IModel>(); var connectionMock = new Mock <IConnection>(); var configurationMock = new Mock <IConfiguration>(); var messageQueueOptions = new MessageQueueOptions(); var msg = new TestMessage() { Id = Guid.NewGuid().ToString() }; modelMock.Setup(x => x.BasicGet(It.IsAny <string>(), It.IsAny <bool>())) .Returns(new BasicGetResult(0, false, "", "", 1, null, Encoding.ASCII.GetBytes(JsonConvert.SerializeObject(msg)))) .Verifiable(); configurationMock.SetupGet(x => x[It.IsAny <string>()]).Returns(string.Empty); var queue = new MessageQueueRabbitMq(connectionMock.Object, messageQueueOptions, new MessageQueueInfo(messageQueueOptions, configurationMock.Object)); //Act async Task act() => await queue.Receive <TestMessage>(maxNumberOfMessages) .GetAsyncEnumerator() .MoveNextAsync(); //Assert await Assert.ThrowsAsync <ArgumentException>(act); }
public async Task ShouldSend() { //Arrange var modelMock = new Mock <IModel>(); var connectionMock = new Mock <IConnection>(); var configurationMock = new Mock <IConfiguration>(); var messageQueueOptions = new MessageQueueOptions(); modelMock.Setup(x => x.BasicPublish(It.IsAny <string>(), It.IsAny <string>(), It.IsAny <bool>(), It.IsAny <IBasicProperties>(), It.IsAny <ReadOnlyMemory <byte> >())) .Verifiable(); configurationMock.SetupGet(x => x[It.IsAny <string>()]).Returns(string.Empty); connectionMock.Setup(x => x.CreateModel()).Returns(modelMock.Object); var queue = new MessageQueueRabbitMq(connectionMock.Object, messageQueueOptions, new MessageQueueInfo(messageQueueOptions, configurationMock.Object)); var msg = new TestMessage() { Id = Guid.NewGuid().ToString() }; //Act await queue.Send(msg); //Assert modelMock.VerifyAll(); }
public async Task ShouldReceive() { //Arrange var modelMock = new Mock <IModel>(); var connectionMock = new Mock <IConnection>(); var configurationMock = new Mock <IConfiguration>(); var messageQueueOptions = new MessageQueueOptions(); var msg = new TestMessage() { Id = Guid.NewGuid().ToString() }; modelMock.Setup(x => x.BasicGet(It.IsAny <string>(), It.IsAny <bool>())) .Returns(new BasicGetResult(0, false, "", "", 1, null, Encoding.ASCII.GetBytes(JsonConvert.SerializeObject(msg)))) .Verifiable(); configurationMock.SetupGet(x => x[It.IsAny <string>()]).Returns(string.Empty); connectionMock.Setup(x => x.CreateModel()).Returns(modelMock.Object); var queue = new MessageQueueRabbitMq(connectionMock.Object, messageQueueOptions, new MessageQueueInfo(messageQueueOptions, configurationMock.Object)); //Act var qtd = 0; await foreach (var message in queue.Receive <TestMessage>(1)) { qtd++; } //Assert modelMock.VerifyAll(); }
public async Task ShouldMarkAsReceived() { //Arrange var modelMock = new Mock <IModel>(); var connectionMock = new Mock <IConnection>(); var configurationMock = new Mock <IConfiguration>(); var messageQueueOptions = new MessageQueueOptions(); (ulong DeliveryTag, CancellationTokenSource CancellationTokenSource)queueData = GetQueueDataStub(); var msg = new TestMessage() { Id = Guid.NewGuid().ToString(), QueueData = queueData }; modelMock.Setup(x => x.BasicAck(It.IsAny <ulong>(), It.IsAny <bool>())) .Verifiable(); configurationMock.SetupGet(x => x[It.IsAny <string>()]).Returns(string.Empty); connectionMock.Setup(x => x.CreateModel()).Returns(modelMock.Object); var queue = new MessageQueueRabbitMq(connectionMock.Object, messageQueueOptions, new MessageQueueInfo(messageQueueOptions, configurationMock.Object)); //Act await queue.Received(msg); //Assert connectionMock.VerifyAll(); }