コード例 #1
0
        public void OfApprovedApprenticeshipThenIsEndDateLockedForUpdateShouldBeSetCorrectly(bool expected, bool unchanged,
                                                                                             bool dataLockSuccess, bool isStartDateInFuture, bool isAfterLastAcademicYearFundingPeriod, AcademicYearValidationResult academicYearValidationResult)
        {
            AcademicYearValidator.Setup(m => m.IsAfterLastAcademicYearFundingPeriod).Returns(isAfterLastAcademicYearFundingPeriod);
            AcademicYearValidator.Setup(m => m.Validate(It.IsAny <DateTime>())).Returns(academicYearValidationResult);

            var apprenticeship = new Apprenticeship
            {
                PaymentStatus         = PaymentStatus.Active,
                HasHadDataLockSuccess = dataLockSuccess,
                StartDate             = _now.AddMonths(isStartDateInFuture ? 1 : -1)
            };

            var commitment = new CommitmentView {
                AgreementStatus = AgreementStatus.BothAgreed
            };

            var viewModel = Sut.MapToApprenticeshipViewModel(apprenticeship, commitment);

            Assert.AreEqual(expected, viewModel.IsEndDateLockedForUpdate);
            if (unchanged)
            {
                Assert.AreEqual(viewModel.IsLockedForUpdate, viewModel.IsEndDateLockedForUpdate);
            }
        }
コード例 #2
0
        public void Arrange()
        {
            _now = new DateTime(DateTime.Now.Year, 11, 01);

            AcademicYearValidator.Setup(m => m.IsAfterLastAcademicYearFundingPeriod).Returns(true);
            AcademicYearValidator.Setup(m => m.Validate(It.IsAny <DateTime>())).Returns(AcademicYearValidationResult.Success);

            MockDateTime.Setup(m => m.Now).Returns(_now);
        }
コード例 #3
0
        public void ShouldHaveLockedStatusIfPastCutOffDate()
        {
            AcademicYearValidator.Setup(m => m.IsAfterLastAcademicYearFundingPeriod).Returns(true);
            AcademicYearValidator.Setup(m => m.Validate(It.IsAny <DateTime>())).Returns(AcademicYearValidationResult.NotWithinFundingPeriod);

            var apprenticeship = new Apprenticeship {
                StartDate = _now.AddMonths(-5), HasHadDataLockSuccess = false, PaymentStatus = PaymentStatus.Active
            };
            var viewModel = Sut.MapToApprenticeshipViewModel(apprenticeship, new CommitmentView());

            viewModel.IsLockedForUpdate.Should().BeTrue();
            viewModel.IsEndDateLockedForUpdate.Should().BeTrue();
            viewModel.HasStarted.Should().BeTrue();
        }
        public void Setup()
        {
            MockAcademicYearValidator = new Mock <IAcademicYearValidator>();
            MockMediator = new Mock <IMediator>();

            MockDateTime = new Mock <ICurrentDateTime>();
            MockDateTime.Setup(x => x.Now).Returns(DateTime.UtcNow);

            MockLinkGenerator = new Mock <ILinkGenerator>();
            MockLinkGenerator
            .Setup(x => x.FinanceLink($"accounts/{HashedAccountId}/finance/{MockDateTime.Object.Now.Year}/{MockDateTime.Object.Now.Month}"))
            .Returns("testLink");

            AcademicYearDateProvider = new Mock <IAcademicYearDateProvider>();
            AcademicYearDateProvider.Setup(x => x.CurrentAcademicYearStartDate).Returns(new DateTime(2017, 8, 1));
            AcademicYearDateProvider.Setup(x => x.CurrentAcademicYearEndDate).Returns(new DateTime(2018, 7, 31));
            AcademicYearDateProvider.Setup(x => x.LastAcademicYearFundingPeriod).Returns(new DateTime(2017, 10, 19, 18, 0, 0));

            MockChangeOfProviderToggle = new Mock <IFeatureToggle>();
            MockChangeOfProviderToggle.Setup(c => c.FeatureEnabled).Returns(true);

            MockFeatureToggleService = new Mock <IFeatureToggleService>();
            MockFeatureToggleService.Setup(f => f.Get <ChangeOfProvider>()).Returns(MockChangeOfProviderToggle.Object);

            ApprenticeshipMapper = new ApprenticeshipMapper(Mock.Of <IHashingService>(), MockDateTime.Object,
                                                            MockMediator.Object, Mock.Of <ILog>(), Mock.Of <IAcademicYearValidator>(),
                                                            Mock.Of <IAcademicYearDateProvider>(), MockLinkGenerator.Object, MockFeatureToggleService.Object);

            MockHashingService = new Mock <IHashingService>();
            MockHashingService.Setup(x => x.DecodeValue("ABC123")).Returns(123L);
            MockHashingService.Setup(x => x.DecodeValue("ABC321")).Returns(321L);
            MockHashingService.Setup(x => x.DecodeValue("ABC456")).Returns(456L);

            MockMediator.Setup(x => x.SendAsync(It.IsAny <GetUserAccountRoleQuery>()))
            .ReturnsAsync(new GetUserAccountRoleResponse
            {
                User = new TeamMember()
                {
                    AccountId = AccountId, HashedAccountId = HashedAccountId, Email = Email, Name = Name
                }
            });

            var academicYearProvider = new AcademicYearDateProvider(MockDateTime.Object);

            Validator = new ApprovedApprenticeshipViewModelValidator(
                new WebApprenticeshipValidationText(academicYearProvider),
                academicYearProvider,
                new AcademicYearValidator(MockDateTime.Object, academicYearProvider),
                MockDateTime.Object,
                Mock.Of <IMediator>());

            AcademicYearValidator = new AcademicYearValidator(MockDateTime.Object, academicYearProvider);

            Orchestrator = new EmployerManageApprenticeshipsOrchestrator(
                MockMediator.Object,
                MockHashingService.Object,
                ApprenticeshipMapper,
                Validator,
                MockDateTime.Object,
                new Mock <ILog>().Object,
                new Mock <ICookieStorageService <UpdateApprenticeshipViewModel> >().Object,
                AcademicYearDateProvider.Object,
                AcademicYearValidator,
                MockLinkGenerator.Object);
        }