public async void SendActivitiesAsync_Should_Succeed() { // Setup mocked ITwilioAdapterOptions var options = new TwilioAdapterOptions("Test", "Test", "Test", "Test"); // Setup mocked Activity and get the message option var activity = new Mock <Activity>().SetupAllProperties(); activity.Object.Type = "message"; activity.Object.Attachments = new List <Attachment> { new Attachment(contentUrl: "http://example.com") }; activity.Object.Conversation = new ConversationAccount(id: "MockId"); activity.Object.Text = "Hello, Bot!"; var messageOption = TwilioHelper.ActivityToTwilio(activity.Object, "123456789"); // Setup mocked Twilio API client const string resourceIdentifier = "Mocked Resource Identifier"; var twilioApi = new Mock <TwilioClientWrapper>(); twilioApi.Setup(x => x.SendMessage(It.IsAny <CreateMessageOptions>())).Returns(Task.FromResult(resourceIdentifier)); // Create a new Twilio Adapter with the mocked classes and get the responses var twilioAdapter = new TwilioAdapter(options, twilioApi.Object); var resourceResponses = await twilioAdapter.SendActivitiesAsync(null, new Activity[] { activity.Object }, default).ConfigureAwait(false); // Assert the result Assert.True(resourceResponses[0].Id == resourceIdentifier); }
public async void ContinueConversationAsync_Should_Fail_With_Null_Logic() { var options = new TwilioAdapterOptions("Test", "Test", "Test", "Test"); var twilioAdapter = new TwilioAdapter(options, new Mock <TwilioClientWrapper>().Object); var conversationReference = new ConversationReference(); await Assert.ThrowsAsync <ArgumentNullException>(async() => { await twilioAdapter.ContinueConversationAsync(conversationReference, null, default); }); }
public async void UpdateActivityAsync_Should_Throw_NotSupportedException() { var options = new TwilioAdapterOptions("Test", "Test", "Test", "Test"); var twilioAdapter = new TwilioAdapter(options, new Mock <TwilioClientWrapper>().Object); var activity = new Activity(); var turnContext = new TurnContext(twilioAdapter, activity); await Assert.ThrowsAsync <NotSupportedException>(async() => { await twilioAdapter.UpdateActivityAsync(turnContext, activity, default); }); }
public async void DeleteActivityAsync_Should_Throw_NotSupportedException() { var options = new TwilioAdapterOptions("Test", "Test", "Test", new Uri("http://contoso.com")); var twilioAdapter = new TwilioAdapter(options, new Mock <TwilioClientWrapper>().Object); var activity = new Activity(); var turnContext = new TurnContext(twilioAdapter, activity); var conversationReference = new ConversationReference(); await Assert.ThrowsAsync <NotSupportedException>(async() => { await twilioAdapter.DeleteActivityAsync(turnContext, conversationReference, default); }); }
public async void ProcessAsync_Should_Fail_With_Null_HttpResponse() { var options = new TwilioAdapterOptions("Test", "Test", "Test", "Test"); var twilioAdapter = new TwilioAdapter(options, new Mock <TwilioClientWrapper>().Object); var httpRequest = new Mock <HttpRequest>(); var bot = new Mock <IBot>(); await Assert.ThrowsAsync <ArgumentNullException>(async() => { await twilioAdapter.ProcessAsync(httpRequest.Object, null, default(IBot), default(CancellationToken)); }); }
public async void ContinueConversationAsync_Should_Fail_With_Null_ConversationReference() { var options = new TwilioAdapterOptions("Test", "Test", "Test", "Test"); var twilioAdapter = new TwilioAdapter(options, new Mock <TwilioClientWrapper>().Object); Task BotsLogic(ITurnContext turnContext, CancellationToken cancellationToken) { return(Task.CompletedTask); } await Assert.ThrowsAsync <ArgumentNullException>(async() => { await twilioAdapter.ContinueConversationAsync(null, BotsLogic, default); }); }
public async void ProcessAsync_Should_Succeed_With_Null_HttpBody() { var options = new TwilioAdapterOptions("Test", "Test", "Test", "Test"); var twilioAdapter = new TwilioAdapter(options, new Mock <TwilioClientWrapper>().Object); var httpRequest = new Mock <HttpRequest>(); var httpResponse = new Mock <HttpResponse>(); httpResponse .Setup(e => e.WriteAsync(It.IsAny <string>(), It.IsAny <CancellationToken>())) .Returns(Task.CompletedTask); await twilioAdapter.ProcessAsync(httpRequest.Object, httpResponse.Object, null, default(CancellationToken)); }
public async void SendActivitiesAsync_Should_Fail_With_ActivityType_Not_Message() { var options = new TwilioAdapterOptions("Test", "Test", "Test", "Test"); var twilioAdapter = new TwilioAdapter(options, new Mock <TwilioClientWrapper>().Object); var activity = new Activity() { Type = ActivityTypes.Event, }; Activity[] activities = { activity }; await Assert.ThrowsAsync <ArgumentException>(async() => { await twilioAdapter.SendActivitiesAsync(new TurnContext(twilioAdapter, activity), activities, default); }); }
public async void ContinueConversationAsync_Should_Succeed() { bool callbackInvoked = false; var options = new TwilioAdapterOptions("Test", "Test", "Test", "Test"); var twilioAdapter = new TwilioAdapter(options, new Mock <TwilioClientWrapper>().Object); var conversationReference = new ConversationReference(); Task BotsLogic(ITurnContext turnContext, CancellationToken cancellationToken) { callbackInvoked = true; return(Task.CompletedTask); } await twilioAdapter.ContinueConversationAsync(conversationReference, BotsLogic, default); Assert.True(callbackInvoked); }
public void Constructor_WithArguments_Succeeds() { var options = new TwilioAdapterOptions("Test", "Test", "Test", "Test"); Assert.NotNull(new TwilioAdapter(options, new Mock <TwilioClientWrapper>().Object)); }
public void Constructor_Should_Fail_With_Null_TwilioApi() { var options = new TwilioAdapterOptions("Test", "Test", "Test", "Test"); Assert.Throws <ArgumentNullException>(() => { new TwilioAdapter(options, null); }); }
public void Constructor_Should_Fail_With_Null_AuthToken() { var options = new TwilioAdapterOptions("Test", "Test", null, "Test"); Assert.Throws <ArgumentException>(() => { new TwilioAdapter(options, new Mock <TwilioClientWrapper>().Object); }); }
public void Constructor_Should_Fail_With_Null_AccountSid() { var options = new TwilioAdapterOptions("Test", null, "Test", new Uri("http://contoso.com")); Assert.Throws <ArgumentException>(() => { new TwilioAdapter(options, new Mock <TwilioClientWrapper>().Object); }); }