Exemplo n.º 1
0
        public async Task WaterfallWithStepsNull()
        {
            var telemetryClient = new Mock <IBotTelemetryClient>();
            var waterfall       = new TelemetryWaterfallDialog("test", telemetryClient.Object);

            waterfall.AddStep(null);
        }
Exemplo n.º 2
0
        public async Task WaterfallWithCallback()
        {
            var convoState = new ConversationState(new MemoryStorage());

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

            var dialogState     = convoState.CreateProperty <DialogState>("dialogState");
            var dialogs         = new DialogSet(dialogState);
            var telemetryClient = new Mock <IBotTelemetryClient>();;
            var waterfallDialog = new TelemetryWaterfallDialog("test", telemetryClient.Object, new WaterfallStep[]
            {
                async(step, cancellationToken) => { await step.Context.SendActivityAsync("step1"); return(Dialog.EndOfTurn); },
                async(step, cancellationToken) => { await step.Context.SendActivityAsync("step2"); return(Dialog.EndOfTurn); },
                async(step, cancellationToken) => { await step.Context.SendActivityAsync("step3"); return(Dialog.EndOfTurn); },
            });

            dialogs.Add(waterfallDialog);

            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("hello")
            .AssertReply("step1")
            .Send("hello")
            .AssertReply("step2")
            .Send("hello")
            .AssertReply("step3")
            .StartTestAsync();
            telemetryClient.Verify(m => m.TrackWaterfallStep(It.IsAny <WaterfallStepContext>(), It.IsAny <String>()), Times.Exactly(3));
        }
Exemplo n.º 3
0
 public async Task WaterfallWithNullTelemetryClient()
 {
     var waterfall = new TelemetryWaterfallDialog("test", null);
 }