public IncentivePhaseSteps(TestContext testContext) : base(testContext) { _testContext = testContext; _fixture = new Fixture(); var today = new DateTime(2021, 1, 30); _accountModel = _fixture.Create <Account>(); _applicationModel = _fixture.Build <IncentiveApplication>() .With(p => p.Status, IncentiveApplicationStatus.InProgress) .With(p => p.AccountId, _accountModel.Id) .With(p => p.AccountLegalEntityId, _accountModel.AccountLegalEntityId) .Create(); _incentiveApplicationApprenticeshipModel = _fixture.Build <IncentiveApplicationApprenticeship>() .With(p => p.IncentiveApplicationId, _applicationModel.Id) .With(p => p.EarningsCalculated, false) .With(p => p.WithdrawnByCompliance, false) .With(p => p.WithdrawnByEmployer, false) .With(p => p.DateOfBirth, today.AddYears(-20)) .With(p => p.Phase, Phase.NotSet) .With(p => p.EmploymentStartDate, new DateTime(2021, 04, 01)) .With(p => p.HasEligibleEmploymentStartDate, true) .Create(); _apprenticeshipsModels = new List <IncentiveApplicationApprenticeship> { _incentiveApplicationApprenticeshipModel }; }
public void Arrange() { _fixture = new Fixture(); _fixture.Customize(new IncentiveApplicationCustomization()); _sut = _fixture.Create <IncentiveApplication>(); }
public WithdrawalByComplianceSteps(TestContext testContext) : base(testContext) { _testContext = testContext; _fixture = new Fixture(); _connectionString = _testContext.SqlDatabase.DatabaseInfo.ConnectionString; _application = _fixture.Create <IncentiveApplication>(); _apprenticeship = _fixture .Build <IncentiveApplicationApprenticeship>() .With(a => a.IncentiveApplicationId, _application.Id) .With(a => a.WithdrawnByCompliance, false) .Create(); _apprenticeship2 = _fixture .Build <IncentiveApplicationApprenticeship>() .With(a => a.IncentiveApplicationId, _application.Id) .With(a => a.ULN, _apprenticeship.ULN) .With(a => a.WithdrawnByCompliance, false) .Create(); _apprenticeshipIncentive = _fixture .Build <ApprenticeshipIncentive>() .With(i => i.IncentiveApplicationApprenticeshipId, _apprenticeship.Id) .With(i => i.AccountLegalEntityId, _application.AccountLegalEntityId) .With(i => i.AccountId, _application.AccountId) .With(i => i.ULN, _apprenticeship.ULN) .With(i => i.Status, IncentiveStatus.Active) .Create(); _pendingPayment = _fixture .Build <PendingPayment>() .With(p => p.ApprenticeshipIncentiveId, _apprenticeshipIncentive.Id) .With(i => i.AccountId, _apprenticeshipIncentive.AccountId) .With(i => i.AccountLegalEntityId, _apprenticeshipIncentive.AccountLegalEntityId) .With(p => p.PaymentMadeDate, (DateTime?)null) .Create(); _paidPendingPayment = _fixture .Build <PendingPayment>() .With(p => p.ApprenticeshipIncentiveId, _apprenticeshipIncentive.Id) .With(i => i.AccountId, _apprenticeshipIncentive.AccountId) .With(i => i.AccountLegalEntityId, _apprenticeshipIncentive.AccountLegalEntityId) .Create(); _payment = _fixture .Build <Payment>() .With(p => p.ApprenticeshipIncentiveId, _apprenticeshipIncentive.Id) .With(i => i.AccountId, _apprenticeshipIncentive.AccountId) .With(i => i.AccountLegalEntityId, _apprenticeshipIncentive.AccountLegalEntityId) .With(p => p.PendingPaymentId, _paidPendingPayment.Id) .Create(); _pendingPaymentValidationResult = _fixture .Build <PendingPaymentValidationResult>() .With(p => p.PendingPaymentId, _pendingPayment.Id) .With(p => p.Step, "Invalid") .With(p => p.PeriodNumber, 1) .With(p => p.PaymentYear, 2021) .Create(); }
public async Task WhenAnEmployerHasSubmittedAnApplicationAndNotSuppliedBankDetails() { _applicationCutOffDate = DateTime.Today.AddDays(-10); _account = TestContext.TestData.GetOrCreate <Account>(); _account.VrfCaseId = null; _account.VrfCaseStatusLastUpdatedDateTime = null; _account.VrfCaseStatus = null; _account.VrfVendorId = null; _application = TestContext.TestData.GetOrCreate <IncentiveApplication>(); _application.AccountId = _account.Id; _application.AccountLegalEntityId = _account.AccountLegalEntityId; _application.Status = Enums.IncentiveApplicationStatus.Submitted; _application.DateCreated = _applicationCutOffDate.AddDays(-1); _application.DateSubmitted = _applicationCutOffDate.AddDays(-1); _apprenticeship = TestContext.TestData.GetOrCreate <IncentiveApplicationApprenticeship>(); _apprenticeship.IncentiveApplicationId = _application.Id; _apprenticeshipIncentive = TestContext.TestData.GetOrCreate <ApprenticeshipIncentive>(); _apprenticeshipIncentive.AccountId = _account.Id; _apprenticeshipIncentive.AccountLegalEntityId = _account.AccountLegalEntityId; _apprenticeshipIncentive.SubmittedDate = _applicationCutOffDate.AddDays(-1); await SetupApprenticeshipIncentive(); }
public EligibleApprenticeshipRequestedSteps(TestContext testContext) : base(testContext) { _uln = Fixture.Create <long>(); _incentiveApplication = Fixture.Build <IncentiveApplication>().Without(x => x.Apprenticeships).Create(); _incentiveApprenticeship = Fixture.Build <IncentiveApplicationApprenticeship>() .With(x => x.ULN, _uln) .With(x => x.IncentiveApplicationId, _incentiveApplication.Id) .With(x => x.WithdrawnByCompliance, false) .With(x => x.WithdrawnByEmployer, false) .Create(); _incentiveApplication.Apprenticeships.Add(_incentiveApprenticeship); }
public async Task Save(IncentiveApplication aggregate) { if (aggregate.IsNew) { await _incentiveApplicationDataRepository.Add(aggregate.GetModel()); } else { await _incentiveApplicationDataRepository.Update(aggregate.GetModel()); } foreach (dynamic domainEvent in aggregate.FlushEvents()) { await _domainEventDispatcher.Send(domainEvent); } }
public void Then_an_application_with_an_invalid_application_id_is_rejected() { //Arrange var incentiveApplication = _fixture.Create <IncentiveApplication>(); var command = new SubmitIncentiveApplicationCommand(_fixture.Create <Guid>(), incentiveApplication.AccountId, _fixture.Create <DateTime>(), _fixture.Create <string>(), _fixture.Create <string>()); IncentiveApplication nullResponse = null; _mockDomainRepository.Setup(x => x.Find(command.IncentiveApplicationId)) .ReturnsAsync(nullResponse); // Act Func <Task> action = async() => await _sut.Handle(command); // Assert action.Should().Throw <InvalidRequestException>(); _mockDomainRepository.Verify(m => m.Save(incentiveApplication), Times.Never); }
public void Arrange() { _fixture = new Fixture(); _sutModel = _fixture .Build <IncentiveApplicationModel>() .With(i => i.ApprenticeshipModels, new List <ApprenticeshipModel>() { _fixture .Build <ApprenticeshipModel>() .With(a => a.WithdrawnByEmployer, false) .With(a => a.WithdrawnByCompliance, false) .Create() }) .Create(); _sut = new IncentiveApplicationFactory().GetExisting(_sutModel.Id, _sutModel); }
public async Task Then_multiple_apprenticeships_are_processed_for_the_eligibility_check() { //Arrange var command = new EarningsResilienceApplicationsCheckCommand(); var application = _fixture.Build <IncentiveApplicationModel>().With(x => x.Status, IncentiveApplicationStatus.Submitted).Create(); var applications = new List <IncentiveApplication> { IncentiveApplication.Get(application.Id, application) }; var apprenticeships = _fixture.CreateMany <Domain.IncentiveApplications.Apprenticeship>(3).ToList(); applications[0].SetApprenticeships(apprenticeships); _applicationRepository.Setup(x => x.FindIncentiveApplicationsWithoutEarningsCalculations()).ReturnsAsync(applications); //Act await _sut.Handle(command); //Assert _domainEventDispatcher.Verify(x => x.Send <Submitted>(It.Is <Submitted>(x => x.Model == applications[0].GetModel()), It.IsAny <CancellationToken>()), Times.Once); }
public PausePaymentsSteps(TestContext testContext) : base(testContext) { _testContext = testContext; _fixture = new Fixture(); _connectionString = _testContext.SqlDatabase.DatabaseInfo.ConnectionString; _application = _fixture.Create <IncentiveApplication>(); _apprenticeship = _fixture .Build <IncentiveApplicationApprenticeship>() .With(a => a.IncentiveApplicationId, _application.Id) .Create(); _apprenticeshipIncentive = _fixture .Build <ApprenticeshipIncentive>() .With(i => i.IncentiveApplicationApprenticeshipId, _apprenticeship.Id) .With(a => a.ULN, _apprenticeship.ULN) .With(a => a.AccountLegalEntityId, _application.AccountLegalEntityId) .With(i => i.PausePayments, false) .Create(); }
public ApprenticeshipIncentiveCreatedSteps(TestContext testContext) : base(testContext) { _testContext = testContext; _fixture = new Fixture(); var today = new DateTime(2021, 6, 30); _accountModel = _fixture.Create <Account>(); _applicationModel = _fixture.Build <IncentiveApplication>() .With(p => p.Status, IncentiveApplicationStatus.InProgress) .With(p => p.AccountId, _accountModel.Id) .With(p => p.AccountLegalEntityId, _accountModel.AccountLegalEntityId) .Create(); _apprenticeshipsModels = _fixture.Build <IncentiveApplicationApprenticeship>() .With(p => p.IncentiveApplicationId, _applicationModel.Id) .With(p => p.PlannedStartDate, today.AddMonths(-2)) .With(p => p.DateOfBirth, today.AddYears(-20)) .With(p => p.EarningsCalculated, false) .With(p => p.WithdrawnByCompliance, false) .With(p => p.WithdrawnByEmployer, false) .With(p => p.Phase, Phase.Phase1) .CreateMany(NumberOfApprenticeships).ToList(); _apprenticeshipIncentive = _fixture.Build <ApprenticeshipIncentive>() .With(p => p.IncentiveApplicationApprenticeshipId, _apprenticeshipsModels.First().Id) .With(p => p.AccountId, _applicationModel.AccountId) .With(p => p.AccountLegalEntityId, _applicationModel.AccountLegalEntityId) .With(p => p.ApprenticeshipId, _apprenticeshipsModels.First().ApprenticeshipId) .With(p => p.StartDate, today.AddDays(1)) .With(p => p.DateOfBirth, today.AddYears(-20)) .With(p => p.Phase, Phase.Phase2) .Create(); _pendingPayment = _fixture.Build <PendingPayment>() .With(p => p.ApprenticeshipIncentiveId, _apprenticeshipIncentive.Id) .With(p => p.AccountId, _apprenticeshipIncentive.AccountId) .With(p => p.AccountLegalEntityId, _apprenticeshipIncentive.AccountLegalEntityId) .Create(); }
public IncentiveApplication CreateNew(Guid id, long accountId, long accountLegalEntityId) { return(IncentiveApplication.New(id, accountId, accountLegalEntityId)); }
public IncentiveApplication GetExisting(Guid id, IncentiveApplicationModel model) { return(IncentiveApplication.Get(id, model)); }