Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
        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");
        }