Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        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);
        }
Esempio n. 6
0
 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
 }