public async Task ShouldSignIn() { var runner = new XUnitTestRunner(new TestClientFactory(ClientType.DirectLine).GetTestClient(), _logger); var signInUrl = string.Empty; // Execute the first part of the conversation. await runner.RunTestAsync(Path.Combine(_transcriptsFolder, "ShouldSignIn1.transcript")); // Obtain the signIn url. await runner.AssertReplyAsync(activity => { Assert.Equal(ActivityTypes.Message, activity.Type); Assert.True(activity.Attachments.Count > 0); var card = JsonConvert.DeserializeObject <SigninCard>(JsonConvert.SerializeObject(activity.Attachments.FirstOrDefault().Content)); signInUrl = card.Buttons[0].Value?.ToString(); Assert.False(string.IsNullOrEmpty(signInUrl)); }); // Execute the SignIn. await runner.ClientSignInAsync(signInUrl); // Execute the rest of the conversation. await runner.RunTestAsync(Path.Combine(_transcriptsFolder, "ShouldSignIn2.transcript")); }
public async Task RunTestCases(TestCaseDataObject testData) { var signInUrl = string.Empty; var testCase = testData.GetObject <TestCase>(); Logger.LogInformation(JsonConvert.SerializeObject(testCase, Formatting.Indented)); var options = TestClientOptions[testCase.HostBot]; var runner = new XUnitTestRunner(new TestClientFactory(testCase.ChannelId, options, Logger).GetTestClient(), TestRequestTimeout, Logger); var testParams = new Dictionary <string, string> { { "DeliveryMode", testCase.DeliveryMode }, { "TargetSkill", testCase.TargetSkill } }; // Execute the first part of the conversation. await runner.RunTestAsync(Path.Combine(_testScriptsFolder, testCase.Script), testParams); await runner.AssertReplyAsync(activity => { Assert.Equal(ActivityTypes.Message, activity.Type); Assert.True(activity.Attachments.Count > 0); var card = JsonConvert.DeserializeObject <SigninCard>(JsonConvert.SerializeObject(activity.Attachments.FirstOrDefault().Content)); signInUrl = card.Buttons[0].Value?.ToString(); Assert.False(string.IsNullOrEmpty(signInUrl)); }); // Execute the SignIn. await runner.ClientSignInAsync(signInUrl); // Execute the rest of the conversation passing the messageId. await runner.RunTestAsync(Path.Combine(_testScriptsFolder, "SignIn2.json"), testParams); }