private async Task OnFinishRemoteComputing(Guid sequenceId, FibonacciNumberMessage numberMessage) { logger.LogInformation("Message {numberMessageId} with number {numberMessageValue} is received", numberMessage.Id, numberMessage.Data.Value); var nextNumber = fibonacciLocalComputingProvider.ComputingNextNumber(numberMessage.Data); logger.LogInformation("Next number is calculated - {nextNumberValue}", nextNumber.Value); await fibonacciRemoteComputingProvider.StartComputingNextNumberAsync(sequenceId, nextNumber).ConfigureAwait(false); }
public void PublishNextAsync_ValidCase(Guid sequenceId, FibonacciNumber number, string expectedTopic, FibonacciNumberMessage expectedMessage) { string actualTopic = null; FibonacciNumberMessage actualMessage = null; publisherMoq .Setup(x => x.PublishAsync(It.IsAny <string>(), It.IsAny <FibonacciNumberMessage>())) .Callback <string, FibonacciNumberMessage>((topic, message) => { actualTopic = topic; actualMessage = message; }); service.PublishNextAsync(sequenceId, number).GetAwaiter().GetResult(); using (new AssertionScope()) { actualTopic.Should().Be(expectedTopic); actualMessage.Should().BeEquivalentTo(expectedMessage); } }