コード例 #1
0
        public void Submit_Post()
        {
            //Arrange
            #region Mocking
            Mock <IApplicationDAL> mockDal = new Mock <IApplicationDAL>();
            mockDal.Setup(m => m.SubmitApplication(It.IsAny <LoanApplication>())).Returns(true);
            #endregion
            LoanApplicationController controller = new LoanApplicationController(mockDal.Object);
            #region Mocking Controller Request
            // Mock Session Object
            Mock <HttpSessionStateBase> mockSession = new Mock <HttpSessionStateBase>();
            mockSession.SetupGet(p => p["Loan_Application"]).Returns(new LoanApplication());

            // Mock Http Context Request for Controller
            // because Session doesn't exist unless MVC actually receives a "request"
            Mock <HttpContextBase> mockContext = new Mock <HttpContextBase>();

            // When the Controller calls this.Session it will get a mock session
            mockContext.Setup(c => c.Session).Returns(mockSession.Object);

            // Assign the context property on the controller to our mock context which uses our mock session
            controller.ControllerContext = new ControllerContext(mockContext.Object, new RouteData(), controller);

            // For more details: https://dontpaniclabs.com/blog/post/2011/03/22/testing-session-in-mvc-in-four-lines-of-code/

            #endregion

            //Act
            RedirectToRouteResult result = controller.Submit() as RedirectToRouteResult;

            //Assert
            Assert.IsNotNull(result, "Result returned was not of type RedirectToRouteResult");
            Assert.AreEqual("Submitted", result.RouteValues["action"]);
            mockDal.Verify(m => m.SubmitApplication(It.IsAny <LoanApplication>()));
        }
コード例 #2
0
        public void FinancialInfo_Post()
        {
            LoanApplicationController controller  = new LoanApplicationController(null);
            LoanApplication           application = new LoanApplication()
            {
                NetWorth        = 100000,
                Reference1Name  = "test reference",
                Reference1Phone = "test reference phone"
            };

            #region Mocking Controller Request
            // Mock Session Object
            Mock <HttpSessionStateBase> mockSession = new Mock <HttpSessionStateBase>();

            // Mock Http Context Request for Controller
            // because Session doesn't exist unless MVC actually receives a "request"
            Mock <HttpContextBase> mockContext = new Mock <HttpContextBase>();

            // When the Controller calls this.Session it will get a mock session
            mockContext.Setup(c => c.Session).Returns(mockSession.Object);

            // Assign the context property on the controller to our mock context which uses our mock session
            controller.ControllerContext = new ControllerContext(mockContext.Object, new RouteData(), controller);

            // For more details: https://dontpaniclabs.com/blog/post/2011/03/22/testing-session-in-mvc-in-four-lines-of-code/

            #endregion

            RedirectToRouteResult result = controller.FinancialInformation(application) as RedirectToRouteResult;

            Assert.IsNotNull(result, "Result returned was not of type RedirectToRouteResult");
            Assert.AreEqual("Review", result.RouteValues["action"]);
        }
コード例 #3
0
        public void Review_Get()
        {
            LoanApplicationController controller = new LoanApplicationController(null);

            #region Mocking Controller Request
            // Mock Session Object
            Mock <HttpSessionStateBase> mockSession = new Mock <HttpSessionStateBase>();
            mockSession.SetupGet(p => p["Loan_Application"]).Returns(new LoanApplication());

            // Mock Http Context Request for Controller
            // because Session doesn't exist unless MVC actually receives a "request"
            Mock <HttpContextBase> mockContext = new Mock <HttpContextBase>();

            // When the Controller calls this.Session it will get a mock session
            mockContext.Setup(c => c.Session).Returns(mockSession.Object);

            // Assign the context property on the controller to our mock context which uses our mock session
            controller.ControllerContext = new ControllerContext(mockContext.Object, new RouteData(), controller);

            // For more details: https://dontpaniclabs.com/blog/post/2011/03/22/testing-session-in-mvc-in-four-lines-of-code/

            #endregion

            ViewResult result = controller.Review() as ViewResult;

            Assert.IsNotNull(result, "Result returned was not of type ViewResult");
            Assert.AreEqual("Review", result.ViewName);
            Assert.IsNotNull(result.Model);
        }
コード例 #4
0
        public void Start_Get()
        {
            LoanApplicationController controller = new LoanApplicationController(null);

            ViewResult result = controller.Start() as ViewResult;

            Assert.IsNotNull(result, "Result returned was not of type ViewResult");
            Assert.AreEqual("Start", result.ViewName);
        }
コード例 #5
0
        public void Index_Get()
        {
            LoanApplicationController controller = new LoanApplicationController(applicationDal);

            ViewResult result = controller.Index() as ViewResult;

            Assert.IsNotNull(result, "Result returned was not of type ViewResult");
            Assert.AreEqual("Index", result.ViewName);
        }
コード例 #6
0
        public void FinancialInfo_Get()
        {
            LoanApplicationController controller = new LoanApplicationController(null);

            ViewResult result = controller.FinancialInformation() as ViewResult;

            Assert.IsNotNull(result, "Result returned was not of type ViewResult");
            Assert.AreEqual("FinancialInformation", result.ViewName);
        }
        public void ShouldRenderDefaultView()
        {
            var fakerepository            = new Mock <IRepository>();
            var fakeLoanApplicationScorer = new Mock <ILoanApplicationScorer>();

            var sut = new LoanApplicationController(fakerepository.Object, fakeLoanApplicationScorer.Object);

            sut.WithCallTo(x => x.Apply()).ShouldRenderDefaultView();
        }
コード例 #8
0
        public void AnonymousIndex()
        {
            // Arrange
            var controller = new LoanApplicationController();

            // Act
            var result = controller.Index() as ViewResult;

            // Assert
            Assert.IsNotNull(result);
        }
コード例 #9
0
        public void ShouldRdirectToAcceptedViewOnUnSuccessfulApplication()
        {
            var fakeRepository         = new Mock <IRepository>();
            var fakeApplicationScorrer = new Mock <ILoanApplicationScorer>();

            var sut = new LoanApplicationController(fakeRepository.Object, fakeApplicationScorrer.Object);

            var acceptedApplication = new LoanApplication
            {
                IsAccepted = false
            };

            sut.WithCallTo(x => x.Apply(acceptedApplication)).ShouldRedirectTo <int>(x => x.Declined);
        }
コード例 #10
0
        public void Start_Post()
        {
            // Arrange
            LoanApplicationController controller  = new LoanApplicationController(null);
            LoanApplication           application = new LoanApplication()
            {
                FirstName     = "Test",
                LastName      = "Test",
                LogonUsername = "******"
            };

            #region Mocking Controller Request
            // Mock Session Object
            Mock <HttpSessionStateBase> mockSession = new Mock <HttpSessionStateBase>();

            // Mock Http Context Request for Controller
            // because Session doesn't exist unless MVC actually receives a "request"
            Mock <HttpContextBase> mockContext = new Mock <HttpContextBase>();

            // When the Controller calls this.Session it will get a mock session
            mockContext.Setup(c => c.Session).Returns(mockSession.Object);

            // Assign the context property on the controller to our mock context which uses our mock session
            controller.ControllerContext = new ControllerContext(mockContext.Object, new RouteData(), controller);

            // For more details: https://dontpaniclabs.com/blog/post/2011/03/22/testing-session-in-mvc-in-four-lines-of-code/

            #endregion

            // Act
            RedirectToRouteResult result = controller.Start(application) as RedirectToRouteResult;

            // Assert
            Assert.IsNotNull(result, "Result returned was not of type RedirectToRouteResult");
            Assert.AreEqual("PersonalContactInformation", result.RouteValues["action"]);
        }
コード例 #11
0
        public void Index()
        {
            foreach (var roleName in EmployeeRoles)
            {
                var role = roleName;

                // Mock
                var mock = new Mock <ControllerContext>();
                mock.SetupGet(p => p.HttpContext.User.Identity.Name).Returns("User");
                mock.SetupGet(p => p.HttpContext.Request.IsAuthenticated).Returns(true);
                mock.Setup(p => p.HttpContext.User.IsInRole(role)).Returns(true);

                // Arrange
                var controller = new LoanApplicationController {
                    ControllerContext = mock.Object
                };

                // Act
                var result = controller.Index();

                // Assert
                Assert.IsNotNull(result);
            }
        }