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); }
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(); }