예제 #1
0
        public void Test_should_set_UserPrinciple_if_User_is_authenticated()
        {
            var mockHttpContext = new Mock<HttpContextBase>();
            var genericPrincipal = new GenericPrincipal(new GenericIdentity("username"), new string[]{});
            mockHttpContext.SetupProperty(c => c.User, genericPrincipal);

            var controllerContext = new ControllerContext() {
                HttpContext = mockHttpContext.Object
            };

            using (var dbContext = new HeliosDbContext()) {
                var dbUser = new User() {
                    UserName = "******",
                    IsAdmin = true
                };
                dbUser.SetPassword("secret");
                dbContext.Users.Add(dbUser);
                dbContext.Commit();

                var stubController = new StubController(dbContext) {
                    ControllerContext = controllerContext
                };

                stubController.CallOnAuthorization(new AuthorizationContext() { HttpContext = controllerContext.HttpContext });

                Assert.Equal(true, stubController.User is UserPrincipal);
                Assert.Equal("username", stubController.User.Identity.Name);
                Assert.Equal(true, stubController.User.IsInRole("admin"));
            }
        }
예제 #2
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="areaName">The name of the area containing the Emails view folder if applicable</param>
        /// <returns></returns>
        ControllerContext CreateControllerContext(string areaName)
        {
            // A dummy HttpContextBase that is enough to allow the view to be rendered.
            var httpContext = new HttpContextWrapper(
                new HttpContext(
                    new HttpRequest("", UrlRoot(), ""),
                    new HttpResponse(TextWriter.Null)
                    )
                );
            var routeData = new RouteData();

            routeData.Values["controller"] = EmailViewDirectoryName;

            // if populated will add searching the named Area for the view
            if (!string.IsNullOrWhiteSpace(areaName))
            {
                routeData.DataTokens["Area"] = areaName;
            }

            var requestContext    = new RequestContext(httpContext, routeData);
            var stubController    = new StubController();
            var controllerContext = new ControllerContext(requestContext, stubController);

            stubController.ControllerContext = controllerContext;
            return(controllerContext);
        }
예제 #3
0
        private static ViewContext CompileView(string viewContents)
        {
            var settings  = new SparkSettings();
            var container = SparkRubyEngineStarter.CreateContainer(settings);

            var viewFolder = new InMemoryViewFolder {
                { string.Format("stub{0}index.spark", Path.DirectorySeparatorChar), viewContents }
            };

            container.SetServiceBuilder <IViewFolder>(c => viewFolder);
            var viewEngine = container.GetService <IViewEngine>();

            var httpContext = new StubHttpContext();


            var routeData = new RouteData();

            routeData.Values.Add("controller", "stub");
            routeData.Values.Add("action", "index");

            var controller        = new StubController();
            var controllerContext = new ControllerContext(httpContext, routeData, controller);

            var result = viewEngine.FindPartialView(controllerContext, "index", false);

            return(new ViewContext(controllerContext, result.View, new ViewDataDictionary(), new TempDataDictionary(), new StringWriter()));
        }
예제 #4
0
 public GlassControllerTestHarness()
 {
     MvcContext           = Substitute.For <IMvcContext>();
     MvcContext.GlassHtml = Substitute.For <IGlassHtml>();
     HttpContext          = Substitute.For <HttpContextBase>();
     GlassController      = new StubController(MvcContext);
     GlassController.ControllerContext = new ControllerContext(HttpContext, new RouteData(), GlassController);
 }
 public GlassControllerTestHarness()
 {
     SitecoreContext                   = Substitute.For <ISitecoreContext>();
     RenderingContextWrapper           = Substitute.For <IRenderingContext>();
     HttpContext                       = Substitute.For <HttpContextBase>();
     GlassController                   = new StubController(SitecoreContext, RenderingContextWrapper);
     GlassController.ControllerContext = new ControllerContext(HttpContext, new RouteData(), GlassController);
 }
 public GlassControllerTestHarness()
 {
     SitecoreContext         = Substitute.For <ISitecoreContext>();
     GlassHtml               = Substitute.For <IGlassHtml>();
     RenderingContextWrapper = Substitute.For <IRenderingContext>();
     HttpContext             = Substitute.For <HttpContextBase>();
     GlassController         = new StubController(SitecoreContext, GlassHtml, RenderingContextWrapper, HttpContext);
 }
예제 #7
0
        public void Init()
        {
            _factory            = new SparkViewFactory(null);
            _viewFolder         = new InMemoryViewFolder();
            _factory.ViewFolder = _viewFolder;
            var controller = new StubController();

            _actionContext = new ActionContext(controller.GetType().Namespace, "Bar");
        }
예제 #8
0
        public void ExternalItem_IsAssociated_WithoutKey()
        {
            IController controller = new StubController();
            controller.Execute(rc);

            var external = rc.RouteData.DataTokens["externalItem"] as ExternalItem;
            Assert.That(external, Is.Not.Null);
            Assert.That(external.Name, Is.EqualTo(ExternalItem.SingleItemKey));
            Assert.That(external.ZoneName, Is.EqualTo("stub"));
        }
        public void ExternalItem_IsAssociated_WithoutKey()
        {
            IController controller = new StubController();

            controller.Execute(rc);

            var external = rc.RouteData.DataTokens["externalItem"] as ExternalItem;

            Assert.That(external, Is.Not.Null);
            Assert.That(external.Name, Is.EqualTo(ExternalItem.SingleItemKey));
            Assert.That(external.ZoneName, Is.EqualTo("stub"));
        }
예제 #10
0
        public void ReturnNotFoundResultObject_OkIfFound_Input_Is_Null()
        {
            var mockMediator   = new Mock <IMediator>();
            var mockConfig     = new Mock <DummyAzureActiveDirectoryAuthenticationInfo>();
            var mockUrlHelper  = new Mock <IUrlHelper>();
            var controller     = new StubController(mockMediator.Object, mockConfig.Object, mockUrlHelper.Object);
            var expectedResult = new NotFoundResult();

            var result = controller.OkIfFound((object)null);

            Assert.IsNotNull(result);
            Assert.AreEqual(result.GetType(), expectedResult.GetType());
        }
예제 #11
0
        public void Return_OkResultObject_OkIfFound_Input_Is_Not_Null()
        {
            var mockResponse   = new HttpResponseMessage(HttpStatusCode.OK);
            var mockMediator   = new Mock <IMediator>();
            var mockConfig     = new Mock <DummyAzureActiveDirectoryAuthenticationInfo>();
            var mockUrlHelper  = new Mock <IUrlHelper>();
            var controller     = new StubController(mockMediator.Object, mockConfig.Object, mockUrlHelper.Object);
            var expectedResult = new OkObjectResult("not null");

            var result = controller.OkIfFound(mockResponse);

            Assert.IsNotNull(result);
            Assert.AreEqual(result.GetType(), expectedResult.GetType());
        }
예제 #12
0
        private ControllerContext CreateControllerContext()
        {
            var controller     = new StubController();
            var httpContext    = _workContextAccessor.GetContext().Resolve <HttpContextBase>();
            var requestContext = _workContextAccessor.GetContext().Resolve <RequestContext>();
            var routeData      = requestContext.RouteData;

            if (!routeData.Values.ContainsKey("controller") && !routeData.Values.ContainsKey("Controller"))
            {
                routeData.Values.Add("controller", controller.GetType().Name.ToLower().Replace("controller", ""));
            }

            controller.ControllerContext = new ControllerContext(httpContext, routeData, controller);
            controller.ControllerContext.RequestContext = requestContext;
            return(controller.ControllerContext);
        }
예제 #13
0
        private static ControllerContext CreateControllerContext()
        {
            // A dummy HttpContextBase that is enough to allow the view to be rendered.
            var httpContext = new HttpContextWrapper(
                new HttpContext(
                    new HttpRequest(string.Empty, UrlRoot(), string.Empty),
                    new HttpResponse(TextWriter.Null)));
            var routeData = new RouteData();

            routeData.Values["controller"] = "Stub";
            var requestContext    = new RequestContext(httpContext, routeData);
            var stubController    = new StubController();
            var controllerContext = new ControllerContext(requestContext, stubController);

            stubController.ControllerContext = controllerContext;
            return(controllerContext);
        }
예제 #14
0
 ControllerContext CreateControllerContext()
 {
     // A dummy HttpContextBase that is enough to allow the view to be rendered.
     var httpContext = new HttpContextWrapper(
         new HttpContext(
             new HttpRequest("", UrlRoot(), ""),
             new HttpResponse(TextWriter.Null)
         )
     );
     var routeData = new RouteData();
     routeData.Values["controller"] = EmailViewDirectoryName;
     var requestContext = new RequestContext(httpContext, routeData);
     var stubController = new StubController();
     var controllerContext = new ControllerContext(requestContext, stubController);
     stubController.ControllerContext = controllerContext;
     return controllerContext;
 }
        ControllerContext CreateControllerContext()
        {
            // A dummy HttpContextBase that is enough to allow the view to be rendered.
            var httpContext = new HttpContextWrapper(
                new HttpContext(
                    new HttpRequest("", UrlRoot(), ""),
                    new HttpResponse(TextWriter.Null)
                    )
                );
            var routeData = new RouteData();

            routeData.Values["controller"] = EmailViewDirectoryName;
            var requestContext    = new RequestContext(httpContext, routeData);
            var stubController    = new StubController();
            var controllerContext = new ControllerContext(requestContext, stubController);

            stubController.ControllerContext = controllerContext;
            return(controllerContext);
        }
예제 #16
0
        public void Test_should_not_set_UserPrinciple_if_User_is_not_authenticated()
        {
            var mockHttpContext = new Mock<HttpContextBase>();
            var genericPrincipal = new GenericPrincipal(new GenericIdentity("") /* empty user name means un-authenticated*/, new string[] { });
            mockHttpContext.SetupProperty(c => c.User, genericPrincipal);

            var controllerContext = new ControllerContext() {
                HttpContext = mockHttpContext.Object
            };

            var stubController = new StubController(new HeliosDbContext()) {
                ControllerContext = controllerContext
            };

            stubController.CallOnAuthorization(new AuthorizationContext() { HttpContext = controllerContext.HttpContext });

            Assert.Equal(false, stubController.User is UserPrincipal);
            Assert.Equal(false, stubController.User.Identity.IsAuthenticated);
            Assert.Equal(false, stubController.User.IsInRole("admin"));
        }
        public void Init()
        {
            CompiledViewHolder.Current = null;

            _viewFolder = new InMemoryViewFolder();

            _factory = new SparkViewFactory(new SparkSettingsFactory())
                           {
                               ViewFolder = _viewFolder
                           };

            var httpContext = MockRepository.GenerateStub<HttpContextBase>();
            _routeData = new RouteData();
            var controller = new StubController();
            _actionContext = new ActionContext(httpContext, _routeData, controller.GetType().Namespace);
        }
        private ControllerContext CreateControllerContext() {
            var controller = new StubController();
            var httpContext = _workContextAccessor.GetContext().Resolve<HttpContextBase>();
            var requestContext = _workContextAccessor.GetContext().Resolve<RequestContext>();
            var routeData = requestContext.RouteData;

            if (!routeData.Values.ContainsKey("controller") && !routeData.Values.ContainsKey("Controller"))
                routeData.Values.Add("controller", controller.GetType().Name.ToLower().Replace("controller", ""));

            controller.ControllerContext = new ControllerContext(httpContext, routeData, controller);
            controller.ControllerContext.RequestContext = requestContext;
            return controller.ControllerContext;
        }
예제 #19
0
        private static ViewContext CompileView(string viewContents)
        {
            var settings = new SparkSettings();
            var container = SparkRubyEngineStarter.CreateContainer(settings);

            var viewFolder = new InMemoryViewFolder { { "stub\\index.spark", viewContents } };
            container.SetServiceBuilder<IViewFolder>(c => viewFolder);
            var viewEngine = container.GetService<IViewEngine>();

            var httpContext = new StubHttpContext();

            var routeData = new RouteData();
            routeData.Values.Add("controller", "stub");
            routeData.Values.Add("action", "index");

            var controller = new StubController();
            var controllerContext = new ControllerContext(httpContext, routeData, controller);

            var result = viewEngine.FindPartialView(controllerContext, "index", false);
            return new ViewContext(controllerContext, result.View, new ViewDataDictionary(), new TempDataDictionary(), new StringWriter());
        }
 public void Constructor_NullSitecoreContext_CreatsWithoutException()
 {
     //Act
     var controller = new StubController((ISitecoreContext)null);
 }
 public void Init()
 {
     _factory = new SparkViewFactory(null);
     _viewFolder = new InMemoryViewFolder();
     _factory.ViewFolder = _viewFolder;
     var controller = new StubController();
     _actionContext = new ActionContext(controller.GetType().Namespace, "Bar");
 }
        public void Init()
        {
            //CompiledViewHolder.Current = null;
            var serviceLocator = MockRepository.GenerateStub<IServiceLocator>();

            _factory = new SparkViewFactory(null);
            _viewFolder = new InMemoryViewFolder();
            _factory.ViewFolder = _viewFolder;
            var httpContext = MockRepository.GenerateStub<HttpContextBase>();
            _routeData = new RouteData();
            var controller = new StubController();
            _actionContext = new ActionContext(httpContext, _routeData, controller.GetType().Namespace, "Bar");
        }