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);
        }
Exemplo n.º 2
0
        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);
        }
Exemplo n.º 5
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);
        }
Exemplo n.º 6
0
        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);
            });
        }