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); }
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)); } }
public void Construct_GivenNullOrganisationData_ArgumentNullExceptionExpected() { Action act = () => { var schemeDataList = new SchemeDataList(new List <SchemeData>(), null); }; act.Should().Throw <ArgumentNullException>(); }
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); }