public EmployerManageApprenticeshipsOrchestrator( IMediator mediator, IHashingService hashingService, IApprenticeshipMapper apprenticeshipMapper, IValidateApprovedApprenticeship approvedApprenticeshipValidator, ICurrentDateTime currentDateTime, ILog logger, ICookieStorageService <UpdateApprenticeshipViewModel> apprenticeshipsViewModelCookieStorageService, IAcademicYearDateProvider academicYearDateProvider, IAcademicYearValidator academicYearValidator, ILinkGenerator linkGenerator) : base(mediator, hashingService, logger) { _apprenticeshipMapper = apprenticeshipMapper; _currentDateTime = currentDateTime; _approvedApprenticeshipValidator = approvedApprenticeshipValidator; _apprenticeshipsViewModelCookieStorageService = apprenticeshipsViewModelCookieStorageService; _academicYearDateProvider = academicYearDateProvider; _academicYearValidator = academicYearValidator; _linkGenerator = linkGenerator; }
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); }