/// <summary>
 /// Initializes a new instance of the <see cref="TestRunner"/> class.
 /// </summary>
 /// <param name="client">Test client to use.</param>
 /// <param name="replyTimeout">The timeout for waiting for replies (in miliseconds). Default is 180000.</param>
 /// <param name="thinkTime">The timeout think time before sending messages to the bot (in miliseconds). Default is 0.</param>
 /// <param name="logger">Optional. Instance of <see cref="ILogger"/> to use.</param>
 public TestRunner(TestClientBase client, int replyTimeout = 180000, int thinkTime = 0, ILogger logger = null)
 {
     _testClient   = client;
     _replyTimeout = replyTimeout;
     _thinkTime    = thinkTime;
     _logger       = logger ?? NullLogger.Instance;
 }
        /// <summary>
        /// Initializes a new instance of the <see cref="TestClientFactory"/> class.
        /// </summary>
        /// <param name="channel">The type of channel to create based on the <see cref="Channels"/> class.</param>
        /// <param name="options">The options to create the client.</param>
        /// <param name="logger">An optional <see cref="ILogger"/> instance.</param>
        public TestClientFactory(string channel, DirectLineTestClientOptions options, ILogger logger)
        {
            switch (channel)
            {
            case Channels.Directline:
                _testClientBase = new DirectLineTestClient(options, logger);
                break;

            case Channels.Emulator:
                break;

            case Channels.Msteams:
                break;

            case Channels.Facebook:
                break;

            case Channels.Slack:
                break;

            default:
                throw new InvalidEnumArgumentException($"Invalid client type ({channel})");
            }
        }