public async Task Then_If_The_Ga_Cookie_Is_Not_Available_A_Default_Value_Is_Used() { //Arrange _httpContext = new Mock <HttpContext>(); _httpContext.Setup(x => x.Request.Cookies["_ga"]).Returns(string.Empty); _httpContext.Setup(x => x.Request.Path).Returns("/"); _controller = new RegisterInterestController(_userDataCollection.Object, _mediator.Object) { ControllerContext = { HttpContext = _httpContext.Object, RouteData = new RouteData() } }; //Act await _controller.Index(_registerInterestModel); //Assert _userDataCollection.Verify(x => x.StoreUserData(It.Is <UserData>( c => c.CookieId.Equals("not-available") )), Times.Once); }
public async Task Then_When_Viewing_The_RegisterInterest_Form_If_There_Is_No_Referrer_They_Are_Redirected_To_The_HomePage() { //Arrange var mockUrlHelper = new Mock <IUrlHelper>(MockBehavior.Strict); mockUrlHelper .Setup(m => m.Action(It.IsAny <UrlActionContext>())) .Returns(ExpectedDefaultUrl).Verifiable(); _httpContext.Setup(x => x.Request.Headers).Returns(new HeaderDictionary(new Dictionary <string, StringValues>())); _controller = new RegisterInterestController(_userDataCollection.Object, _mediator.Object) { Url = mockUrlHelper.Object, ControllerContext = { HttpContext = _httpContext.Object, RouteData = new RouteData() } }; //Act var actual = await _controller.Index(RouteType.Apprentice); //Assert Assert.IsNotNull(actual); var viewResult = actual as ViewResult; Assert.IsNotNull(viewResult); var model = viewResult.Model as RegisterInterestModel; Assert.IsNotNull(model); Assert.AreEqual(ExpectedDefaultUrl, model.ReturnUrl); mockUrlHelper.Verify(x => x.Action(It.Is <UrlActionContext>(c => c.Action.Equals("Index") && c.Controller.Equals("Home")))); }
public async Task When_clicking_register_interest_from_a_search_result_page_then_query_string_is_appended() { //Arrange var mockUrlHelper = new Mock <IUrlHelper>(MockBehavior.Strict); mockUrlHelper .Setup(m => m.Action(It.IsAny <UrlActionContext>())) .Returns(ExpectedDefaultUrl).Verifiable(); var ExpectedRefererUrlWithQuerystring = $"{ExpectedDefaultUrl}?Postcode=CV1+2WT"; _httpContext.Setup(x => x.Request.Headers) .Returns(new HeaderDictionary(new Dictionary <string, StringValues> { { "Referer", ExpectedRefererUrlWithQuerystring } })); _controller = new RegisterInterestController(_userDataCollection.Object, _mediator.Object) { Url = mockUrlHelper.Object, ControllerContext = { HttpContext = _httpContext.Object, ActionDescriptor = new ControllerActionDescriptor { ControllerName = "register-interest" }, RouteData = new RouteData() } }; //Act var actual = await _controller.Index(RouteType.Apprentice); //Assert Assert.IsNotNull(actual); var viewResult = actual as ViewResult; Assert.IsNotNull(viewResult); var model = viewResult.Model as RegisterInterestModel; Assert.IsNotNull(model); Assert.AreEqual(ExpectedRefererUrlWithQuerystring, model.ReturnUrl); }
public void Arrange() { _registerInterestModel = new RegisterInterestModel { Email = "*****@*****.**", FirstName = "Test", Route = RouteType.Apprentice, LastName = "test", ShowRouteQuestion = false }; _mediator = new Mock <IMediator>(); _mediator.SetupMockMediator(); _userDataCollection = new Mock <IUserDataCollection>(); var headers = new HeaderDictionary(new Dictionary <string, StringValues> { { "Referer", ExpectedReferrerUrl } }); _httpContext = new Mock <HttpContext>(); _httpContext.Setup(x => x.Request.Cookies["_ga"]).Returns(ExpectedCookieId); _httpContext.Setup(x => x.Request.Headers).Returns(headers); _httpContext.Setup(x => x.Request.Path).Returns("/"); var mockUrlHelper = new Mock <IUrlHelper>(MockBehavior.Strict); mockUrlHelper .Setup(m => m.Action(It.IsAny <UrlActionContext>())) .Returns(ExpectedDefaultUrl).Verifiable(); _controller = new RegisterInterestController(_userDataCollection.Object, _mediator.Object) { Url = mockUrlHelper.Object, ControllerContext = { HttpContext = _httpContext.Object, ActionDescriptor = new ControllerActionDescriptor { ControllerName = "register-interest" }, RouteData = new RouteData() } }; }
public async Task When_Referring_From_An_FAA_Vacancy_Search_The_Full_Url_Is_Returned() { //Arrange var mockUrlHelper = new Mock <IUrlHelper>(MockBehavior.Strict); mockUrlHelper .Setup(m => m.Action(It.IsAny <UrlActionContext>())) .Returns(ExpectedDefaultUrl).Verifiable(); _httpContext.Setup(x => x.Request.Headers) .Returns(new HeaderDictionary(new Dictionary <string, StringValues> { { "Referer", ExpectedVacancySearchReferrerURl } })); _controller = new RegisterInterestController(_userDataCollection.Object, _mediator.Object) { Url = mockUrlHelper.Object, ControllerContext = { HttpContext = _httpContext.Object, ActionDescriptor = new ControllerActionDescriptor { ControllerName = "register-interest" }, RouteData = new Microsoft.AspNetCore.Routing.RouteData() } }; //Act var actual = await _controller.Index(RouteType.Apprentice); //Assert Assert.IsNotNull(actual); var viewResult = actual as ViewResult; Assert.IsNotNull(viewResult); var model = viewResult.Model as RegisterInterestModel; Assert.IsNotNull(model); Assert.AreEqual(ExpectedDefaultUrl, model.ReturnUrl); mockUrlHelper.Verify(x => x.Action(It.Is <UrlActionContext>(c => c.Action.Equals("SearchResults/standard/postcode/distance") && c.Controller.Equals("cpg")))); }
public void Then_When_Viewing_The_RegisterInterest_Form_Then_If_There_Are_No_Controller_Action_Segments_Default_Values_AreUsed() { //Arrange var mockUrlHelper = new Mock <IUrlHelper>(MockBehavior.Strict); mockUrlHelper .Setup(m => m.Action(It.IsAny <UrlActionContext>())) .Returns(ExpectedDefaultUrl).Verifiable(); _httpContext.Setup(x => x.Request.Headers) .Returns(new HeaderDictionary(new Dictionary <string, StringValues> { { "Referer", "https://test2/" } })); _controller = new RegisterInterestController(_userDataCollection.Object) { Url = mockUrlHelper.Object, ControllerContext = { HttpContext = _httpContext.Object, ActionDescriptor = new ControllerActionDescriptor { ControllerName = "register-interest" }, RouteData = new RouteData() } }; //Act var actual = _controller.Index(RouteType.Apprentice); //Assert Assert.IsNotNull(actual); var viewResult = actual as ViewResult; Assert.IsNotNull(viewResult); var model = viewResult.Model as RegisterInterestModel; Assert.IsNotNull(model); Assert.AreEqual(ExpectedDefaultUrl, model.ReturnUrl); mockUrlHelper.Verify(x => x.Action(It.Is <UrlActionContext>(c => c.Action.Equals("Index") && c.Controller.Equals("Home")))); }
public async Task Then_If_The_Referrer_Is_Itself_Then_It_Is_Redirected_To_The_Homepage() { //Arrange var mockUrlHelper = new Mock <IUrlHelper>(MockBehavior.Strict); mockUrlHelper .Setup(m => m.Action(It.IsAny <UrlActionContext>())) .Returns(ExpectedDefaultUrl).Verifiable(); _httpContext.Setup(x => x.Request.Headers) .Returns(new HeaderDictionary(new Dictionary <string, StringValues> { { "Referer", "https://test/Register-interest" } })); _controller = new RegisterInterestController(_userDataCollection.Object, _mediator.Object) { Url = mockUrlHelper.Object, ControllerContext = { HttpContext = _httpContext.Object, ActionDescriptor = new ControllerActionDescriptor { ControllerName = "register-interest" }, RouteData = new RouteData() } }; //Act var actual = await _controller.Index(RouteType.Apprentice); //Assert Assert.IsNotNull(actual); var viewResult = actual as ViewResult; Assert.IsNotNull(viewResult); var model = viewResult.Model as RegisterInterestModel; Assert.IsNotNull(model); Assert.AreEqual(ExpectedDefaultUrl, model.ReturnUrl); }
public async Task Then_If_The_Model_Is_Not_Valid_And_Route_Is_Known_Then_Dont_Show_Route_Question() { //Arrange var mockUrlHelper = new Mock <IUrlHelper>(MockBehavior.Strict); mockUrlHelper .Setup(m => m.Action(It.IsAny <UrlActionContext>())) .Returns(ExpectedDefaultUrl).Verifiable(); _controller = new RegisterInterestController(_userDataCollection.Object, _mediator.Object) { Url = mockUrlHelper.Object, ControllerContext = { HttpContext = _httpContext.Object, ActionDescriptor = new ControllerActionDescriptor { ControllerName = "register-interest" }, RouteData = new RouteData(new RouteValueDictionary { { "route", "apprentice" } }) } }; _controller.ModelState.AddModelError("FirstName", "First name"); //Act var actual = await _controller.Index(_registerInterestModel); Assert.IsNotNull(actual); var viewResult = actual as ViewResult; Assert.IsNotNull(viewResult); var model = viewResult.Model as RegisterInterestModel; Assert.IsNotNull(model); Assert.IsFalse(model.ShowRouteQuestion); }