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>())); }
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"]); }
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); }
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); }
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); }
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(); }
public void AnonymousIndex() { // Arrange var controller = new LoanApplicationController(); // Act var result = controller.Index() as ViewResult; // Assert Assert.IsNotNull(result); }
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); }
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"]); }
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); } }