public async Task ShouldLogIncomingAndOutgoingMessageActivities(string utterance, string textReply, string speakReply, string inputHint) { var mockOutput = new MockTestOutputHelper(); var sut = new XUnitOutputMiddleware(mockOutput); var testClient = new DialogTestClient(Channels.Test, new EchoDialog(textReply, speakReply, inputHint), null, new List <IMiddleware> { sut }); await testClient.SendActivityAsync <IMessageActivity>(utterance); Assert.Equal("\r\nUser: Hi", mockOutput.Output[0]); Assert.StartsWith(" -> ts: ", mockOutput.Output[1]); Assert.StartsWith($"\r\nBot: Text={textReply}\r\n Speak={speakReply}\r\n InputHint={inputHint}", mockOutput.Output[2]); Assert.StartsWith(" -> ts: ", mockOutput.Output[3]); Assert.Contains("elapsed", mockOutput.Output[3]); }
public async Task ShouldLogOtherIncomingAndOutgoingActivitiesAsRawJson(string activityType) { var mockOutput = new MockTestOutputHelper(); var sut = new XUnitOutputMiddleware(mockOutput); var testClient = new DialogTestClient(Channels.Test, new EchoDialog(), null, new List <IMiddleware> { sut }); var activity = new Activity(activityType); await testClient.SendActivityAsync <IActivity>(activity); Assert.Equal($"\r\nUser: Activity = ActivityTypes.{activityType}", mockOutput.Output[0]); Assert.StartsWith(activityType, JsonConvert.DeserializeObject <Activity>(mockOutput.Output[1]).Type); Assert.StartsWith(" -> ts: ", mockOutput.Output[2]); Assert.Equal($"\r\nBot: Activity = ActivityTypes.{activityType}", mockOutput.Output[3]); Assert.StartsWith(activityType, JsonConvert.DeserializeObject <Activity>(mockOutput.Output[4]).Type); Assert.StartsWith(" -> ts: ", mockOutput.Output[5]); Assert.Contains("elapsed", mockOutput.Output[5]); }