private List <Guid> PrepareSaveSchemes(Guid returnId)
        {
            var reselectedSchemes = new List <Guid>();
            var existingSchemes   = A.CollectionOfDummy <SchemeData>(2).ToList();

            foreach (var scheme in existingSchemes)
            {
                scheme.Id = Guid.NewGuid();
                reselectedSchemes.Add(scheme.Id);
            }

            reselectedSchemes.Add(Guid.NewGuid());

            var usersAlreadySavedSchemeDataList = new SchemeDataList()
            {
                SchemeDataItems = existingSchemes
            };

            var requests = new List <AddReturnScheme>()
            {
                new AddReturnScheme()
                {
                    ReturnId  = returnId,
                    SchemeIds = reselectedSchemes
                }
            };

            A.CallTo(() => weeeClient.SendAsync(A <string> ._, A <GetReturnScheme> .That.Matches(p => p.ReturnId == returnId))).Returns(usersAlreadySavedSchemeDataList);
            A.CallTo(() => weeeClient.SendAsync(A <string> ._, A <AddReturnScheme> .That.Matches(p => p.ReturnId == returnId && p.SchemeIds == reselectedSchemes)));

            return(reselectedSchemes);
        }
Exemplo n.º 2
0
        private async Task <ActionResult> SaveAndContinue(SchemeDataList existingSchemes, List <Guid> schemeIdsToAdd, Guid returnId)
        {
            using (var client = this.apiClient())
            {
                foreach (var scheme in existingSchemes.SchemeDataItems)
                {
                    if (schemeIdsToAdd.Contains(scheme.Id))
                    {
                        schemeIdsToAdd.Remove(scheme.Id);
                    }
                }

                if (schemeIdsToAdd != null && schemeIdsToAdd.Count > 0)
                {
                    var request = new AddReturnScheme
                    {
                        ReturnId  = returnId,
                        SchemeIds = schemeIdsToAdd
                    };
                    await client.SendAsync(this.User.GetAccessToken(), request);
                }

                return(AatfRedirect.TaskList(returnId));
            }
        }
Exemplo n.º 3
0
        public void Construct_GivenNullOrganisationData_ArgumentNullExceptionExpected()
        {
            Action act = () =>
            {
                var schemeDataList = new SchemeDataList(new List <SchemeData>(), null);
            };

            act.Should().Throw <ArgumentNullException>();
        }
Exemplo n.º 4
0
        public void Construct_GivenParameters_PropertiesShouldBeSet()
        {
            var organisationData = OrganisationData();
            var list             = new List <SchemeData>();

            var schemeDataList = new SchemeDataList(list, organisationData);

            schemeDataList.OrganisationData.Should().Be(organisationData);
            schemeDataList.SchemeDataItems.Should().BeSameAs(list);
        }
        public async void IndexPost_GivenSchemesRemoved_ShouldRedirectToRemovedPcsRoute()
        {
            var existingSchemes   = A.CollectionOfDummy <SchemeData>(3).ToList();
            var reselectedSchemes = new List <Guid>();

            foreach (var scheme in existingSchemes)
            {
                scheme.Id = Guid.NewGuid();
                reselectedSchemes.Add(scheme.Id);
            }

            var usersAlreadySavedSchemeDataList = new SchemeDataList()
            {
                SchemeDataItems = existingSchemes
            };

            var removedItem = reselectedSchemes.ElementAt(reselectedSchemes.Count - 1);

            reselectedSchemes.RemoveAt(reselectedSchemes.Count - 1);

            var model = new SelectYourPcsViewModel()
            {
                ReturnId        = Guid.NewGuid(),
                OrganisationId  = Guid.NewGuid(),
                SchemeList      = existingSchemes,
                SelectedSchemes = reselectedSchemes
            };

            model.SelectedSchemes = reselectedSchemes;

            A.CallTo(() => weeeClient.SendAsync(A <string> ._, A <GetReturnScheme> .That.Matches(p => p.ReturnId == model.ReturnId))).Returns(usersAlreadySavedSchemeDataList);

            var result = await controller.Index(model, true) as RedirectToRouteResult;

            result.RouteName.Should().Be(AatfRedirect.RemovedPcsRouteName);
            result.RouteValues["returnId"].Should().Be(model.ReturnId);
            result.RouteValues["organisationId"].Should().Be(model.OrganisationId);

            var removedSchemeList = controller.TempData["RemovedSchemeList"] as List <SchemeData>;

            removedSchemeList.Count.Should().Be(1);
            removedSchemeList.ElementAt(0).Id.Should().Be(removedItem);

            controller.TempData["SelectedSchemes"].Should().Be(model.SelectedSchemes);

            var removedSchemes = controller.TempData["RemovedSchemes"] as List <Guid>;

            removedSchemes.Count().Should().Be(1);
            removedSchemes.ElementAt(0).Should().Be(removedItem);
        }
        public async void IndexGet_ReselectIsTrue_CallsToGetExistingSelectedSchemesMustHaveBeenCalledAndViewModelListPopulatedWithGuids()
        {
            var returnId       = Guid.NewGuid();
            var organisationId = Guid.NewGuid();

            var selectedSchemeIds = new List <Guid>()
            {
                Guid.NewGuid(),
                Guid.NewGuid()
            };

            var schemeDataList = new SchemeDataList()
            {
                SchemeDataItems = new List <SchemeData>()
            };

            foreach (var scheme in selectedSchemeIds)
            {
                schemeDataList.SchemeDataItems.Add(new SchemeData()
                {
                    Id = scheme
                });
            }

            A.CallTo(() => weeeClient.SendAsync(A <string> ._, A <GetReturnScheme> .That.Matches(p => p.ReturnId == returnId))).Returns(schemeDataList);
            A.CallTo(() => weeeClient.SendAsync(A <string> ._, A <GetSchemesExternal> ._)).Returns(A.Fake <List <SchemeData> >());

            var result = await controller.Index(organisationId, returnId, true) as ViewResult;

            var viewModel = result.Model as SelectYourPcsViewModel;

            Assert.Equal(selectedSchemeIds, viewModel.SelectedSchemes);

            A.CallTo(() => weeeClient.SendAsync(A <string> ._, A <GetReturnScheme> .That.Matches(p => p.ReturnId == returnId))).MustHaveHappened(Repeated.Exactly.Once);
            A.CallTo(() => weeeClient.SendAsync(A <string> ._, A <GetSchemesExternal> ._)).MustHaveHappened(Repeated.Exactly.Once);
        }