public void AddCacheDependencies_NoCacheItem_CreatesAndAddsNewList()
        {
            // Arrange
            var context = new HttpContextWrapper(new HttpContext(new HttpRequest(null, "http://tempuri.org/", null), new HttpResponse(null)));

            var controller = new DesignerController();
            var dependencies = new List<CacheDependencyKey>();

            var depKey1 = new CacheDependencyKey { Key = "mykey1", Type = this.GetType() };
            var depKey2 = new CacheDependencyKey { Key = "mykey2", Type = this.GetType() };

            dependencies.Add(depKey1);
            dependencies.Add(depKey2);

            // Act
            SystemManager.RunWithHttpContext(context, () => controller.AddCacheDependencies(dependencies));

            // Assert
            var cacheObject = context.Items[PageCacheDependencyKeys.PageData];
            Assert.IsNotNull(cacheObject, "No cache object was set in the context.");
            Assert.IsTrue(cacheObject is IList<CacheDependencyKey>, "The cache object was not of the expected type.");

            var cacheList = (IList<CacheDependencyKey>)cacheObject;
            Assert.IsTrue(cacheList.Contains(depKey1), "The first cache dependency was not added.");
            Assert.IsTrue(cacheList.Contains(depKey2), "The second cache dependency was not added.");
            Assert.AreEqual(dependencies.Count, cacheList.Count, "There is an unexpected count of cache dependency keys.");
        }
예제 #2
0
        public void TestInitialize()
        {
            this.objectFactoryCotnainerRegion = new ObjectFactoryContainerRegion();

            FrontendManager.AuthenticationEvaluator = new DummyAuthenticationEvaluator { IsBackendUser = true };

            this.designerController = new DummyDesignerController();
        }
예제 #3
0
        public void TestCleanup()
        {
            FrontendManager.AuthenticationEvaluator = new AuthenticationEvaluator();

            this.objectFactoryCotnainerRegion.Dispose();
            this.designerController.Dispose();
            this.designerController = null;
        }
        public void Designer_UsesPrecompiledView()
        {
            var controller = new DesignerController();
            var routeData = new RouteData();
            routeData.Values["controller"] = "Designer";
            routeData.Values["widgetName"] = "News";
            controller.ControllerContext = new ControllerContext(new RequestContext(SystemManager.CurrentHttpContext, routeData), controller);
            FrontendControllerFactory.EnhanceViewEngines(controller);

            var viewResult = controller.ViewEngineCollection.FindView(controller.ControllerContext, "Designer", null);

            Assert.IsNotNull(viewResult, "View result is null.");
            Assert.IsNotNull(viewResult.View, "The view was not found.");
            Assert.IsInstanceOfType<PrecompiledMvcView>(viewResult.View, "The view is not precompiled.");

            viewResult = controller.ViewEngineCollection.FindView(controller.ControllerContext, "DesignerView.Simple", null);

            Assert.IsNotNull(viewResult, "View result is null.");
            Assert.IsNotNull(viewResult.View, "The view was not found.");
            Assert.IsInstanceOfType<PrecompiledMvcView>(viewResult.View, "The view is not precompiled.");
        }
        public void AddCacheDependencies_NullKeys_ThrowsArgumentNullException()
        {
            Controller controller = new DesignerController();

            /// TODO: fix always is null expression
            controller.AddCacheDependencies(null);
        }
        public void AddCacheDependencies_NullContext_ThrowsInvalidOperationException()
        {
            Assert.IsNull(SystemManager.CurrentHttpContext, "Current HttpContext is expected to be null in unit tests but here it is not!");

            Controller controller = new DesignerController();
            controller.AddCacheDependencies(new CacheDependencyKey[0]);
        }
예제 #7
0
 public void AddCacheDependencies_NullKeys_ThrowsArgumentNullException()
 {
     Controller controller = new DesignerController();
     controller.AddCacheDependencies(null);
 }
        private ActionResult ExecuteDesignerControllerMasterAction(string widgetName)
        {
            var routeData = new RouteData();
            routeData.Values.Add("widgetName", widgetName);
            routeData.Values.Add("controller", "Designer");
            routeData.Values.Add("action", "Master");

            var context = new HttpContextWrapper(new HttpContext(new HttpRequest(null, "http://tempuri.org?t=" + Guid.NewGuid().ToString("N"), null), new HttpResponse(null)));
            var controller = new DesignerController();

            controller.ControllerContext = new ControllerContext(context, routeData, controller);

            var viewEngine = controller.ViewEngineCollection.FirstOrDefault(e => e is RazorViewEngine) as VirtualPathProviderViewEngine;
            var testViewLocationFormat = "~/Frontend-Assembly/" + new AssemblyName(Assembly.GetExecutingAssembly().FullName).Name + "/Mvc/Views/" + widgetName + "/{0}.cshtml";
            viewEngine.PartialViewLocationFormats = viewEngine.PartialViewLocationFormats.Concat(new string[] { testViewLocationFormat }).ToArray();

            var result = controller.Master(widgetName);

            viewEngine.PartialViewLocationFormats = viewEngine.PartialViewLocationFormats.Where(f => testViewLocationFormat != f).ToArray();

            return result;
        }