public void ViewPathProperty() {
            // Act
            BuildManagerCompiledView view = new TestableBuildManagerCompiledView(new ControllerContext(), "view path");

            // Assert
            Assert.AreEqual("view path", view.ViewPath);
        }
Example #2
0
        public void ViewCreationConsultsSetActivator()
        {
            // Arrange
            object viewInstance = new object();
            Mock <IViewPageActivator> activator         = new Mock <IViewPageActivator>(MockBehavior.Strict);
            ControllerContext         controllerContext = new ControllerContext();

            activator
            .Setup(a => a.Create(controllerContext, typeof(object)))
            .Returns(viewInstance)
            .Verifiable();
            MockBuildManager         buildManager = new MockBuildManager("view path", typeof(object));
            BuildManagerCompiledView view         = new TestableBuildManagerCompiledView(
                controllerContext,
                "view path",
                activator.Object
                )
            {
                BuildManager = buildManager
            };

            // Act
            view.Render(new Mock <ViewContext>().Object, new Mock <TextWriter>().Object);

            // Assert
            activator.Verify();
        }
Example #3
0
        public void ViewCreationDelegatesToDependencyResolverWhenActivatorIsNull()
        {
            // Arrange
            var viewInstance       = new object();
            var controllerContext  = new ControllerContext();
            var buildManager       = new MockBuildManager("view path", typeof(object));
            var dependencyResolver = new Mock <IDependencyResolver>(MockBehavior.Strict);

            dependencyResolver
            .Setup(dr => dr.GetService(typeof(object)))
            .Returns(viewInstance)
            .Verifiable();
            var view = new TestableBuildManagerCompiledView(
                controllerContext,
                "view path",
                dependencyResolver: dependencyResolver.Object
                )
            {
                BuildManager = buildManager
            };

            // Act
            view.Render(new Mock <ViewContext>().Object, new Mock <TextWriter>().Object);

            // Assert
            dependencyResolver.Verify();
        }
        public void ViewPathProperty()
        {
            // Act
            BuildManagerCompiledView view = new TestableBuildManagerCompiledView(new ControllerContext(), "view path");

            // Assert
            Assert.Equal("view path", view.ViewPath);
        }
        public void RenderWithNullContextThrows() {
            // Arrange
            TestableBuildManagerCompiledView view = new TestableBuildManagerCompiledView(new ControllerContext(), "~/view");

            // Act & Assert
            ExceptionHelper.ExpectArgumentNullException(
                () => view.Render(null, new Mock<TextWriter>().Object),
                "viewContext"
            );
        }
        public void RenderWithNullContextThrows()
        {
            // Arrange
            TestableBuildManagerCompiledView view = new TestableBuildManagerCompiledView(new ControllerContext(), "~/view");

            // Act & Assert
            Assert.ThrowsArgumentNull(
                () => view.Render(null, new Mock <TextWriter>().Object),
                "viewContext"
                );
        }
        public void RenderWithNullViewInstanceThrows() {
            // Arrange
            ViewContext context = new Mock<ViewContext>().Object;
            MockBuildManager buildManager = new MockBuildManager("view path", compiledType: null);
            TestableBuildManagerCompiledView view = new TestableBuildManagerCompiledView(new ControllerContext(), "view path");
            view.BuildManager = buildManager;

            // Act & Assert
            ExceptionHelper.ExpectException<InvalidOperationException>(
                () => view.Render(context, new Mock<TextWriter>().Object),
                "The view found at 'view path' was not created."
            );
        }
        public void RenderWithNullViewInstanceThrows()
        {
            // Arrange
            ViewContext      context              = new Mock <ViewContext>().Object;
            MockBuildManager buildManager         = new MockBuildManager("view path", compiledType: null);
            TestableBuildManagerCompiledView view = new TestableBuildManagerCompiledView(new ControllerContext(), "view path");

            view.BuildManager = buildManager;

            // Act & Assert
            Assert.Throws <InvalidOperationException>(
                () => view.Render(context, new Mock <TextWriter>().Object),
                "The view found at 'view path' was not created."
                );
        }
        public void ViewCreationConsultsSetActivator() {
            // Arrange
            object viewInstance = new object();
            Mock<IViewPageActivator> activator = new Mock<IViewPageActivator>(MockBehavior.Strict);
            ControllerContext controllerContext = new ControllerContext();
            activator.Setup(a => a.Create(controllerContext, typeof(object))).Returns(viewInstance).Verifiable();
            MockBuildManager buildManager = new MockBuildManager("view path", typeof(object));
            BuildManagerCompiledView view = new TestableBuildManagerCompiledView(controllerContext, "view path", activator.Object) { BuildManager = buildManager };

            // Act
            view.Render(new Mock<ViewContext>().Object, new Mock<TextWriter>().Object);

            // Assert
            activator.Verify();
        }
        public void ViewCreationDelegatesToActivatorCreateInstanceWhenDependencyResolverReturnsNull()
        {
            // Arrange
            var controllerContext  = new ControllerContext();
            var buildManager       = new MockBuildManager("view path", typeof(NoParameterlessCtor));
            var dependencyResolver = new Mock <IDependencyResolver>();
            var view = new TestableBuildManagerCompiledView(controllerContext, "view path", dependencyResolver: dependencyResolver.Object)
            {
                BuildManager = buildManager
            };

            // Act & Assert, confirming type name and full stack are available in Exception
            // Depend on the fact that Activator.CreateInstance cannot create an object without a parameterless ctor
            MissingMethodException ex = Assert.Throws <MissingMethodException>(
                () => view.Render(new Mock <ViewContext>().Object, new Mock <TextWriter>().Object),
                "No parameterless constructor defined for this object. Object type 'System.Web.Mvc.Test.CompiledTypeViewTest+NoParameterlessCtor'.");

            Assert.Contains("System.Activator.CreateInstance(", ex.ToString());
        }
        public void ViewCreationDelegatesToActivatorCreateInstanceWhenDependencyResolverReturnsNull()
        {
            // Arrange
            var controllerContext  = new ControllerContext();
            var buildManager       = new MockBuildManager("view path", typeof(NoParameterlessCtor));
            var dependencyResolver = new Mock <IDependencyResolver>();
            var view = new TestableBuildManagerCompiledView(controllerContext, "view path", dependencyResolver: dependencyResolver.Object)
            {
                BuildManager = buildManager
            };

            // Act
            MissingMethodException ex = Assert.Throws <MissingMethodException>( // Depend on the fact that Activator.CreateInstance cannot create an object without a parameterless ctor
                () => view.Render(new Mock <ViewContext>().Object, new Mock <TextWriter>().Object)
                );

            // Assert
            Assert.Contains("System.Activator.CreateInstance(", ex.StackTrace);
        }
        public void ViewCreationDelegatesToDependencyResolverWhenActivatorIsNull()
        {
            // Arrange
            var viewInstance = new object();
            var controllerContext = new ControllerContext();
            var buildManager = new MockBuildManager("view path", typeof(object));
            var dependencyResolver = new Mock<IDependencyResolver>(MockBehavior.Strict);
            dependencyResolver.Setup(dr => dr.GetService(typeof(object))).Returns(viewInstance).Verifiable();
            var view = new TestableBuildManagerCompiledView(controllerContext, "view path", dependencyResolver: dependencyResolver.Object) { BuildManager = buildManager };

            // Act
            view.Render(new Mock<ViewContext>().Object, new Mock<TextWriter>().Object);

            // Assert
            dependencyResolver.Verify();
        }
        public void ViewCreationDelegatesToActivatorCreateInstanceWhenDependencyResolverReturnsNull()
        {
            // Arrange
            var controllerContext = new ControllerContext();
            var buildManager = new MockBuildManager("view path", typeof(NoParameterlessCtor));
            var dependencyResolver = new Mock<IDependencyResolver>();
            var view = new TestableBuildManagerCompiledView(controllerContext, "view path", dependencyResolver: dependencyResolver.Object) { BuildManager = buildManager };

            // Act
            MissingMethodException ex = Assert.Throws<MissingMethodException>( // Depend on the fact that Activator.CreateInstance cannot create an object without a parameterless ctor
                () => view.Render(new Mock<ViewContext>().Object, new Mock<TextWriter>().Object)
                );

            // Assert           
            Assert.Contains("System.Activator.CreateInstance(", ex.StackTrace);
        }
        public void ViewCreationDelegatesToActivatorCreateInstanceWhenDependencyResolverReturnsNull()
        {
            // Arrange
            var controllerContext = new ControllerContext();
            var buildManager = new MockBuildManager("view path", typeof(NoParameterlessCtor));
            var dependencyResolver = new Mock<IDependencyResolver>();
            var view = new TestableBuildManagerCompiledView(controllerContext, "view path", dependencyResolver: dependencyResolver.Object) { BuildManager = buildManager };

            // Act & Assert, confirming type name and full stack are available in Exception
            // Depend on the fact that Activator.CreateInstance cannot create an object without a parameterless ctor
            MissingMethodException ex = Assert.Throws<MissingMethodException>(
                () => view.Render(new Mock<ViewContext>().Object, new Mock<TextWriter>().Object),
                "No parameterless constructor defined for this object. Object type 'System.Web.Mvc.Test.CompiledTypeViewTest+NoParameterlessCtor'.");
            Assert.Contains("System.Activator.CreateInstance(", ex.ToString());
        }