public void Arrange()
        {
            _service = new Mock <ICollectionCalendarService>();
            _sut     = new SetActivePeriodToInProgressCommandHandler(_service.Object);

            _previousCollectionPeriod = new Domain.ValueObjects.CollectionCalendarPeriod(
                new Domain.ValueObjects.CollectionPeriod(1, 2021),
                1, 2021, DateTime.Now, DateTime.Now, false, false);

            _previousCollectionPeriod.SetPeriodEndInProgress(true);

            _activeCollectionPeriod = new Domain.ValueObjects.CollectionCalendarPeriod(
                new Domain.ValueObjects.CollectionPeriod(2, 2021),
                1, 2021, DateTime.Now, DateTime.Now, false, false);

            _activeCollectionPeriod.SetActive(true);

            var calendarPeriods = new List <Domain.ValueObjects.CollectionCalendarPeriod>
            {
                _previousCollectionPeriod,
                _activeCollectionPeriod,
                new Domain.ValueObjects.CollectionCalendarPeriod(
                    new Domain.ValueObjects.CollectionPeriod(3, 2021),
                    1, 2021, DateTime.Now, DateTime.Now, false, false)
            };

            _collectionCalendar = new Domain.ValueObjects.CollectionCalendar(calendarPeriods);
            _service.Setup(x => x.Get()).ReturnsAsync(_collectionCalendar);
        }
        public void Arrange()
        {
            _fixture = new Fixture();

            _mockIncentiveDomainRepository = new Mock <IApprenticeshipIncentiveDomainRepository>();
            _mockLearnerDomainRepository   = new Mock <ILearnerDomainRepository>();

            var collectionPeriods = new List <CollectionCalendarPeriod>()
            {
                new CollectionCalendarPeriod(new Domain.ValueObjects.CollectionPeriod(1, _fixture.Create <short>()), _fixture.Create <byte>(), _fixture.Create <short>(), _fixture.Create <DateTime>(), _fixture.Create <DateTime>(), true, false),
            };
            var collectionCalendar = new Domain.ValueObjects.CollectionCalendar(collectionPeriods);

            _mockCollectionCalendarService = new Mock <ICollectionCalendarService>();
            _mockCollectionCalendarService.Setup(m => m.Get()).ReturnsAsync(collectionCalendar);

            _incentiveModel = _fixture
                              .Build <ApprenticeshipIncentiveModel>()
                              .With(p => p.Apprenticeship,
                                    new Apprenticeship(
                                        _fixture.Create <long>(),
                                        _fixture.Create <string>(),
                                        _fixture.Create <string>(),
                                        DateTime.Today.AddYears(-26),
                                        _fixture.Create <long>(),
                                        ApprenticeshipEmployerType.Levy,
                                        _fixture.Create <string>(),
                                        _fixture.Create <DateTime>()
                                        ))
                              .With(p => p.StartDate, DateTime.Today)
                              .With(p => p.Status, Enums.IncentiveStatus.Active)
                              .With(p => p.HasPossibleChangeOfCircumstances, true)
                              .With(p => p.Phase, new IncentivePhase(Phase.Phase1))
                              .With(p => p.MinimumAgreementVersion, new AgreementVersion(_fixture.Create <int>()))
                              .With(p => p.PendingPaymentModels, new List <PendingPaymentModel>())
                              .Create();
            _incentiveModel.Apprenticeship.SetProvider(_fixture.Create <Provider>());
            _incentiveModel.HasPossibleChangeOfCircumstances = true;
            var incentive = new ApprenticeshipIncentiveFactory().GetExisting(_incentiveModel.Id, _incentiveModel);

            _fixture.Register(() => incentive);

            _sut = new LearnerChangeOfCircumstanceCommandHandler(_mockIncentiveDomainRepository.Object, _mockLearnerDomainRepository.Object, _mockCollectionCalendarService.Object);

            _incentive = _fixture.Create <Domain.ApprenticeshipIncentives.ApprenticeshipIncentive>();
            _learner   = new LearnerFactory().GetExisting(
                _fixture.Build <LearnerModel>()
                .With(x => x.SubmissionData, _fixture.Create <SubmissionData>())
                .With(x => x.ApprenticeshipIncentiveId, _incentive.Id)
                .Create());

            _mockIncentiveDomainRepository.Setup(x => x.Find(incentive.Id)).ReturnsAsync(_incentive);
            _mockLearnerDomainRepository.Setup(m => m.GetOrCreate(incentive)).ReturnsAsync(_learner);
        }
        public async Task <GetActiveCollectionPeriodResponse> Handle(GetActiveCollectionPeriodRequest query, CancellationToken cancellationToken = default)
        {
            var activePeriod = new Domain.ValueObjects.CollectionCalendar(await _queryRepository.GetAll()).GetActivePeriod();

            return(new GetActiveCollectionPeriodResponse(new Abstractions.DTOs.Queries.ApprenticeshipIncentives.CollectionPeriodDto()
            {
                CollectionPeriodNumber = activePeriod.CollectionPeriod.PeriodNumber,
                CollectionYear = activePeriod.CollectionPeriod.AcademicYear,
                IsInProgress = activePeriod.PeriodEndInProgress
            }));
        }
        public void Arrange()
        {
            _service = new Mock <ICollectionCalendarService>();
            _sut     = new UpdateCollectionPeriodCommandHandler(_service.Object);

            var calendarPeriods = new List <Domain.ValueObjects.CollectionPeriod>
            {
                new Domain.ValueObjects.CollectionPeriod(1, 2021),
                new Domain.ValueObjects.CollectionPeriod(2, 2021),
                new Domain.ValueObjects.CollectionPeriod(3, 2021)
            };

            var collectionCalendar = new Domain.ValueObjects.CollectionCalendar(calendarPeriods);

            _service.Setup(x => x.Get()).ReturnsAsync(collectionCalendar);
        }
        public void Arrange()
        {
            var today = new DateTime(2021, 1, 30);

            _collectionPeriods = new List <Domain.ValueObjects.CollectionCalendarPeriod>()
            {
                new Domain.ValueObjects.CollectionCalendarPeriod(
                    new Domain.ValueObjects.CollectionPeriod(1, (short)today.Year),
                    (byte)today.Month,
                    (short)today.Year,
                    today.AddDays(-1),
                    today.AddDays(-1),
                    false,
                    false),
                new Domain.ValueObjects.CollectionCalendarPeriod(
                    new Domain.ValueObjects.CollectionPeriod(2, (short)today.AddMonths(1).Year),
                    (byte)today.AddMonths(1).Month,
                    (short)today.AddMonths(1).Year,
                    today.AddMonths(1).AddDays(-1),
                    today.AddMonths(1).AddDays(-1),
                    false,
                    false)
            };
            _firstCollectionPeriod  = _collectionPeriods.First();
            _secondCollectionPeriod = _collectionPeriods.First(p => p.CollectionPeriod.PeriodNumber != _firstCollectionPeriod.CollectionPeriod.PeriodNumber);
            _completionDate         = DateTime.UtcNow;

            var calendar = new Domain.ValueObjects.CollectionCalendar(_collectionPeriods);

            _mockCollectionCalendarService = new Mock <ICollectionCalendarService>();

            _mockCollectionCalendarService
            .Setup(m => m.Get())
            .ReturnsAsync(calendar);

            _sut = new CompleteCommandHandler(_mockCollectionCalendarService.Object);
        }
示例#6
0
 public async Task Save(Domain.ValueObjects.CollectionCalendar collectionCalendar)
 {
     await _collectionPeriodDataRepository.Save(collectionCalendar.GetAllPeriods());
 }