public async Task And_Nothing_Is_Selected_Then_Error_Is_Returned() { // Arrange _mockStandardVersionApiClient.Setup(m => m.GetEpaoRegisteredStandardVersions(It.IsAny <string>(), "ST0001")) .ReturnsAsync(new List <StandardVersion>() { new StandardVersion() { Version = "1.0" }, new StandardVersion() { Version = "1.1" }, new StandardVersion() { Version = "1.2" } }); var model = new CheckWithdrawalRequestViewModel() { Continue = null }; // Act var result = await _sut.CheckWithdrawalRequest("ST0001", "1.1,1.2", null, model) as RedirectToActionResult; // Assert _sut.ModelState.IsValid.Should().BeFalse(); _sut.ModelState["Continue"].Errors.Should().Contain(x => x.ErrorMessage == "Select Yes or No"); }
public async Task And_No_Is_Selected_Then_Redirected_To_WithdrawalApplications() { // Arrange _mockStandardVersionApiClient.Setup(m => m.GetEpaoRegisteredStandardVersions(It.IsAny <string>(), "ST0001")) .ReturnsAsync(new List <StandardVersion>() { new StandardVersion() { Version = "1.0" }, new StandardVersion() { Version = "1.1" }, new StandardVersion() { Version = "1.2" } }); var model = new CheckWithdrawalRequestViewModel() { Continue = "No" }; // Act var result = await _sut.CheckWithdrawalRequest("ST0001", "1.1,1.2", null, model) as RedirectToActionResult; // Assert result.ActionName.Should().Be(nameof(ApplyForWithdrawalController.WithdrawalApplications)); result.ControllerName.Should().Be(nameof(ApplyForWithdrawalController).RemoveController()); }
public async Task And_Yes_Is_Selected_For_Standard_Then_Application_Is_Created() { // Arrange _mockApplicationApiClient.Setup(m => m.GetWithdrawalApplications(It.IsAny <Guid>())) .ReturnsAsync(new List <ApplicationResponse>()); _mockStandardVersionApiClient.Setup(m => m.GetEpaoRegisteredStandardVersions(It.IsAny <string>(), "ST0001")) .ReturnsAsync(new List <StandardVersion>() { new StandardVersion() { Version = "1.0" }, new StandardVersion() { Version = "1.1" }, new StandardVersion() { Version = "1.2" } }); var applicationId = Guid.NewGuid(); _mockApplicationApiClient .Setup(r => r.CreateApplication(It.IsAny <CreateApplicationRequest>())) .ReturnsAsync(applicationId); var model = new CheckWithdrawalRequestViewModel() { Continue = "yes" }; // Act var result = await _sut.CheckWithdrawalRequest("ST0001", null, null, model) as RedirectToActionResult; // Assert result.ActionName.Should().Be(nameof(ApplicationController.Sequence)); result.ControllerName.Should().Be(nameof(ApplicationController).RemoveController()); result.RouteValues.GetValueOrDefault("Id").Should().Be(applicationId); _mockApplicationApiClient.Verify(m => m.UpdateStandardData(applicationId, It.IsAny <int>(), "ST0001", It.IsAny <string>(), null, StandardApplicationTypes.StandardWithdrawal)); }
public async Task And_Yes_Is_Selected_For_Organisation_Withdrawal_Then_Application_Is_Created() { // Arrange var applicationId = Guid.NewGuid(); _mockApplicationApiClient .Setup(r => r.CreateApplication(It.IsAny <CreateApplicationRequest>())) .ReturnsAsync(applicationId); var model = new CheckWithdrawalRequestViewModel() { Continue = "yes" }; // Act var result = await _sut.CheckWithdrawalRequest(null, null, null, model) as RedirectToActionResult; // Assert result.ActionName.Should().Be(nameof(ApplicationController.Sequence)); result.ControllerName.Should().Be(nameof(ApplicationController).RemoveController()); result.RouteValues.GetValueOrDefault("Id").Should().Be(applicationId); }
public async Task <IActionResult> CheckWithdrawalRequest(string iFateReferenceNumber, string versionsToWithdrawal, [FromQuery] string backAction, CheckWithdrawalRequestViewModel model) { var contact = await GetUserContact(); var organisation = await _orgApiClient.GetOrganisationByUserId(contact.Id); var versions = await _standardVersionApiClient.GetEpaoRegisteredStandardVersions(organisation.EndPointAssessorOrganisationId, iFateReferenceNumber); var standard = versions.FirstOrDefault(); if (string.IsNullOrWhiteSpace(model.Continue)) { ModelState.AddModelError(nameof(model.Continue), "Select Yes or No"); } if (!ModelState.IsValid) { model.IFateReferenceNumber = iFateReferenceNumber; model.Level = standard?.Level ?? default; model.StandardName = standard?.Title; model.BackAction = backAction; return(View(model)); } if (model.Continue.Equals("no", StringComparison.InvariantCultureIgnoreCase)) { return(RedirectToAction( nameof(WithdrawalApplications), nameof(ApplyForWithdrawalController).RemoveController())); } if (string.IsNullOrWhiteSpace(iFateReferenceNumber)) { var id = await CreateOrganisationWithdrawalApplication(contact, organisation); return(RedirectToAction( nameof(ApplicationController.Sequence), nameof(ApplicationController).RemoveController(), new { Id = id, sequenceNo = ApplyConst.ORGANISATION_WITHDRAWAL_SEQUENCE_NO })); } else { if (string.IsNullOrWhiteSpace(versionsToWithdrawal)) { var applications = await GetInProgressWithdrawalVersionApplications(contact.Id, iFateReferenceNumber); if (applications.Any()) { await _applicationApiClient.DeleteApplications(new DeleteApplicationsRequest() { ApplicationIds = applications.Select(x => x.Id), DeletingContactId = null }); } } var id = await CreateWithdrawalApplication(contact, organisation, standard.LarsCode, iFateReferenceNumber, standard.Title, string.IsNullOrWhiteSpace(versionsToWithdrawal)?StandardOrVersion.Standard : StandardOrVersion.Version, versionsToWithdrawal?.Split(",")); return(RedirectToAction( nameof(ApplicationController.Sequence), nameof(ApplicationController).RemoveController(), new { Id = id, sequenceNo = ApplyConst.STANDARD_WITHDRAWAL_SEQUENCE_NO })); } }
public async Task And_Yes_Is_Selected_For_Standard_And_InProgress_Applications_Then_Version_Applications_Are_Deleted() { var applicationId = Guid.NewGuid(); var existingApplicationId1 = Guid.NewGuid(); var existingApplicationId2 = Guid.NewGuid(); // Arrange _mockApplicationApiClient.Setup(m => m.GetWithdrawalApplications(It.IsAny <Guid>())) .ReturnsAsync(new List <ApplicationResponse>() { new ApplicationResponse() { Id = existingApplicationId1, ApplicationStatus = ApplicationStatus.InProgress, ApplicationType = ApplicationTypes.StandardWithdrawal, StandardReference = "ST0001", ApplyData = new ApplyData() { Apply = new ApplyTypes.Apply() { StandardReference = "ST0001", Versions = new List <string> { "1.0" } } } }, new ApplicationResponse() { Id = existingApplicationId2, ApplicationStatus = ApplicationStatus.InProgress, ApplicationType = ApplicationTypes.StandardWithdrawal, StandardReference = "ST0001", ApplyData = new ApplyData() { Apply = new ApplyTypes.Apply() { StandardReference = "ST0001", Versions = new List <string> { "1.1" } } } } }); _mockStandardVersionApiClient.Setup(m => m.GetEpaoRegisteredStandardVersions(It.IsAny <string>(), "ST0001")) .ReturnsAsync(new List <StandardVersion>() { new StandardVersion() { Version = "1.0" }, new StandardVersion() { Version = "1.1" }, new StandardVersion() { Version = "1.2" } }); _mockApplicationApiClient .Setup(r => r.CreateApplication(It.IsAny <CreateApplicationRequest>())) .ReturnsAsync(applicationId); var model = new CheckWithdrawalRequestViewModel() { Continue = "yes" }; // Act var result = await _sut.CheckWithdrawalRequest("ST0001", null, null, model) as RedirectToActionResult; // Assert _mockApplicationApiClient.Verify(m => m.DeleteApplications( It.Is <DeleteApplicationsRequest>(x => x.ApplicationIds.Any(a => a == existingApplicationId1) && x.ApplicationIds.Any(a => a == existingApplicationId2)))); }