public async Task WhenFindAddressPostedAndNoAddressesAreFound_ThenReturnNoAddressFoundMessage() { var controller = new EditYourDetailsController(_compositeSettings, _authService, _addressSearchService, _dssReader, _dssWriter, _documentService, _config) { ControllerContext = new ControllerContext { HttpContext = new DefaultHttpContext() } }; _dssReader.GetCustomerData(Arg.Any <string>()).ReturnsForAnyArgs(new Customer { Contact = new Contact { EmailAddress = "test" } }); _addressSearchService.GetAddresses(Arg.Any <string>()).ReturnsForAnyArgs(new List <PostalAddressModel>()); var viewModel = GetViewModel(); viewModel.Identity.PersonalDetails.HomePostCode = "lg23hg"; viewModel.Items = null; var result = await controller.Body(viewModel, new FormCollection(new Dictionary <string, StringValues> { { "findAddress", "findAddress" } })) as ViewResult; result.Should().NotBeNull(); ((EditDetailsCompositeViewModel)result.ViewData.Model).Identity.PersonalDetails .FindAddressServiceResult.Should().Be("We do not have any address matching this postcode. Please enter your address details in the boxes provided."); }
public async Task WhenSelectAddressPostedAndAddressServiceIsDown_ThenReturnServiceDownMessage() { var controller = new EditYourDetailsController(_compositeSettings, _authService, _addressSearchService, _dssReader, _dssWriter, _documentService, _config) { ControllerContext = new ControllerContext { HttpContext = new DefaultHttpContext() } }; _dssReader.GetCustomerData(Arg.Any <string>()).ReturnsForAnyArgs(new Customer { Contact = new Contact { EmailAddress = "test" } }); _addressSearchService.GetAddress(Arg.Any <string>()).ThrowsForAnyArgs(new System.Exception()); var viewModel = GetViewModel(); viewModel.Identity.PersonalDetails.HomePostCode = "lg23hg"; var result = await controller.Body(viewModel, new FormCollection(new Dictionary <string, StringValues> { { "selectAddress", "selectAddress" }, { "select-address", "{\"id\":\"test\"}" } })) as ViewResult; result.Should().NotBeNull(); ((EditDetailsCompositeViewModel)result.ViewData.Model).Identity.PersonalDetails.FindAddressServiceResult.Should().NotBeNullOrEmpty(); }
public async Task WhenFindAddressPostedAndPostcodeIsNotValid_ThenAddressServiceNotCalledAndModelIsReturnedWithError() { var controller = new EditYourDetailsController(_compositeSettings, _authService, _addressSearchService, _dssReader, _dssWriter, _documentService, _config) { ControllerContext = new ControllerContext { HttpContext = new DefaultHttpContext() } }; _dssReader.GetCustomerData(Arg.Any <string>()).ReturnsForAnyArgs(new Customer { Contact = new Contact { EmailAddress = "test" } }); var result = await controller.Body(GetViewModel(), new FormCollection(new Dictionary <string, StringValues> { { "findAddress", "findAddress" } })) as ViewResult; result.Should().NotBeNull(); result.ViewData.ModelState.IsValid.Should().BeFalse(); }
public async Task WhenSaveDataPostedAndFormIsValid_ThenDateShouldBeSaved() { var customer = new Customer() { CustomerId = new Guid("c2e27821-cc60-4d3d-b4f0-cbe20867897c") }; _authService.GetCustomer(Arg.Any <ClaimsPrincipal>()).Returns(customer); var controller = new EditYourDetailsController(_compositeSettings, _authService, _addressSearchService, _dssReader, _dssWriter, _documentService, _config) { ControllerContext = new ControllerContext { HttpContext = new DefaultHttpContext() } }; _dssReader.GetCustomerData(Arg.Any <string>()).ReturnsForAnyArgs(new Customer { Contact = new Contact() }); var result = await controller.Body(GetViewModel(), new FormCollection(new Dictionary <string, StringValues> { { "saveDetails", "saveDetails" } })) as ViewResult; _dssWriter.Received(3); }
public async Task WhenBodyCalled_ThenDssCalled() { var customer = new Customer() { CustomerId = new Guid("c2e27821-cc60-4d3d-b4f0-cbe20867897c") }; _authService.GetCustomer(Arg.Any <ClaimsPrincipal>()).Returns(customer); var controller = new EditYourDetailsController(_compositeSettings, _authService, _addressSearchService, _dssReader, _dssWriter, _documentService, _config); controller.ControllerContext = new ControllerContext { HttpContext = new DefaultHttpContext() }; _dssReader.GetCustomerData(Arg.Any <string>()).ReturnsForAnyArgs(new Customer()); await controller.Body(); await _dssReader.Received().GetCustomerData(Arg.Any <string>()); }
public async Task WhenBodyCalled_ReturnHtml() { var customer = new Customer() { CustomerId = new Guid("c2e27821-cc60-4d3d-b4f0-cbe20867897c") }; _authService.GetCustomer(Arg.Any <ClaimsPrincipal>()).Returns(customer); var controller = new EditYourDetailsController(_compositeSettings, _authService, _addressSearchService, _dssReader, _dssWriter, _documentService, _config); controller.ControllerContext = new ControllerContext { HttpContext = new DefaultHttpContext() }; _dssReader.GetCustomerData(Arg.Any <string>()).ReturnsForAnyArgs(new Customer()); var result = await controller.Body() as ViewResult; result.Should().NotBeNull(); result.Should().BeOfType <ViewResult>(); result.ViewName.Should().BeNull(); }
public async Task WhenSaveDataPostedAsSmsAndAllValuesAreEmpty_ThenDateShouldNotSaved() { var customer = new Customer() { CustomerId = new Guid("c2e27821-cc60-4d3d-b4f0-cbe20867897c") }; _authService.GetCustomer(Arg.Any <ClaimsPrincipal>()).Returns(customer); var controller = new EditYourDetailsController(_compositeSettings, _authService, _addressSearchService, _dssReader, _dssWriter, _documentService, _config) { ControllerContext = new ControllerContext { HttpContext = new DefaultHttpContext() } }; _dssReader.GetCustomerData(Arg.Any <string>()).ReturnsForAnyArgs(new Customer()); var result = await controller.Body(new EditDetailsCompositeViewModel { Identity = new CitizenIdentity { ContactDetails = new ContactDetails { ContactEmail = "7777777", ContactPreference = CommonEnums.Channel.Text } } }, new FormCollection(new Dictionary <string, StringValues> { { "saveDetails", "saveDetails" } })) as ViewResult; _dssWriter.Received(0); result.Should().NotBeNull(); result.Should().BeOfType <ViewResult>(); result.ViewName.Should().BeNull(); }
public async Task WhenSelectAddressPosted_ThenAddressServiceCalled() { var controller = new EditYourDetailsController(_compositeSettings, _authService, _addressSearchService, _dssReader, _dssWriter, _documentService, _config) { ControllerContext = new ControllerContext { HttpContext = new DefaultHttpContext() } }; _dssReader.GetCustomerData(Arg.Any <string>()).ReturnsForAnyArgs(new Customer { Contact = new Contact { EmailAddress = "test" } }); _addressSearchService.GetAddresses(Arg.Any <string>()).ReturnsForAnyArgs(new List <PostalAddressModel> { new PostalAddressModel { Line1 = "test" } }); var viewModel = GetViewModel(); viewModel.Identity.PersonalDetails.HomePostCode = "lg23hg"; var result = await controller.Body(viewModel, new FormCollection(new Dictionary <string, StringValues> { { "selectAddress", "selectAddress" }, { "select-address", "{\"id\":\"test\"}" } })) as ViewResult; await _addressSearchService.Received().GetAddress(Arg.Any <string>()); }
public async Task WhenFindAddressPostedAndFormIsValid_ThenAddressServiceCalled() { var controller = new EditYourDetailsController(_compositeSettings, _authService, _addressSearchService, _dssReader, _dssWriter, _documentService, _config) { ControllerContext = new ControllerContext { HttpContext = new DefaultHttpContext() } }; _dssReader.GetCustomerData(Arg.Any <string>()).ReturnsForAnyArgs(new Customer { Contact = new Contact { EmailAddress = "test" } }); _addressSearchService.GetAddresses(Arg.Any <string>()).ReturnsForAnyArgs(new List <PostalAddressModel> { new PostalAddressModel { Line1 = "test" } }); var viewModel = GetViewModel(); viewModel.Identity.PersonalDetails.HomePostCode = "lg23hg"; var result = await controller.Body(viewModel, new FormCollection(new Dictionary <string, StringValues> { { "findAddress", "findAddress" } })) as ViewResult; result.Should().NotBeNull(); ((EditDetailsCompositeViewModel)result.ViewData.Model).Items.Any().Should().BeTrue(); }