public void ShouldThrowExceptionWhenValueIsNull()
 {
     var column = new ImageCarouselColumn
     {
         ImageUrl = null
     };
 }
        /// <summary>
        /// カラム追加
        /// </summary>
        /// <param name="title">タイトル</param>
        /// <param name="text">テキスト</param>
        /// <param name="thumbnailImageUrl">サムネ画像URL</param>
        /// <param name="imageBackgroundColor">画像背景色</param>
        /// <param name="templateActionFactoryService">アクション作成クラス</param>
        /// <returns></returns>
        public TemplateImageCarouselColumnFactoryService AddColumn(
            string imageUri,
            TemplateActionFactoryService templateActionFactoryService
            )
        {
            Trace.TraceInformation("Start");

            if (!this.RegulateColumnArray())
            {
                Trace.TraceWarning("Regulate Column Array is False");
                Trace.TraceInformation("End");
                return(this);
            }

            ImageCarouselColumn column = new ImageCarouselColumn()
            {
                imageUrl = imageUri,
                action   = templateActionFactoryService.Actions[0]
            };

            this.Columns[this.Columns.Length - 1] = column;

            Trace.TraceInformation("End");

            return(this);
        }
예제 #3
0
            public void ShouldThrowExceptionWhenTemplateActionTypeIsInvalid()
            {
                var column = new ImageCarouselColumn();

                ExceptionAssert.Throws <NotSupportedException>("The action type is invalid.", () =>
                {
                    column.Action = new TestAction();
                });
            }
예제 #4
0
            public void ShouldThrowExceptionWhenValueIsNull()
            {
                var column = new ImageCarouselColumn();

                ExceptionAssert.Throws <InvalidOperationException>("The action cannot be null.", () =>
                {
                    column.Action = null;
                });
            }
            public void ShouldThrowExceptionWhenValueIsMoreThan1000Chars()
            {
                var column = new ImageCarouselColumn();

                ExceptionAssert.Throws <InvalidOperationException>("The image url cannot be longer than 1000 characters.", () =>
                {
                    column.ImageUrl = new Uri("https://foo.bar/" + new string('x', 985));
                });
            }
            public void ShouldThrowExceptionWhenValueIsNotHttps()
            {
                var column = new ImageCarouselColumn();

                ExceptionAssert.Throws <InvalidOperationException>("The image url should use the https scheme.", () =>
                {
                    column.ImageUrl = new Uri("http://foo.bar");
                });
            }
예제 #7
0
            public void ShouldThrowExceptionWhenTemplateActionTypeIsInvalid()
            {
                var column = new ImageCarouselColumn();

                ExceptionAssert.Throws <NotSupportedException>("The template action type is invalid. Supported types are: IPostbackAction, IMessageAction and IUriAction.", () =>
                {
                    column.Action = new TestTemplateAction();
                });
            }
            public void ShouldNotThrowExceptionWhenValueIs1000Chars()
            {
                var value = new Uri("https://foo.bar/" + new string('x', 984));

                var column = new ImageCarouselColumn()
                {
                    ImageUrl = value
                };

                Assert.AreEqual(value, column.ImageUrl);
            }
예제 #9
0
            public void ShouldThrowExceptionWhenActionIsNull()
            {
                var column = new ImageCarouselColumn()
                {
                    ImageUrl = new Uri("https://foo.bar"),
                };

                ExceptionAssert.Throws <InvalidOperationException>("The action cannot be null.", () =>
                {
                    ImageCarouselColumn.Convert(new[] { column }).ToArray();
                });
            }
예제 #10
0
            public void ShouldThrowExceptionWhenImageUrlIsNull()
            {
                var column = new ImageCarouselColumn()
                {
                    Action = new PostbackAction()
                };

                ExceptionAssert.Throws <InvalidOperationException>("The image url cannot be null.", () =>
                {
                    ImageCarouselColumn.Convert(new[] { column }).ToArray();
                });
            }
예제 #11
0
            public void ShouldCreateSerializeableObject()
            {
                var column = new ImageCarouselColumn
                {
                    ImageUrl = new Uri("https://foo.bar"),
                    Action   = new UriAction()
                };

                var serialized = JsonConvert.SerializeObject(column);

                Assert.AreEqual(@"{""imageUrl"":""https://foo.bar"",""action"":{""type"":""uri"",""label"":null,""uri"":null}}", serialized);
            }
예제 #12
0
            public void ShouldNotThrowExceptionWhenValid()
            {
                var column = new ImageCarouselColumn()
                {
                    ImageUrl = new Uri("https://foo.bar"),
                    Action   = new PostbackAction()
                    {
                        Data = "Foo", Label = "Bar"
                    }
                };

                column.Validate();
            }
예제 #13
0
            public void ShouldThrowExceptionWhenActionIsInvalid()
            {
                var column = new ImageCarouselColumn()
                {
                    ImageUrl = new Uri("https://foo.bar"),
                    Action   = new PostbackAction()
                };

                ExceptionAssert.Throws <InvalidOperationException>("The label cannot be null.", () =>
                {
                    column.Validate();
                });
            }
예제 #14
0
            public void ShouldConvertCustomIImageCarouselColumnToImageCarouselColumn()
            {
                var column = new TestImageCarouselColumn();

                var columns = ImageCarouselColumn.Convert(new[] { column }).ToArray();

                Assert.AreEqual(1, columns.Length);
                Assert.AreNotEqual(column, columns[0]);

                var carouselColumn = columns[0] as ImageCarouselColumn;

                Assert.AreEqual(new Uri("https://carousel.url"), carouselColumn.ImageUrl);

                var action = carouselColumn.Action as MessageAction;

                Assert.AreEqual("MessageLabel", action.Label);
                Assert.AreEqual("MessageText", action.Text);
            }
예제 #15
0
            public void ShouldPreserveInstanceWhenValueIsImageCarouselColumn()
            {
                var column = new ImageCarouselColumn()
                {
                    ImageUrl = new Uri("https://foo.bar"),
                    Action   = new PostbackAction()
                    {
                        Label = "PostbackLabel",
                        Text  = "PostbackText",
                        Data  = "PostbackData",
                    }
                };

                var columns = ImageCarouselColumn.Convert(new[] { column }).ToArray();

                Assert.AreEqual(1, columns.Length);
                Assert.AreSame(column, columns[0]);
            }