public async Task TestAdapterTokenExchange()
        {
            var convoState = new ConversationState(new MemoryStorage());

            var adapter = new TestAdapter()
                          .Use(new AutoSaveStateMiddleware(convoState));

            var connectionName = "myConnection";
            var exchangeToken  = "exch123";
            var token          = "abc123";

            BotCallbackHandler botCallbackHandler = async(turnContext, cancellationToken) =>
            {
                var userId = "fred";
                adapter.AddExchangeableToken(connectionName, turnContext.Activity.ChannelId, userId, exchangeToken, token);

                // Positive case: Token
                var result = await adapter.ExchangeTokenAsync(turnContext, connectionName, userId, new TokenExchangeRequest()
                {
                    Token = exchangeToken
                });

                Assert.NotNull(result);
                Assert.Equal(token, result.Token);
                Assert.Equal(connectionName, result.ConnectionName);

                // Positive case: URI
                result = await adapter.ExchangeTokenAsync(turnContext, connectionName, userId, new TokenExchangeRequest()
                {
                    Uri = exchangeToken
                });

                Assert.NotNull(result);
                Assert.Equal(token, result.Token);
                Assert.Equal(connectionName, result.ConnectionName);

                // Negative case: Token
                result = await adapter.ExchangeTokenAsync(turnContext, connectionName, userId, new TokenExchangeRequest()
                {
                    Token = "beeboop"
                });

                Assert.Null(result);

                // Negative case: URI
                result = await adapter.ExchangeTokenAsync(turnContext, connectionName, userId, new TokenExchangeRequest()
                {
                    Uri = "beeboop"
                });

                Assert.Null(result);
            };

            await new TestFlow(adapter, botCallbackHandler)
            .Send("hello")
            .StartTestAsync();
        }