public async void GetIndex_WithInactiveAndRejectedAssociation_ShowsOnlyInactiveAssociation() { // Arrange IWeeeClient weeeClient = A.Fake <IWeeeClient>(); A.CallTo(() => weeeClient.SendAsync(A <string> ._, A <GetUserOrganisationsByStatus> ._)) .Returns(new List <OrganisationUserData> { new OrganisationUserData { OrganisationId = new Guid("EF4B78BA-3D73-4B99-A996-714677590A78"), UserStatus = UserStatus.Inactive, Organisation = new OrganisationData { OrganisationName = "Organisation Name 1", OrganisationStatus = OrganisationStatus.Complete, } }, new OrganisationUserData { OrganisationId = new Guid("EF4B78BA-3D73-4B99-A996-714677590A78"), UserStatus = UserStatus.Rejected, Organisation = new OrganisationData { OrganisationName = "Organisation Name 1", OrganisationStatus = OrganisationStatus.Complete, } } }); OrganisationController controller = new OrganisationController(() => weeeClient); // Act ActionResult result = await controller.Index(); // Assert Assert.IsAssignableFrom <ViewResultBase>(result); ViewResultBase viewResult = result as ViewResultBase; Assert.IsAssignableFrom <PendingOrganisationsViewModel>(viewResult.Model); PendingOrganisationsViewModel model = viewResult.Model as PendingOrganisationsViewModel; Assert.Equal(1, model.InaccessibleOrganisations.Count()); OrganisationUserData result1 = model.InaccessibleOrganisations.First(); Assert.Equal(UserStatus.Inactive, result1.UserStatus); }
public async void GetIndex_OneInactiveOrg_ShowsPendingView() { // Arrange Guid organisationId = new Guid("433DB128-12A1-44FB-B26A-8128F8E36598"); IWeeeClient weeeClient = A.Fake <IWeeeClient>(); A.CallTo(() => weeeClient.SendAsync(A <string> ._, A <GetUserOrganisationsByStatus> ._)) .Returns(new List <OrganisationUserData> { new OrganisationUserData { OrganisationId = organisationId, UserStatus = UserStatus.Pending, Organisation = new OrganisationData { OrganisationName = "Organisation Name 1", OrganisationStatus = OrganisationStatus.Complete, } } }); OrganisationController controller = new OrganisationController(() => weeeClient); // Act ActionResult result = await controller.Index(); // Assert Assert.IsAssignableFrom <ViewResult>(result); ViewResult viewResult = result as ViewResult; Assert.Equal("PendingOrganisations", viewResult.ViewName); Assert.IsAssignableFrom <PendingOrganisationsViewModel>(viewResult.Model); PendingOrganisationsViewModel model = viewResult.Model as PendingOrganisationsViewModel; Assert.Equal(1, model.InaccessibleOrganisations.Count()); Assert.Equal(organisationId, model.InaccessibleOrganisations.First().OrganisationId); Assert.Equal("Organisation Name 1", model.InaccessibleOrganisations.First().Organisation.OrganisationName); }
private async Task <ActionResult> ShowOrganisations() { IEnumerable <OrganisationUserData> organisations = await GetOrganisations(); List <OrganisationUserData> accessibleOrganisations = organisations .Where(o => o.UserStatus == UserStatus.Active) .ToList(); List <OrganisationUserData> inaccessibleOrganisations = organisations .Except(accessibleOrganisations) .ToList(); if (accessibleOrganisations.Count == 1 && inaccessibleOrganisations.Count == 0) { Guid organisationId = accessibleOrganisations[0].OrganisationId; return(RedirectToAction("ChooseActivity", "Home", new { area = "Scheme", pcsId = organisationId })); } if (accessibleOrganisations.Count > 0) { YourOrganisationsViewModel model = new YourOrganisationsViewModel(); model.Organisations = accessibleOrganisations; ViewBag.InaccessibleOrganisations = inaccessibleOrganisations.Where(o => o.UserStatus == UserStatus.Pending); return(View("YourOrganisations", model)); } if (inaccessibleOrganisations.Count > 0) { PendingOrganisationsViewModel model = new PendingOrganisationsViewModel(); model.InaccessibleOrganisations = FilterOutDuplicateOrganisations(inaccessibleOrganisations); return(View("PendingOrganisations", model)); } return(RedirectToAction("Search", "OrganisationRegistration")); }
private async Task<ActionResult> ShowOrganisations() { IEnumerable<OrganisationUserData> organisations = await GetOrganisations(); List<OrganisationUserData> accessibleOrganisations = organisations .Where(o => o.UserStatus == UserStatus.Active) .ToList(); List<OrganisationUserData> inaccessibleOrganisations = organisations .Except(accessibleOrganisations) .ToList(); if (accessibleOrganisations.Count == 1 && inaccessibleOrganisations.Count == 0) { Guid organisationId = accessibleOrganisations[0].OrganisationId; return RedirectToAction("ChooseActivity", "Home", new { area = "Scheme", pcsId = organisationId }); } if (accessibleOrganisations.Count > 0) { YourOrganisationsViewModel model = new YourOrganisationsViewModel(); model.Organisations = accessibleOrganisations; ViewBag.InaccessibleOrganisations = inaccessibleOrganisations.Where(o => o.UserStatus == UserStatus.Pending); return View("YourOrganisations", model); } if (inaccessibleOrganisations.Count > 0) { PendingOrganisationsViewModel model = new PendingOrganisationsViewModel(); model.InaccessibleOrganisations = FilterOutDuplicateOrganisations(inaccessibleOrganisations); return View("PendingOrganisations", model); } return RedirectToAction("Search", "OrganisationRegistration"); }