Example #1
0
        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);
        }
Example #2
0
        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();
        }