public void ConvertTextActivityToOmniFailoverMessage()
        {
            _activity.Text = "Test text";

            var omniFailoverMessages = ToInfobipConverter.Convert(_activity, SCENARIO_KEY);

            Assert.NotNull(omniFailoverMessages);
            Assert.Single(omniFailoverMessages);

            var omniFailoverMessage = omniFailoverMessages.First();

            Assert.Equal(omniFailoverMessage.ScenarioKey, SCENARIO_KEY);
            CheckDestinations(omniFailoverMessage.Destinations);

            var whatsAppMessage = omniFailoverMessage.WhatsApp;

            Assert.NotNull(whatsAppMessage);
            Assert.Equal(whatsAppMessage.Text, _activity.Text);
            Assert.Null(whatsAppMessage.FileUrl);
            Assert.Null(whatsAppMessage.LocationName);
            Assert.Null(whatsAppMessage.AudioUrl);
            Assert.Null(whatsAppMessage.Address);
            Assert.Null(whatsAppMessage.Latitude);
            Assert.Null(whatsAppMessage.Longitude);
            Assert.Null(whatsAppMessage.ImageUrl);
            Assert.Null(whatsAppMessage.VideoUrl);
            Assert.Null(whatsAppMessage.TemplateNamespace);
            Assert.Null(whatsAppMessage.TemplateData);
            Assert.Null(whatsAppMessage.TemplateName);
            Assert.Null(whatsAppMessage.Language);
            Assert.Null(whatsAppMessage.MediaTemplateData);
        }
        public void ConvertActivityWithSinglePlaceEntityWithNonStringAddressFailoverMessage()
        {
            _activity.Entities = new List <Entity>
            {
                new Place
                {
                    Address = new { Key = "value" }
                }
            };

            Assert.Throws <Exception>(() => ToInfobipConverter.Convert(_activity, SCENARIO_KEY));
        }
        public void ConvertActivityWithSinglePlaceEntityWithoutGeoToOmniFailoverMessage()
        {
            _activity.Entities = new List <Entity>
            {
                new Place
                {
                    Address = "Address"
                }
            };

            Assert.Throws <Exception>(() => ToInfobipConverter.Convert(_activity, SCENARIO_KEY));
        }
예제 #4
0
        public void ConvertEmptyActivityWithCallbackData_Success()
        {
            var callbackData = new Dictionary <string, string>
            {
                { "BoolProperty", "true" },
                { "NumberProperty", "12" },
                { "StringProperty", "string" },
                { "DateProperty", DateTimeOffset.MinValue.ToString() }
            };

            _activity.AddInfobipCallbackData(callbackData);

            var messages = ToInfobipConverter.Convert(_activity, TestOptions.Get());

            Assert.Empty(messages);
        }
예제 #5
0
        public void ConvertTextActivityWithCallbackDataAddedWithExtensionMethod_Success()
        {
            var callbackData = new Dictionary <string, string>
            {
                { "BoolProperty", "true" },
                { "NumberProperty", "12" },
                { "StringProperty", "string" },
                { "DateProperty", DateTimeOffset.MinValue.ToString() }
            };

            _activity.Text = "Activity with callback data";
            _activity.AddInfobipCallbackData(callbackData);

            var message = ToInfobipConverter.Convert(_activity, TestOptions.Get()).Single();

            Assert.Equal(message.CallbackData, JsonConvert.SerializeObject(callbackData));
        }
        public void ConvertActivityWithSingleGeoCoordinateEntityToOmniFailoverMessage()
        {
            _activity.Entities = new List <Entity> {
                new GeoCoordinates {
                    Latitude = 12.3456789, Longitude = 23.456789, Name = "Test"
                }
            };

            var omniFailoverMessages = ToInfobipConverter.Convert(_activity, SCENARIO_KEY);

            Assert.NotNull(omniFailoverMessages);
            Assert.Single(omniFailoverMessages);

            var omniFailoverMessage = omniFailoverMessages.First();

            CheckLocationMessage(omniFailoverMessage, _activity.Entities.First().GetAs <GeoCoordinates>());
        }
예제 #7
0
        public void ConvertActivityWithSmsChannelIdToOmniSmsFailoverMessage()
        {
            _activity.Text      = "Test text";
            _activity.ChannelId = InfobipChannel.Sms;

            var omniFailoverMessages = ToInfobipConverter.Convert(_activity, TestOptions.Get());

            Assert.NotNull(omniFailoverMessages);
            Assert.Single(omniFailoverMessages);

            var omniFailoverMessage = omniFailoverMessages.First();

            Assert.Equal(omniFailoverMessage.ScenarioKey, TestOptions.SmsScenarioKey);
            CheckDestinations(omniFailoverMessage.Destinations);

            Assert.NotNull(omniFailoverMessage);
            Assert.NotNull(omniFailoverMessage.Sms);
        }
        public void ConvertActivityWithAudioAttachmentAndTextToOmniFailoverMessage()
        {
            var attachment = new Attachment {
                ContentUrl = "http://dummy-audio.com", ContentType = "audio/mp3"
            };

            _activity.Attachments = new List <Attachment> {
                attachment
            };
            _activity.Text = "Test text";

            var omniFailoverMessages = ToInfobipConverter.Convert(_activity, SCENARIO_KEY);

            Assert.NotNull(omniFailoverMessages);
            Assert.Equal(2, omniFailoverMessages.Count);

            var omniFailoverMessage  = omniFailoverMessages.First();
            var omniFailoverMessage2 = omniFailoverMessages.ElementAt(1);

            Assert.Equal(omniFailoverMessage.ScenarioKey, SCENARIO_KEY);
            Assert.Equal(omniFailoverMessage2.ScenarioKey, SCENARIO_KEY);
            CheckDestinations(omniFailoverMessage.Destinations);
            CheckDestinations(omniFailoverMessage2.Destinations);

            var whatsAppMessage = omniFailoverMessage.WhatsApp;

            Assert.NotNull(whatsAppMessage);
            Assert.Equal(whatsAppMessage.Text, _activity.Text);
            Assert.Null(whatsAppMessage.FileUrl);
            Assert.Null(whatsAppMessage.LocationName);
            Assert.Null(whatsAppMessage.AudioUrl);
            Assert.Null(whatsAppMessage.Address);
            Assert.Null(whatsAppMessage.Latitude);
            Assert.Null(whatsAppMessage.Longitude);
            Assert.Null(whatsAppMessage.ImageUrl);
            Assert.Null(whatsAppMessage.VideoUrl);
            Assert.Null(whatsAppMessage.TemplateNamespace);
            Assert.Null(whatsAppMessage.TemplateData);
            Assert.Null(whatsAppMessage.TemplateName);
            Assert.Null(whatsAppMessage.Language);
            Assert.Null(whatsAppMessage.MediaTemplateData);

            CheckAudioMessage(omniFailoverMessage2, attachment);
        }
        public void ConvertEmptyActivityWithCallbackData_Success()
        {
            var callbackData = new Dictionary <string, string>
            {
                { "BoolProperty", "true" },
                { "NumberProperty", "12" },
                { "StringProperty", "string" },
                { "DateProperty", DateTimeOffset.MinValue.ToString() }
            };

            var entityCallbackData = new InfobipCallbackData(callbackData);

            _activity.Entities = new List <Entity>
            {
                entityCallbackData
            };

            var messages = ToInfobipConverter.Convert(_activity, SCENARIO_KEY);

            Assert.False(messages.Any());
        }
        public void ConvertActivityWithMultipleGeoCoordinateEntityToOmniFailoverMessage()
        {
            _activity.Entities = new List <Entity>
            {
                new GeoCoordinates {
                    Latitude = 12.3456789, Longitude = 23.456789, Name = "Test"
                },
                new GeoCoordinates {
                    Latitude = 45.56789, Longitude = 87.12345, Name = "Test2"
                }
            };

            var omniFailoverMessages = ToInfobipConverter.Convert(_activity, SCENARIO_KEY);

            Assert.NotNull(omniFailoverMessages);
            Assert.Equal(2, omniFailoverMessages.Count);

            for (var i = 0; i < omniFailoverMessages.Count; i++)
            {
                CheckLocationMessage(omniFailoverMessages.ElementAt(i), _activity.Entities.ElementAt(i).GetAs <GeoCoordinates>());
            }
        }
        public void ConvertTextActivityWithCallbackData_Success()
        {
            var callbackData = new Dictionary <string, string>
            {
                { "BoolProperty", "true" },
                { "NumberProperty", "12" },
                { "StringProperty", "string" },
                { "DateProperty", DateTimeOffset.MinValue.ToString() }
            };

            var entityCallbackData = new InfobipCallbackData(callbackData);

            _activity.Text     = "Activity with callback data";
            _activity.Entities = new List <Entity>
            {
                entityCallbackData
            };

            var message = ToInfobipConverter.Convert(_activity, SCENARIO_KEY).Single();

            Assert.Equal(message.CallbackData, entityCallbackData.Properties.ToInfobipCallbackDataJson());
        }
        public void ConvertActivityWithAudioAttachmentToOmniFailoverMessage()
        {
            var attachment = new Attachment {
                ContentUrl = "http://dummy-audio.com", ContentType = "audio/mp3"
            };

            _activity.Attachments = new List <Attachment> {
                attachment
            };

            var omniFailoverMessages = ToInfobipConverter.Convert(_activity, SCENARIO_KEY);

            Assert.NotNull(omniFailoverMessages);
            Assert.Single(omniFailoverMessages);

            var omniFailoverMessage = omniFailoverMessages.First();

            Assert.Equal(omniFailoverMessage.ScenarioKey, SCENARIO_KEY);
            CheckDestinations(omniFailoverMessage.Destinations);

            CheckAudioMessage(omniFailoverMessage, attachment);
        }
        public void ConvertActivityWithFileAttachmentToOmniFailoverMessage()
        {
            var attachment = new Attachment {
                ContentUrl = "http://dummy-file.com", ContentType = "application/pdf"
            };

            _activity.Attachments = new List <Attachment> {
                attachment
            };

            var omniFailoverMessages = ToInfobipConverter.Convert(_activity, SCENARIO_KEY);

            Assert.NotNull(omniFailoverMessages);
            Assert.Single(omniFailoverMessages);

            var omniFailoverMessage = omniFailoverMessages.First();

            Assert.Equal(omniFailoverMessage.ScenarioKey, SCENARIO_KEY);
            CheckDestinations(omniFailoverMessage.Destinations);

            var whatsAppMessage = omniFailoverMessage.WhatsApp;

            Assert.NotNull(whatsAppMessage);
            Assert.Null(whatsAppMessage.Text);
            Assert.Equal(whatsAppMessage.FileUrl, attachment.ContentUrl);
            Assert.Null(whatsAppMessage.LocationName);
            Assert.Null(whatsAppMessage.AudioUrl);
            Assert.Null(whatsAppMessage.Address);
            Assert.Null(whatsAppMessage.Latitude);
            Assert.Null(whatsAppMessage.Longitude);
            Assert.Null(whatsAppMessage.ImageUrl);
            Assert.Null(whatsAppMessage.VideoUrl);
            Assert.Null(whatsAppMessage.TemplateNamespace);
            Assert.Null(whatsAppMessage.TemplateData);
            Assert.Null(whatsAppMessage.TemplateName);
            Assert.Null(whatsAppMessage.Language);
            Assert.Null(whatsAppMessage.MediaTemplateData);
        }
예제 #14
0
        public void ConvertTextActivityToOmniFailoverMessage()
        {
            Activity activity = null;

            Assert.Throws <ArgumentNullException>(() => ToInfobipConverter.Convert(activity, TestOptions.Get()));
        }
예제 #15
0
        public void ConvertActivityWithRecipient_ThrowException()
        {
            _activity.Recipient = null;

            Assert.Throws <ValidationException>(() => ToInfobipConverter.Convert(_activity, TestOptions.Get()));
        }
        public void ConvertActivityWithTemplateAttachmentToOmniFailoverMessage()
        {
            var templateMessage = new InfobipWhatsAppTemplateMessage
            {
                TemplateNamespace = "template_namespace",
                TemplateData      = new[] { "one", "two" },
                TemplateName      = "template_name",
                Language          = "en",
                MediaTemplateData = new InfobipWhatsAppMediaTemplateData
                {
                    MediaTemplateHeader = new InfobipWhatsAppMediaTemplateHeader
                    {
                        DocumentFilename = "Test file name"
                    },
                    MediaTemplateBody = new InfobipWhatsAppMediaTemplateBody
                    {
                        Placeholders = new[] { "three", "four" }
                    }
                }
            };

            _activity.Attachments = new List <Attachment>();
            _activity.Attachments.Add(new InfobipAttachment(templateMessage));

            var omniFailoverMessages = ToInfobipConverter.Convert(_activity, SCENARIO_KEY);

            Assert.NotNull(omniFailoverMessages);
            Assert.Single(omniFailoverMessages);

            var omniFailoverMessage = omniFailoverMessages.First();

            Assert.Equal(omniFailoverMessage.ScenarioKey, SCENARIO_KEY);
            CheckDestinations(omniFailoverMessage.Destinations);

            var whatsAppMessage = omniFailoverMessage.WhatsApp;

            Assert.NotNull(whatsAppMessage);
            Assert.Null(whatsAppMessage.Text);
            Assert.Null(whatsAppMessage.FileUrl);
            Assert.Null(whatsAppMessage.LocationName);
            Assert.Null(whatsAppMessage.AudioUrl);
            Assert.Null(whatsAppMessage.Address);
            Assert.Null(whatsAppMessage.Latitude);
            Assert.Null(whatsAppMessage.Longitude);
            Assert.Null(whatsAppMessage.ImageUrl);
            Assert.Null(whatsAppMessage.VideoUrl);
            Assert.Equal(whatsAppMessage.TemplateNamespace, templateMessage.TemplateNamespace);
            Assert.NotNull(whatsAppMessage.TemplateData);
            Assert.Equal(whatsAppMessage.TemplateData.Length, templateMessage.TemplateData.Length);
            Assert.Equal(whatsAppMessage.TemplateName, templateMessage.TemplateName);
            Assert.Equal(whatsAppMessage.Language, templateMessage.Language);
            Assert.NotNull(whatsAppMessage.MediaTemplateData);
            Assert.Equal(whatsAppMessage.MediaTemplateData.MediaTemplateBody.Placeholders.Length, templateMessage.MediaTemplateData.MediaTemplateBody.Placeholders.Length);
            Assert.Equal(whatsAppMessage.MediaTemplateData.MediaTemplateHeader.DocumentFilename, templateMessage.MediaTemplateData.MediaTemplateHeader.DocumentFilename);
            Assert.Null(whatsAppMessage.MediaTemplateData.MediaTemplateHeader.Latitude);
            Assert.Null(whatsAppMessage.MediaTemplateData.MediaTemplateHeader.Longitude);
            Assert.Null(whatsAppMessage.MediaTemplateData.MediaTemplateHeader.ImageUrl);
            Assert.Null(whatsAppMessage.MediaTemplateData.MediaTemplateHeader.DocumentUrl);
            Assert.Null(whatsAppMessage.MediaTemplateData.MediaTemplateHeader.TextPlaceholder);
            Assert.Null(whatsAppMessage.MediaTemplateData.MediaTemplateHeader.VideoUrl);
        }