Beispiel #1
0
        public async Task DefaultOptions_Positive()
        {
            var storage   = new MemoryStorage();
            var convState = new ConversationState(storage);

            var adapter = new TestAdapter(TestAdapter.CreateConversation("Name"))
                          .Use(new FeedbackMiddleware(convState, new NullBotTelemetryClient()));

            var response = "Response";
            var tag      = "Tag";

            await new TestFlow(adapter, async(context, cancellationToken) =>
            {
                await context.SendActivityAsync(response);
                await FeedbackMiddleware.RequestFeedbackAsync(context, tag);

                // TODO save manualy
                await convState.SaveChangesAsync(context, false, cancellationToken);
            })
            .Send("foo")
            .AssertReply(response)
            .AssertReply((activity) =>
            {
                var card = activity.AsMessageActivity().Attachments[0].Content as HeroCard;
                Assert.AreEqual(card.Buttons.Count, 3);
            })
            .Send(positiveFeedback)
            .AssertReply("Thanks, I appreciate your feedback.")
            .StartTestAsync();
        }
        protected override async Task CompleteAsync(DialogContext dc, DialogTurnResult result = null, CancellationToken cancellationToken = default(CancellationToken))
        {
            // The active dialog's stack ended with a complete status
            await _responder.ReplyWith(dc.Context, MainResponses.ResponseIds.Completed);

            // Request feedback on the last activity.
            await FeedbackMiddleware.RequestFeedbackAsync(dc.Context, Id);
        }
Beispiel #3
0
        public async Task DefaultOptions_Comment()
        {
            var storage   = new MemoryStorage();
            var convState = new ConversationState(storage);

            var adapter = new TestAdapter(TestAdapter.CreateConversation("Name"))
                          .Use(new FeedbackMiddleware(convState, new NullBotTelemetryClient(), new FeedbackOptions
            {
                CommentsEnabled = true,
            }));

            var response = "Response";
            var tag      = "Tag";

            await new TestFlow(adapter, async(context, cancellationToken) =>
            {
                await context.SendActivityAsync(response);
                await FeedbackMiddleware.RequestFeedbackAsync(context, tag);

                // TODO save manualy
                await convState.SaveChangesAsync(context, false, cancellationToken);
            })
            .Send("foo")
            .AssertReply(response)
            .AssertReply((activity) =>
            {
                var card = activity.AsMessageActivity().Attachments[0].Content as HeroCard;
                Assert.AreEqual(card.Buttons.Count, 3);
            })
            .Send(negativeFeedback)
            .AssertReply((activity) =>
            {
                var card = activity.AsMessageActivity().Attachments[0].Content as HeroCard;
                Assert.AreEqual(card.Text, "Please add any additional comments in the chat.");
                Assert.AreEqual(card.Buttons.Count, 1);
            })
            .Send("comment")
            .AssertReply("Your comment has been received.")
            .StartTestAsync();
        }