public void SetUp() { _applicationApiClient = new Mock <IRoatpApplicationApiClient>(); _moderationApiClient = new Mock <IRoatpModerationApiClient>(); _orchestrator = new Web.Services.ModeratorOutcomeOrchestrator(_applicationApiClient.Object, _moderationApiClient.Object); _application = new Apply { ApplicationId = _applicationId, ModerationStatus = ModerationStatus.New, Assessor1ReviewStatus = AssessorReviewStatus.Approved, Assessor1UserId = _userId, Assessor1Name = _userDisplayName, Assessor2ReviewStatus = AssessorReviewStatus.Approved, Assessor2UserId = $"{ _userId }-2", Assessor2Name = $"{ _userDisplayName }-2", ApplyData = new ApplyData { ApplyDetails = new ApplyDetails { ProviderRouteName = "Main", UKPRN = "23456789", OrganisationName = "Emporium Glorium", ApplicationSubmittedOn = DateTime.UtcNow } } }; _outcomes = new List <ModeratorPageReviewOutcome>(); _contact = new Contact { Email = "*****@*****.**" }; _request = new GetModeratorOutcomeRequest(_applicationId, _userId); _applicationApiClient.Setup(x => x.GetApplication(_applicationId)).ReturnsAsync(_application); _applicationApiClient.Setup(x => x.GetContactForApplication(_applicationId)).ReturnsAsync(_contact); _moderationApiClient.Setup(x => x.GetAllModeratorPageReviewOutcomes(_applicationId, _userId)).ReturnsAsync(_outcomes); _expectedOutcomeViewModel = new ModeratorOutcomeViewModel(_application, _outcomes); }
public async Task <ModeratorOutcomeViewModel> GetInModerationOutcomeViewModel(GetModeratorOutcomeRequest request) { var application = await _applicationApiClient.GetApplication(request.ApplicationId); var contact = await _applicationApiClient.GetContactForApplication(request.ApplicationId); // TODO: Is this needed? var savedOutcomes = await _moderationApiClient.GetAllModeratorPageReviewOutcomes(request.ApplicationId, request.UserId); if (application is null || contact is null || savedOutcomes is null) { return(null); } // Not sure if this check is required. You're going to have Clarification ones in here soon var unsetOutcomesCount = savedOutcomes.Count(x => x.Status != ModeratorPageReviewStatus.Pass && x.Status != ModeratorPageReviewStatus.Fail); if (unsetOutcomesCount > 0) { return(null); } return(new ModeratorOutcomeViewModel(application, savedOutcomes)); }