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 SendActivitiesAsyncShouldFailWithActivityTypeNotMessage() { var twilioAdapter = new TwilioAdapter(new Mock <TwilioClientWrapper>(_testOptions).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 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 SendActivitiesAsyncShouldSucceedAndNoActivityReturnedWithActivityTypeNotMessage() { var activity = new Mock <Activity>().SetupAllProperties(); activity.Object.Type = ActivityTypes.Trace; activity.Object.Attachments = new List <Attachment> { new Attachment(contentUrl: "http://example.com") }; activity.Object.Conversation = new ConversationAccount(id: "MockId"); activity.Object.Text = "Trace content"; const string resourceIdentifier = "Mocked Resource Identifier"; var twilioApi = new Mock <TwilioClientWrapper>(_testOptions); twilioApi.Setup(x => x.SendMessageAsync(It.IsAny <TwilioMessageOptions>(), default)).Returns(Task.FromResult(resourceIdentifier)); var twilioAdapter = new TwilioAdapter(twilioApi.Object, _adapterOptions); var resourceResponses = await twilioAdapter.SendActivitiesAsync(null, new Activity[] { activity.Object }, default).ConfigureAwait(false); Assert.True(resourceResponses.Length == 0); }
public async void SendActivitiesAsyncShouldSucceed() { 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!"; const string resourceIdentifier = "Mocked Resource Identifier"; var twilioApi = new Mock <TwilioClientWrapper>(_testOptions); twilioApi.Setup(x => x.SendMessage(It.IsAny <CreateMessageOptions>())).Returns(Task.FromResult(resourceIdentifier)); var twilioAdapter = new TwilioAdapter(twilioApi.Object); var resourceResponses = await twilioAdapter.SendActivitiesAsync(null, new Activity[] { activity.Object }, default).ConfigureAwait(false); Assert.True(resourceResponses[0].Id == resourceIdentifier); }
public async void SendActivitiesAsync_Should_Fail_With_ActivityType_Not_Message() { var options = new Mock <ITwilioAdapterOptions>(); options.SetupAllProperties(); options.Object.AuthToken = "Test"; options.Object.TwilioNumber = "Test"; options.Object.AccountSid = "Test"; var twilioAdapter = new TwilioAdapter(options.Object, new Mock <ITwilioClient>().Object); var activity = new Activity() { Type = ActivityTypes.Event, }; Activity[] activities = { activity }; await Assert.ThrowsAsync <Exception>(async() => { await twilioAdapter.SendActivitiesAsync(new TurnContext(twilioAdapter, activity), activities, default); }); }