public async Task <FlowTestResult> ExecuteTestCaseAsync(FlowTestCase testCase, CancellationToken cancellationToken) { var result = new FlowTestResult { IsSuccessfully = true }; var messages = testCase.TestMessagesQueue; while (messages.Any()) { var message = messages.Dequeue(); if (message is ToBotMessage) { await _channel.SendTextAsync(message.RawTextContent, cancellationToken); continue; } if (message is FromBotMessage) { var document = await _channel.ReceiveAsync(cancellationToken); var localTestResult = CheckDocument(document, message as FromBotMessage); if (!localTestResult.Works) { result.IsSuccessfully = false; } continue; } //Ignore the rest } return(result); }