public async Task CreateEmptyReview_CheckAutoPass_AppliesPassStatusToModerationWhereApplicable( string assessor1ReviewStatus, string assessor1ReviewComments, string assessor2ReviewStatus, string assessor2ReviewComments, string moderatorReviewStatus) { var blindAssessmentOutcome = new BlindAssessmentOutcome { SequenceNumber = RoatpWorkflowSequenceIds.DeliveringApprenticeshipTraining, SectionNumber = RoatpWorkflowSectionIds.DeliveringApprenticeshipTraining.YourSectorsAndEmployees, PageId = _firstPageId, Assessor1ReviewStatus = assessor1ReviewStatus, Assessor1ReviewComment = assessor1ReviewComments, Assessor2ReviewStatus = assessor2ReviewStatus, Assessor2ReviewComment = assessor2ReviewComments }; _mediator.Setup(x => x.Send(It.IsAny <GetBlindAssessmentOutcomeRequest>(), It.IsAny <CancellationToken>())).ReturnsAsync(new BlindAssessmentOutcome()); _mediator.Setup(x => x.Send(It.IsAny <GetAllBlindAssessmentOutcomesRequest>(), It.IsAny <CancellationToken>())).ReturnsAsync(new List <BlindAssessmentOutcome>() { blindAssessmentOutcome }); await _reviewCreationService.CreateEmptyReview(_applicationId, _userId, _userName); _mediator.Verify(x => x.Send(It.Is <CreateEmptyModeratorReviewRequest>(r => r.PageReviewOutcomes.Any(y => y.SequenceNumber == RoatpWorkflowSequenceIds.DeliveringApprenticeshipTraining && y.SectionNumber == RoatpWorkflowSectionIds.DeliveringApprenticeshipTraining.YourSectorsAndEmployees && y.PageId == _firstPageId && y.ModeratorReviewStatus == moderatorReviewStatus)), It.IsAny <CancellationToken>()), Times.Once); }
public async Task GetBlindAssessmentOutcome_returns_expected_BlindAssessmentOutcome() { var expectedResult = new BlindAssessmentOutcome(); _mediator.Setup(x => x.Send(It.Is <GetBlindAssessmentOutcomeRequest>(r => r.ApplicationId == _applicationId && r.SequenceNumber == _sequenceNumber && r.SectionNumber == _sectionNumber && r.PageId == _pageId), It.IsAny <CancellationToken>())).ReturnsAsync(expectedResult); var actualResult = await _controller.GetBlindAssessmentOutcome(_applicationId, _sequenceNumber, _sectionNumber, _pageId); _mediator.Verify(x => x.Send(It.Is <GetBlindAssessmentOutcomeRequest>(r => r.ApplicationId == _applicationId && r.SequenceNumber == _sequenceNumber && r.SectionNumber == _sectionNumber && r.PageId == _pageId), It.IsAny <CancellationToken>()), Times.Once); Assert.AreSame(expectedResult, actualResult); }
public async Task GetBlindAssessmentOutcomeHandler_returns__BlindAssessmentOutcome() { var applicationId = Guid.NewGuid(); var sequenceNumber = 1; var sectionNumber = 2; var pageId = "30"; var expectedResult = new BlindAssessmentOutcome { Assessor1Name = "Assessor 1", Assessor1ReviewStatus = "Pass", Assessor1ReviewComment = "", Assessor2Name = "Assessor 2", Assessor2ReviewStatus = "Failed", Assessor2ReviewComment = "Very bad" }; _repository.Setup(x => x.GetBlindAssessmentOutcome(applicationId, sequenceNumber, sectionNumber, pageId)).ReturnsAsync(expectedResult); var actualResult = await _handler.Handle(new GetBlindAssessmentOutcomeRequest(applicationId, sequenceNumber, sectionNumber, pageId), new CancellationToken()); Assert.AreSame(expectedResult, actualResult); }
public void SetUp() { var logger = new Mock <ILogger <Web.Services.OutcomeSectionReviewOrchestrator> >(); _applyApiClient = new Mock <IRoatpApplicationApiClient>(); _moderationApiClient = new Mock <IRoatpModerationApiClient>(); _clarificationApiClient = new Mock <IRoatpClarificationApiClient>(); var supplementaryInformationService = new Mock <ISupplementaryInformationService>(); _orchestrator = new Web.Services.OutcomeSectionReviewOrchestrator(logger.Object, _applyApiClient.Object, _moderationApiClient.Object, _clarificationApiClient.Object, supplementaryInformationService.Object); _userId = _user.UserId(); _userName = _user.UserDisplayName(); _application = new Apply { ApplicationId = _applicationId, ApplyData = new ApplyData { ApplyDetails = new ApplyDetails { } }, Assessor1UserId = _userId }; _contact = new Contact { Email = _userId, GivenNames = _user.GivenName(), FamilyName = _user.Surname() }; _blindAssessmentOutcome = new BlindAssessmentOutcome { ApplicationId = _applicationId, SequenceNumber = _sequenceNumber, SectionNumber = _sectionNumber, PageId = _pageId, Assessor1UserId = _userId, Assessor1Name = _userName, Assessor1ReviewStatus = AssessorPageReviewStatus.Pass, Assessor1ReviewComment = null, Assessor2UserId = $"{_userId}-2", Assessor2Name = $"{_userName}-2", Assessor2ReviewStatus = AssessorPageReviewStatus.Fail, Assessor2ReviewComment = "Failed" }; _clarificationPage = new ClarificationPage { ApplicationId = _applicationId, SequenceNumber = _sequenceNumber, SectionNumber = _sectionNumber, PageId = _pageId, Questions = new List <Question> { new Question { QuestionId = "Q1" } }, Answers = new List <Answer> { new Answer { QuestionId = "Q1", Value = "value" } } }; _pageReviewOutcome = new ClarificationPageReviewOutcome { ApplicationId = _applicationId, SequenceNumber = _sequenceNumber, SectionNumber = _sectionNumber, PageId = _pageId, UserId = _userId, UserName = _userName, Status = ClarificationPageReviewStatus.Pass, ModeratorUserId = _userId, ModeratorUserName = _userName, ModeratorReviewStatus = ApplyTypes.Moderator.ModeratorPageReviewStatus.Fail, ModeratorReviewComment = "Not Good", ClarificationResponse = "Response", ClarificationFile = null }; _applyApiClient.Setup(x => x.GetApplication(_applicationId)).ReturnsAsync(_application); _applyApiClient.Setup(x => x.GetContactForApplication(_applicationId)).ReturnsAsync(_contact); _moderationApiClient.Setup(x => x.GetBlindAssessmentOutcome(_applicationId, _sequenceNumber, _sectionNumber, _pageId)) .ReturnsAsync(_blindAssessmentOutcome); _clarificationApiClient.Setup(x => x.GetClarificationPage(_applicationId, _sequenceNumber, _sectionNumber, _pageId)) .ReturnsAsync(_clarificationPage); _clarificationApiClient.Setup(x => x.GetClarificationPageReviewOutcomesForSection(_applicationId, _sequenceNumber, _sectionNumber, _userId)) .ReturnsAsync(new List <ClarificationPageReviewOutcome> { _pageReviewOutcome }); _clarificationApiClient.Setup(x => x.GetClarificationPageReviewOutcome(_applicationId, _sequenceNumber, _sectionNumber, _pageId, _userId)) .ReturnsAsync(_pageReviewOutcome); }