public async Task RegisteredCompanyDetailsPost_ValidViewModel_ReturnsCorrectRedirect(EntityType type, string expectedController, string expectedAction) { var viewModel = new RegisteredCompanyDetailsViewModel() { BusinessTradingName = "name", OrganisationType = "Registered company", CompaniesRegistrationNumber = "1234567", CompanyName = "Name", EntityType = type }; viewModel.Address.Countries = countries; var result = await controller.RegisteredCompanyDetails(viewModel) as RedirectToRouteResult; result.RouteValues["action"].Should().Be(expectedAction); result.RouteValues["controller"].Should().Be(expectedController); result.RouteValues["organisationId"].Should().NotBe(null); if (type != EntityType.Pcs) { result.RouteValues["facilityType"].Should().Be(viewModel.EntityType); } }
public async Task RegisteredCompanyDetailsPost_ModelNotValid_ReturnsView() { var viewModel = new RegisteredCompanyDetailsViewModel() { BusinessTradingName = "Company", OrganisationType = "Registered company", CompaniesRegistrationNumber = "1234567", CompanyName = "Name" }; viewModel.Address.Countries = countries; controller.ModelState.AddModelError("error", "error"); var result = await controller.RegisteredCompanyDetails(viewModel) as ViewResult; var resultViewModel = result.Model as RegisteredCompanyDetailsViewModel; Assert.True(string.IsNullOrEmpty(result.ViewName) || result.ViewName == "SoleTraderOrPartnershipDetails"); Assert.Equal(viewModel.BusinessTradingName, resultViewModel.BusinessTradingName); Assert.Equal(viewModel.OrganisationType, resultViewModel.OrganisationType); Assert.Equal(viewModel.CompanyName, resultViewModel.CompanyName); Assert.Equal(viewModel.CompaniesRegistrationNumber, resultViewModel.CompaniesRegistrationNumber); Assert.Equal(countries, resultViewModel.Address.Countries); }
public async Task <ActionResult> RegisteredCompanyDetails(RegisteredCompanyDetailsViewModel model) { SetBreadcrumb(InternalUserActivity.CreateOrganisation); if (!ModelState.IsValid) { var countries = await GetCountries(); model.Address.Countries = countries; return(View(model)); } using (var client = apiClient()) { var request = new CreateOrganisationAdmin() { Address = model.Address, BusinessName = model.CompanyName, OrganisationType = model.OrganisationType.GetValueFromDisplayName <OrganisationType>(), RegistrationNumber = model.CompaniesRegistrationNumber, TradingName = model.BusinessTradingName }; var id = await client.SendAsync(User.GetAccessToken(), request); await cache.InvalidateOrganisationSearch(); return(RedirectToAddAction(id, model.EntityType)); } }
public async Task RegisteredCompanyDetailsPost_Always_SetsInternalBreadcrumb() { var viewModel = new RegisteredCompanyDetailsViewModel { BusinessTradingName = "name", OrganisationType = "Registered company", CompaniesRegistrationNumber = "1234567", CompanyName = "Name", Address = { Countries = countries } }; await controller.RegisteredCompanyDetails(viewModel); Assert.Equal("Add new organisation", breadcrumbService.InternalActivity); }
public async Task RegisteredCompanyDetailsPost_InvalidateCacheMustBeRun() { var viewModel = new RegisteredCompanyDetailsViewModel { BusinessTradingName = "Company", OrganisationType = "Registered company", CompaniesRegistrationNumber = "1234567", CompanyName = "Name", Address = { Countries = countries } }; await controller.RegisteredCompanyDetails(viewModel); A.CallTo(() => cache.InvalidateOrganisationSearch()).MustHaveHappened(Repeated.Exactly.Once); }
public async Task <ActionResult> RegisteredCompanyDetails(string organisationType, EntityType entityType, string searchedText = null) { SetBreadcrumb(InternalUserActivity.CreateOrganisation); var countries = await GetCountries(); var model = new RegisteredCompanyDetailsViewModel { CompanyName = searchedText, OrganisationType = organisationType, EntityType = entityType, Address = { Countries = countries } }; return(View(model)); }
public async Task PostRegisteredCompanyDetails_WithInvalidModel_ReturnsView() { // Arrange IWeeeClient weeeClient = A.Dummy<IWeeeClient>(); ISearcher<OrganisationSearchResult> organisationSearcher = A.Dummy<ISearcher<OrganisationSearchResult>>(); OrganisationRegistrationController controller = new OrganisationRegistrationController( () => weeeClient, organisationSearcher); controller.ModelState.AddModelError("Key", "Error"); RegisteredCompanyDetailsViewModel model = new RegisteredCompanyDetailsViewModel(); // Act ActionResult result = await controller.RegisteredCompanyDetails(model); // Assert var viewmodel = ((ViewResult)result).Model; Assert.NotNull(viewmodel); Assert.False(((ViewResult)result).ViewData.ModelState.IsValid); }
public async Task<ActionResult> RegisteredCompanyDetails(RegisteredCompanyDetailsViewModel model) { if (!ModelState.IsValid) { return View(model); } using (var client = apiClient()) { if (model.OrganisationId != null) { // update orgnisation details UpdateOrganisationTypeDetails updateRequest = new UpdateOrganisationTypeDetails( model.OrganisationId.Value, OrganisationType.RegisteredCompany, model.CompanyName, model.BusinessTradingName, model.CompaniesRegistrationNumber); Guid organisationId = await client.SendAsync(User.GetAccessToken(), updateRequest); return RedirectToAction("MainContactPerson", new { organisationId }); } CreateRegisteredCompanyRequest request = new CreateRegisteredCompanyRequest { BusinessName = model.CompanyName, CompanyRegistrationNumber = model.CompaniesRegistrationNumber, TradingName = model.BusinessTradingName }; //create the organisation only if does not exist Guid orgId = await client.SendAsync(User.GetAccessToken(), request); return RedirectToAction("MainContactPerson", new { organisationId = orgId }); } }
public async Task<ActionResult> RegisteredCompanyDetails(Guid? organisationId = null, string searchedText = null) { if (organisationId != null) { using (var client = apiClient()) { var organisation = await GetOrganisation(organisationId, client); if (organisation.OrganisationType == OrganisationType.RegisteredCompany) { var model = new RegisteredCompanyDetailsViewModel { BusinessTradingName = organisation.TradingName, CompanyName = organisation.Name, CompaniesRegistrationNumber = organisation.CompanyRegistrationNumber, OrganisationId = organisationId.Value }; return View("RegisteredCompanyDetails", model); } return View(new RegisteredCompanyDetailsViewModel { CompanyName = searchedText }); } } return View(new RegisteredCompanyDetailsViewModel { CompanyName = searchedText }); }