Esempio n. 1
0
        public void AddActionLink_RendersAuthorizedActionLink()
        {
            String       actionLink = "";
            AllTypesView view       = new AllTypesView();

            Authorization.Provider   = Substitute.For <IAuthorizationProvider>();
            columns.Grid.HttpContext = HttpContextFactory.CreateHttpContextBase();
            UrlHelper urlHelper = new UrlHelper(columns.Grid.HttpContext.Request.RequestContext);

            Authorization.Provider.IsAuthorizedFor(Arg.Any <String>(), Arg.Any <String>(), Arg.Any <String>(), "Details").Returns(true);

            columns
            .Add(Arg.Any <Expression <Func <AllTypesView, String> > >())
            .Returns(column)
            .AndDoes(info =>
            {
                actionLink = info.Arg <Expression <Func <AllTypesView, String> > >().Compile().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.Equal(expected, actual);
        }
 public static IGridColumn <T> AddProperty <T, TProperty>(this IGridColumns <T> columns, Expression <Func <T, TProperty> > expression)
 {
     return(columns
            .Add(expression)
            .Css(GetCssClassFor <TProperty>())
            .Titled(ResourceProvider.GetPropertyTitle(expression)));
 }
        public static IGridColumn <T> AddActionLink <T>(this IGridColumns <T> columns, String action, String iconClass) where T : class
        {
            if (!IsAuthorizedToView(columns.Grid, action))
            {
                return(new GridColumn <T, String>(columns.Grid, model => ""));
            }

            return(columns
                   .Add(model => GetLink(columns.Grid, model, action, iconClass))
                   .Css("action-cell")
                   .Encoded(false));
        }
Esempio n. 4
0
        private IGridColumns <TModel> SubstituteColumns <TModel, TProperty>(IGridColumn <TModel> column)
        {
            IGridColumns <TModel> columns = Substitute.For <IGridColumns <TModel> >();

            columns.Add(Arg.Any <Expression <Func <TModel, String> > >()).Returns(column);
            columns.Add(Arg.Any <Expression <Func <TModel, Boolean> > >()).Returns(column);
            columns.Add(Arg.Any <Expression <Func <TModel, Boolean?> > >()).Returns(column);
            columns.Add(Arg.Any <Expression <Func <TModel, DateTime> > >()).Returns(column);
            columns.Add(Arg.Any <Expression <Func <TModel, DateTime?> > >()).Returns(column);
            columns.Add(Arg.Any <Expression <Func <TModel, TProperty> > >()).Returns(column);

            return(columns);
        }
Esempio n. 5
0
        public void AddActionLink_OnModelWihoutKeyPropertyThrows()
        {
            Func <Object, String> renderer = null;
            IGridColumn <Object>  column   = SubstituteColumn <Object>();
            IGridColumns <Object> columns  = SubstituteColumns <Object, String>(column);

            columns
            .Add(Arg.Any <Expression <Func <Object, String> > >())
            .Returns(column)
            .AndDoes(info =>
            {
                renderer = info.Arg <Expression <Func <Object, String> > >().Compile();
            });

            columns.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.Equal(expected, actual);
        }