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);
        }