public void Setup() { _validCommand = new UpdateApprenticeshipStatusCommand { EmployerAccountId = 12L, ApprenticeshipId = 4L, UserId = "externalUserId", ChangeType = ChangeStatusType.Stop, DateOfChange = DateTime.UtcNow.Date }; _testApprenticeship = new Apprenticeship { StartDate = DateTime.UtcNow.AddMonths(-2).Date }; _mockCommitmentApi = new Mock <IEmployerCommitmentApi>(); _mockCommitmentApi.Setup(x => x.GetEmployerCommitment(It.IsAny <long>(), It.IsAny <long>())).ReturnsAsync(new CommitmentView { ProviderId = 456L }); _mockMediator = new Mock <IMediator>(); var apprenticeshipGetResponse = new GetApprenticeshipQueryResponse { Apprenticeship = _testApprenticeship }; _mockMediator.Setup(x => x.SendAsync(It.IsAny <GetApprenticeshipQueryRequest>())).ReturnsAsync(apprenticeshipGetResponse); _mockCurrentDateTime = new Mock <ICurrentDateTime>(); _mockCurrentDateTime.SetupGet(x => x.Now).Returns(DateTime.UtcNow); _handler = new UpdateApprenticeshipStatusCommandHandler(_mockCommitmentApi.Object, _mockMediator.Object, _mockCurrentDateTime.Object, _validator); }
public async Task ShouldRetrieveUln() { //Arrange var accountId = "ABC123"; var apprenticeId = "ABC321"; var userId = "ABC456"; var uln = "IAMAULN"; var orchestrator = new DataLockOrchestrator(MockMediator.Object, MockHashingService.Object, MockLogger.Object, MockApprenticeshipMapper.Object, MockLinkGenerator.Object); var apprenticeshipResponse = new GetApprenticeshipQueryResponse { Apprenticeship = new Apprenticeship { ULN = uln } }; var summaryResponse = new GetDataLockSummaryQueryResponse { DataLockSummary = new DataLockSummary { DataLockWithOnlyPriceMismatch = new List <DataLockStatus>(), DataLockWithCourseMismatch = new List <DataLockStatus>() } }; var priceHistoryResponse = new GetPriceHistoryQueryResponse { History = new List <PriceHistory>() }; IEnumerable <CourseChange> courseChanges = new List <CourseChange>(); IList <PriceChange> pricesChanges = new List <PriceChange>(); MockMediator.Setup(x => x.SendAsync(It.IsAny <GetApprenticeshipQueryRequest>())).Returns(Task.FromResult(apprenticeshipResponse)); MockMediator.Setup(x => x.SendAsync(It.IsAny <GetDataLockSummaryQueryRequest>())).Returns(Task.FromResult(summaryResponse)); MockMediator.Setup(x => x.SendAsync(It.IsAny <GetPriceHistoryQueryRequest>())).Returns(Task.FromResult(priceHistoryResponse)); MockApprenticeshipMapper.Setup(x => x.MapCourseChanges(It.IsAny <IEnumerable <DataLockStatus> >(), It.IsAny <Apprenticeship>(), It.IsAny <IList <PriceHistory> >())).Returns(Task.FromResult(courseChanges)); MockApprenticeshipMapper.Setup(x => x.MapPriceChanges(It.IsAny <IEnumerable <DataLockStatus> >(), It.IsAny <List <PriceHistory> >())).Returns(pricesChanges); //Act var result = await orchestrator.GetDataLockChangeStatus(accountId, apprenticeId, userId); //Assert MockMediator.Verify(x => x.SendAsync(It.IsAny <GetApprenticeshipQueryRequest>())); Assert.AreEqual(uln, result.Data.ULN); }
public async Task ShouldReturnJustLastNameIfFirstNameNotSpecified() { GetApprenticeshipQueryRequest arg = null; var dummyResponse = new GetApprenticeshipQueryResponse { Apprenticeship = new DAS.Commitments.Api.Types.Apprenticeship.Apprenticeship { LastName = "Tester", DateOfBirth = new DateTime(1999, 1, 2) } }; _mockMediator.Setup(x => x.Send(It.IsAny <GetApprenticeshipQueryRequest>(), new CancellationToken())) .ReturnsAsync(dummyResponse).Callback <GetApprenticeshipQueryRequest>(x => arg = x); var viewModel = await _orchestrator.GetDeleteConfirmationModel(123L, "ABBA99", "ABBA66"); viewModel.ApprenticeshipName.Should().Be("Tester"); }
public async Task ShouldReturnDateOfBirthWhenPopulated() { GetApprenticeshipQueryRequest arg = null; var dummyResponse = new GetApprenticeshipQueryResponse { Apprenticeship = new DAS.Commitments.Api.Types.Apprenticeship.Apprenticeship { FirstName = "Bob", LastName = "Tester", DateOfBirth = new DateTime(1999, 1, 2) } }; _mockMediator.Setup(x => x.Send(It.IsAny <GetApprenticeshipQueryRequest>(), new CancellationToken())) .ReturnsAsync(dummyResponse) .Callback <GetApprenticeshipQueryRequest, CancellationToken>((command, token) => arg = command); var viewModel = await _orchestrator.GetDeleteConfirmationModel(123L, "ABBA99", "ABBA66"); viewModel.DateOfBirth.Should().Be("2 Jan 1999"); }
public async Task ShouldCallMediatorToGetApprenticeship() { GetApprenticeshipQueryRequest arg = null; var dummyResponse = new GetApprenticeshipQueryResponse { Apprenticeship = new DAS.Commitments.Api.Types.Apprenticeship.Apprenticeship { FirstName = "Bob", LastName = "Tester", DateOfBirth = new DateTime(1999, 1, 2) } }; _mockMediator.Setup(x => x.Send(It.IsAny <GetApprenticeshipQueryRequest>(), new CancellationToken())) .ReturnsAsync(dummyResponse) .Callback <GetApprenticeshipQueryRequest, CancellationToken>((command, token) => arg = command); await _orchestrator.GetDeleteConfirmationModel(123L, "ABBA99", "ABBA66"); _mockMediator.Verify(x => x.Send(It.IsAny <GetApprenticeshipQueryRequest>(), new CancellationToken()), Times.Once); arg.ProviderId.Should().Be(123); arg.ApprenticeshipId.Should().Be(321); }
private bool CanChangeDateStepBeSkipped(ChangeStatusType changeType, GetApprenticeshipQueryResponse data) { return(data.Apprenticeship.IsWaitingToStart(_currentDateTime) || // Not started (data.Apprenticeship.PaymentStatus == PaymentStatus.Paused && changeType == ChangeStatusType.Resume) || // Resuming (data.Apprenticeship.PaymentStatus == PaymentStatus.Active && changeType == ChangeStatusType.Pause)); // Pausing }
private bool CanSkipToAskRedundancyQuestion(ChangeStatusType changeType, GetApprenticeshipQueryResponse data) { return(changeType == ChangeStatusType.Stop && data.Apprenticeship.IsWaitingToStart(_currentDateTime)); }
private bool CanSkipToConfirmationPage(ChangeStatusType changeType, GetApprenticeshipQueryResponse data) { return(data.Apprenticeship.PaymentStatus == PaymentStatus.Paused && changeType == ChangeStatusType.Resume || // Resuming data.Apprenticeship.PaymentStatus == PaymentStatus.Active && changeType == ChangeStatusType.Pause); // Pausing }