Пример #1
0
        public async Task Process_Success_ShouldReturnResponseIsSuccessFalse_ShouldNotProduceEvent()
        {
            //Arrange
            var selectionCount       = new Faker().Random.Int(1, 5);
            var updateMarketCommand  = FakerHelpers.FakeUpdateMarketCommand(selectionCount);
            var updateMarketResponse = new UpdateMarketResponse(false);

            // Act
            await _sut.Process(updateMarketCommand, updateMarketResponse, CancellationToken.None);

            // Assert
            Assert.False(updateMarketResponse.Success);
            _producerServiceMock.Verify(x => x.ProduceAsync(It.IsAny <int>(), It.IsAny <UpdateMarketSuccessEvent>()), Times.Never);
        }
Пример #2
0
        public async Task Process_Success_ShouldReturnResponseIsSuccessTrue_ShouldProduceEvent()
        {
            //Arrange
            var selectionCount           = new Faker().Random.Int(1, 5);
            var updateMarketCommand      = FakerHelpers.FakeUpdateMarketCommand(selectionCount);
            var updateMarketResponse     = new UpdateMarketResponse(true);
            var updateMarketSuccessEvent = FakerHelpers.FakeUpdateMarketSuccessEvent(updateMarketCommand.CorrelationId, selectionCount);

            _mapperMock.Setup(x => x.Map <UpdateMarketSuccessEvent>(updateMarketCommand)).Returns(updateMarketSuccessEvent);
            _producerServiceMock.Setup(x => x.ProduceAsync(updateMarketSuccessEvent.MarketId, updateMarketSuccessEvent))
            .Returns(Task.CompletedTask);

            // Act
            await _sut.Process(updateMarketCommand, updateMarketResponse, CancellationToken.None);

            // Assert
            Assert.True(updateMarketResponse.Success);
            Assert.True(updateMarketCommand.CorrelationId == updateMarketSuccessEvent.CorrelationId);
            Assert.True(updateMarketCommand.Selections.Count() == updateMarketSuccessEvent.Selections.Count());
            Assert.True(updateMarketSuccessEvent.Processed);
            _producerServiceMock.Verify(x => x.ProduceAsync(It.IsAny <int>(), It.IsAny <UpdateMarketSuccessEvent>()), Times.Once);
        }