Пример #1
0
        //support WebPages inline helpers
        public static IGridColumn <T> RenderValueAs <T>(this IGridColumn <T> column,
                                                        Func <T, Func <object, HelperResult> > constraint)
        {
            Func <T, string> valueContraint = a => constraint(a)(null).ToHtmlString();

            return(column.RenderValueAs(valueContraint));
        }
Пример #2
0
        private IGridColumn <TModel> SubstituteColumn <TModel>()
        {
            IGridColumn <TModel> column = Substitute.For <IGridColumn <TModel> >();

            column.RenderValueAs(Arg.Any <Func <TModel, String> >()).Returns(column);
            column.Sanitized(Arg.Any <Boolean>()).Returns(column);
            column.Encoded(Arg.Any <Boolean>()).Returns(column);
            column.Format(Arg.Any <String>()).Returns(column);
            column.Titled(Arg.Any <String>()).Returns(column);
            column.Css(Arg.Any <String>()).Returns(column);

            return(column);
        }
Пример #3
0
        //support IHtmlString in RenderValueAs method
        public static IGridColumn <T> RenderValueAs <T>(this IGridColumn <T> column, Func <T, IHtmlContent> constraint)
        {
            Func <T, string> valueContraint = a =>
            {
                using (var sw = new StringWriter())
                {
                    constraint(a).WriteTo(sw, HtmlEncoder.Default);
                    return(sw.ToString());
                }
            };

            return(column.RenderValueAs(valueContraint));
        }
Пример #4
0
        public void AddActionLink_RendersAuthorizedActionLink()
        {
            Authorization.Provider.IsAuthorizedFor(Arg.Any <String>(), Arg.Any <String>(), Arg.Any <String>(), Arg.Any <String>()).Returns(false);
            Authorization.Provider.IsAuthorizedFor(Arg.Any <String>(), Arg.Any <String>(), Arg.Any <String>(), "Details").Returns(true);
            AllTypesView view = new AllTypesView();

            Authorization.Provider = null;
            String actionLink = "";

            column
            .RenderValueAs(Arg.Any <Func <AllTypesView, String> >()).Returns(column)
            .AndDoes(info => { actionLink = info.Arg <Func <AllTypesView, String> >().Invoke(view); });

            columns.AddActionLink("Details", "fa fa-info");

            String actual   = actionLink;
            String expected = String.Format(
                "<a class=\"details-action\" href=\"{0}\">" +
                "<i class=\"fa fa-info\"></i>" +
                "</a>",
                urlHelper.Action("Details", new { id = view.Id }));

            Assert.AreEqual(expected, actual);
        }
Пример #5
0
        public void AddActionLink_RendersDetailsLinkAction()
        {
            Func <AllTypesView, String> detailsFunc = null;
            AllTypesView view = new AllTypesView();

            column
            .RenderValueAs(Arg.Any <Func <AllTypesView, String> >())
            .Returns(column)
            .AndDoes(info =>
            {
                detailsFunc = info.Arg <Func <AllTypesView, String> >();
            });

            columns.AddActionLink(LinkAction.Details);

            String actual   = detailsFunc.Invoke(view);
            String expected = String.Format(
                "<a class=\"details-action\" href=\"{0}\">" +
                "<i class=\"fa fa-info\"></i>" +
                "</a>",
                urlHelper.Action("Details", new { id = view.Id }));

            Assert.AreEqual(expected, actual);
        }
Пример #6
0
        public void AddActionLink_OnModelWihoutKeyPropertyThrows()
        {
            Func <Object, String>          deleteFunc    = null;
            IGridColumn <Object>           objectColumn  = SubstituteColumn <Object>();
            IGridColumnCollection <Object> objectColumns = SubstituteColumns <Object, String>(objectColumn);

            objectColumn
            .RenderValueAs(Arg.Any <Func <Object, String> >())
            .Returns(objectColumn)
            .AndDoes(info =>
            {
                deleteFunc = info.Arg <Func <Object, String> >();
            });

            objectColumns.AddActionLink(LinkAction.Delete);

            Exception expected = Assert.Throws <Exception>(() => deleteFunc.Invoke(new Object()));

            Assert.AreEqual(expected.Message, "Object type does not have a key property.");
        }
Пример #7
0
        public void AddActionLink_OnModelWihoutKeyPropertyThrows()
        {
            Func <Object, String>          renderer      = null;
            IGridColumn <Object>           objectColumn  = SubstituteColumn <Object>();
            IGridColumnCollection <Object> objectColumns = SubstituteColumns <Object, String>(objectColumn);

            objectColumn
            .RenderValueAs(Arg.Any <Func <Object, String> >())
            .Returns(objectColumn)
            .AndDoes(info =>
            {
                renderer = info.Arg <Func <Object, String> >();
            });

            objectColumns.AddActionLink("Delete", "fa fa-times");

            String actual   = Assert.Throws <Exception>(() => renderer.Invoke(new Object())).Message;
            String expected = "Object type does not have a key property.";

            Assert.AreEqual(expected, actual);
        }
Пример #8
0
        //support IHtmlString in RenderValueAs method
        public static IGridColumn <T> RenderValueAs <T>(this IGridColumn <T> column, Func <T, IHtmlString> constraint)
        {
            Func <T, string> valueContraint = a => constraint(a).ToHtmlString();

            return(column.RenderValueAs(valueContraint));
        }