public async void RecognizeInMultipleAppsTest()
        {
            // arrage
            var                expectedIntent = "sampleIntent";
            LuisResult         luisResult     = new LuisResult();
            List <IntentModel> intents        = new List <IntentModel>();

            intents.Add(new IntentModel()
            {
                Intent = expectedIntent, Score = 100
            });
            luisResult.Intents          = intents;
            luisResult.TopScoringIntent = new IntentModel()
            {
                Intent = "sampleIntent", Score = 100
            };
            luisResult.CompositeEntities = new List <CompositeEntityModel>();
            luisResult.Entities          = new List <EntityModel>();

            var jsonRecognizerResult = JsonConvert.SerializeObject(luisResult);

            var handlerMock = new Mock <HttpClientHandler>(MockBehavior.Strict);

            handlerMock
            .Protected()
            .Setup <Task <HttpResponseMessage> >(
                "SendAsync",
                ItExpr.IsAny <HttpRequestMessage>(),
                ItExpr.IsAny <CancellationToken>()
                )
            .ReturnsAsync(new HttpResponseMessage()
            {
                StatusCode = HttpStatusCode.OK,
                Content    = new StringContent(jsonRecognizerResult),
            })
            .Verifiable();

            var storage           = new MemoryStorage();
            var userState         = new UserState(storage);
            var conversationState = new ConversationState(storage);
            var adapter           = new TestAdapter().Use(new AutoSaveStateMiddleware(conversationState));
            var dialogState       = conversationState.CreateProperty <DialogState>("dialogState");
            var dialogs           = new DialogSet(dialogState);
            var steps             = new WaterfallStep[]
            {
                async(step, cancellationToken) =>
                {
                    await step.Context.SendActivityAsync("response");

                    // act
                    step.Context.Activity.Text = "hello";
                    ILuisService luisService = new LuisService(EnvironmentName, ContentRootPath, null, handlerMock.Object);

                    var list = await luisService.RecognizeInMultipleAppsAsync(step.Context, .90);

                    var item = list.ToList().FirstOrDefault();

                    // assert
                    Assert.Equal(expectedIntent, item.Intent);

                    return(Dialog.EndOfTurn);
                }
            };

            dialogs.Add(new WaterfallDialog(
                            "test",
                            steps));

            await new TestFlow(adapter, async(turnContext, cancellationToken) =>
            {
                var dc = await dialogs.CreateContextAsync(turnContext, cancellationToken);
                await dc.ContinueDialogAsync(cancellationToken);
                if (!turnContext.Responded)
                {
                    await dc.BeginDialogAsync("test", null, cancellationToken);
                }
            })
            .Send("ask")
            .AssertReply("response")
            .StartTestAsync();
        }