public async Task NoConnectionNameThrows() { var mockConnector = new MemoryConnectorClient(); var mockCredentialProvider = new Mock <ICredentialProvider>(); var adapter = new MockAdapter( mockCredentialProvider.Object, () => { return(new TokenResponse() { Token = "12345" }); }, new MockLogger()); var originalActivity = CreateBasicActivity(); var badOauth = CreateOAuthCardActivity(); ((OAuthCard)badOauth.Attachments.First().Content).ConnectionName = null; var mockClaims = new Mock <ClaimsIdentity>(); bool threw = false; await adapter.ProcessActivityAsync( mockClaims.Object, originalActivity, async (context, token) => { switch (context.Activity.Type) { case ActivityTypes.Message: context.TurnState.Remove(typeof(IConnectorClient).FullName); context.TurnState.Add <IConnectorClient>(mockConnector); try { await context.SendActivityAsync(badOauth); } catch (InvalidOperationException) { threw = true; } break; } }, CancellationToken.None); Assert.IsTrue(threw); }
private async Task <Activity> ProcessOAuthCardTest(MockAdapter adapter, MemoryConnectorClient mockConnector, Activity originalActivity, Activity outhCardActivity = null, bool expectsEvent = true) { var mockClaims = new Mock <ClaimsIdentity>(); Activity eventActivity = null; outhCardActivity = outhCardActivity ?? CreateOAuthCardActivity(); TaskCompletionSource <string> receivedEventActivity = new TaskCompletionSource <string>(); await adapter.ProcessActivityAsync( mockClaims.Object, originalActivity, async (context, token) => { switch (context.Activity.Type) { case ActivityTypes.Message: context.TurnState.Remove(typeof(IConnectorClient).FullName); context.TurnState.Add <IConnectorClient>(mockConnector); await context.SendActivityAsync(outhCardActivity); break; case ActivityTypes.Event: eventActivity = context.Activity; receivedEventActivity.SetResult("done"); break; } if (!expectsEvent) { receivedEventActivity.SetResult("done"); } }, CancellationToken.None); await receivedEventActivity.Task; return(eventActivity); }