public void AddActionLink_NoKey_Throws()
        {
            IGrid <Object>          grid        = new Grid <Object>(new Object[0]);
            IGridColumnsOf <Object> gridColumns = new GridColumns <Object>(grid);

            gridColumns.Grid.ViewContext = new ViewContext {
                HttpContext = HttpContextFactory.CreateHttpContextBase()
            };

            IGridColumn <Object, IHtmlString> column = gridColumns.AddActionLink("Delete", "fa fa-times");

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

            Assert.Equal(expected, actual);
        }
예제 #2
0
        public AuthControllerTests()
        {
            mailClient = Substitute.For <IMailClient>();
            service    = Substitute.For <IAccountService>();
            validator  = Substitute.For <IAccountValidator>();
            controller = Substitute.ForPartsOf <AuthController>(validator, service, mailClient);
            HttpContextBase context = HttpContextFactory.CreateHttpContextBase();

            controller.Url = new UrlHelper(context.Request.RequestContext);
            controller.ControllerContext             = new ControllerContext();
            controller.ControllerContext.HttpContext = context;

            accountRecovery = ObjectFactory.CreateAccountRecoveryView();
            accountReset    = ObjectFactory.CreateAccountResetView();
            accountLogin    = ObjectFactory.CreateAccountLoginView();
        }
        public BaseControllerTests()
        {
            HttpContextBase context = HttpContextFactory.CreateHttpContextBase();

            Authorization.Provider = Substitute.For <IAuthorizationProvider>();

            controller = Substitute.ForPartsOf <BaseControllerProxy>();
            controller.ControllerContext             = new ControllerContext();
            controller.ControllerContext.Controller  = controller;
            controller.ControllerContext.HttpContext = context;
            controller.ControllerContext.RouteData   =
                context.Request.RequestContext.RouteData;
            controller.Url = Substitute.For <UrlHelper>();

            controllerName = controller.RouteData.Values["controller"] as String;
            areaName       = controller.RouteData.Values["area"] as String;
        }
예제 #4
0
        public void OnException_LogsOnlyInnerMostException()
        {
            ExceptionContext context = new ExceptionContext
            {
                HttpContext = HttpContextFactory.CreateHttpContextBase(),
                Exception   = new Exception("O", exception)
            };

            filter.OnException(context);
            String expectedMessage = String.Format("{0}: {1}{2}{3}",
                                                   context.Exception.InnerException.GetType(),
                                                   context.Exception.InnerException.Message,
                                                   Environment.NewLine,
                                                   context.Exception.InnerException.StackTrace);

            logger.Received().Log(context.HttpContext.User.Identity.Name, expectedMessage);
        }
        public void AddActionLink_NullAuthorization_Renders()
        {
            Authorization.Provider = null;
            AllTypesView view = new AllTypesView();

            columns.Grid.HttpContext = HttpContextFactory.CreateHttpContextBase();
            UrlHelper urlHelper = new UrlHelper(columns.Grid.HttpContext.Request.RequestContext);

            IGridColumn <AllTypesView> column = columns.AddActionLink("Details", "fa fa-info");

            String actual   = column.ValueFor(new GridRow(view)).ToString();
            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);
        }
예제 #6
0
        public void HandleUnauthorizedRequest_RedirectsToLogin()
        {
            GlobalizedAuthorizeAttributeProxy attribute = new GlobalizedAuthorizeAttributeProxy();
            HttpContextBase      httpContext            = HttpContextFactory.CreateHttpContextBase();
            AuthorizationContext context = new AuthorizationContext();

            context.RouteData   = httpContext.Request.RequestContext.RouteData;
            context.HttpContext = httpContext;

            attribute.BaseHandleUnauthorizedRequest(context);

            RouteValueDictionary actual = (context.Result as RedirectToRouteResult).RouteValues;

            Assert.AreEqual(context.RouteData.Values["language"], actual["language"]);
            Assert.AreEqual(context.HttpContext.Request.RawUrl, actual["returnUrl"]);
            Assert.AreEqual("Auth", actual["controller"]);
            Assert.AreEqual("Login", actual["action"]);
            Assert.AreEqual("", actual["area"]);
        }
예제 #7
0
        public void AddActionLink_Authorized_Renders()
        {
            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 <Int32?>(), Arg.Any <String>(), Arg.Any <String>(), "Details").Returns(true);

            IGridColumn <AllTypesView> column = columns.AddActionLink("Details", "fa fa-info");

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

            Assert.Equal(expected, actual);
        }