private void SetupTestData()
        {
            Db = new ProviderCommitmentsDbContext(new DbContextOptionsBuilder <ProviderCommitmentsDbContext>()
                                                  .UseInMemoryDatabase(Guid.NewGuid().ToString())
                                                  .ConfigureWarnings(warnings => warnings.Throw(RelationalEventId.QueryClientEvaluationWarning))
                                                  .EnableSensitiveDataLogging()
                                                  .Options);

            ApprenticeshipId = Fixture.Create <long>();
            ApprenticeshipChangeOfPartyRequestResult = Fixture.Create <ChangeOfPartyRequest>();
            Cohort = new Cohort
            {
                Id                 = 1000,
                ProviderId         = Fixture.Create <long>(),
                AccountLegalEntity = new AccountLegalEntity()
            };
            Apprenticeship = new Mock <Apprenticeship>();
            Apprenticeship.Setup(x => x.Id).Returns(ApprenticeshipId);
            Apprenticeship.Setup(x => x.CommitmentId).Returns(1000);
            Apprenticeship.Setup(x => x.Cohort).Returns(Cohort);
            Apprenticeship.Setup(x => x.CreateChangeOfPartyRequest(It.IsAny <ChangeOfPartyRequestType>(),
                                                                   It.IsAny <Party>(), It.IsAny <long>(), It.IsAny <int?>(), It.IsAny <DateTime?>(),
                                                                   It.IsAny <DateTime?>(), It.IsAny <UserInfo>(), It.IsAny <DateTime>()))
            .Returns(ApprenticeshipChangeOfPartyRequestResult);

            Db.Apprenticeships.Add(Apprenticeship.Object);
            Db.Cohorts.Add(Cohort);
            Db.SaveChanges();
        }
        public AddCohortCommandHandlerTestFixture()
        {
            Db = new ProviderCommitmentsDbContext(new DbContextOptionsBuilder <ProviderCommitmentsDbContext>()
                                                  .UseInMemoryDatabase(Guid.NewGuid().ToString())
                                                  .ConfigureWarnings(warnings => warnings.Throw(RelationalEventId.QueryClientEvaluationWarning))
                                                  .Options);

            EncodingServiceMock = new Mock <IEncodingService>();

            DraftApprenticeshipDetailsMapperMock =
                new Mock <IOldMapper <AddCohortCommand, DraftApprenticeshipDetails> >();
            DraftApprenticeshipDetailsMapperMock.Setup(x => x.Map(It.IsAny <AddCohortCommand>()))
            .ReturnsAsync(() => new DraftApprenticeshipDetails());

            var commitment = new Cohort();

            commitment.Apprenticeships.Add(new DraftApprenticeship());

            CohortDomainServiceMock = new Mock <ICohortDomainService>();
            CohortDomainServiceMock.Setup(x => x.CreateCohort(It.IsAny <long>(), It.IsAny <long>(), It.IsAny <long>(), It.IsAny <long?>(),
                                                              It.IsAny <DraftApprenticeshipDetails>(), It.IsAny <UserInfo>(), It.IsAny <CancellationToken>()))
            .ReturnsAsync(commitment);

            Logger   = new TestLogger();
            UserInfo = new UserInfo();
        }
            public ApprenticeshipWithChangeOfPartyCreatedEventHandlerTestsFixture()
            {
                var autoFixture = new Fixture();

                _event = autoFixture.Create <ApprenticeshipWithChangeOfPartyCreatedEvent>();

                _apprenticeship = new Apprenticeship();
                _apprenticeship.SetValue(x => x.Id, _event.ApprenticeshipId);
                _apprenticeship.SetValue(x => x.Cohort, new Cohort
                {
                    AccountLegalEntity = new AccountLegalEntity()
                });

                _changeOfPartyRequest = new Mock <ChangeOfPartyRequest>();
                _changeOfPartyRequest.Setup(x => x.Id).Returns(_event.ChangeOfPartyRequestId);
                _changeOfPartyRequest.Setup(x => x.SetNewApprenticeship(_apprenticeship, _event.UserInfo, Party.Employer));

                _db = new ProviderCommitmentsDbContext(new DbContextOptionsBuilder <ProviderCommitmentsDbContext>()
                                                       .UseInMemoryDatabase(Guid.NewGuid().ToString())
                                                       .ConfigureWarnings(w => w.Throw(RelationalEventId.QueryClientEvaluationWarning))
                                                       .Options);

                _db.Apprenticeships.Add(_apprenticeship);
                _db.ChangeOfPartyRequests.Add(_changeOfPartyRequest.Object);
                _db.SaveChanges();

                _messageHandlerContext = new Mock <IMessageHandlerContext>();

                _handler = new ApprenticeshipWithChangeOfPartyCreatedEventHandler(
                    new Lazy <ProviderCommitmentsDbContext>(() => _db), Mock.Of <ILogger <ApprenticeshipWithChangeOfPartyCreatedEventHandler> >());
            }
Exemple #4
0
        public DeleteCohortHandlerTestsFixture()
        {
            _autoFixture = new Fixture();

            CohortId = _autoFixture.Create <long>();
            UserInfo = _autoFixture.Create <UserInfo>();
            Logger   = new Mock <ILogger <DeleteCohortHandler> >();
            AuthenticationService = new Mock <IAuthenticationService>();

            Command = new DeleteCohortCommand {
                CohortId = CohortId, UserInfo = UserInfo
            };
            Db = new ProviderCommitmentsDbContext(new DbContextOptionsBuilder <ProviderCommitmentsDbContext>()
                                                  .UseInMemoryDatabase(Guid.NewGuid().ToString()).ConfigureWarnings(warnings =>
                                                                                                                    warnings.Throw(RelationalEventId.QueryClientEvaluationWarning)).Options);

            Sut = new DeleteCohortHandler(new Lazy <ProviderCommitmentsDbContext>(() => Db), Logger.Object, AuthenticationService.Object);
            UnitOfWorkContext = new UnitOfWorkContext();

            DraftApprenticeship = new DraftApprenticeship
            {
                Id            = _autoFixture.Create <long>(),
                FirstName     = "Test",
                LastName      = "Test",
                ReservationId = _autoFixture.Create <Guid>()
            };
        }
Exemple #5
0
        public TransferRequestCreatedEventHandlerTestsFixture()
        {
            var fixture = new Fixture();

            UnitOfWorkContext           = new UnitOfWorkContext();
            MessageHandlerContext       = new Mock <IMessageHandlerContext>();
            LegacyTopicMessagePublisher = new Mock <ILegacyTopicMessagePublisher>();

            Db = new ProviderCommitmentsDbContext(new DbContextOptionsBuilder <ProviderCommitmentsDbContext>()
                                                  .UseInMemoryDatabase(Guid.NewGuid().ToString())
                                                  .ConfigureWarnings(w => w.Throw(RelationalEventId.QueryClientEvaluationWarning))
                                                  .Options);

            Sut = new TransferRequestCreatedEventHandler(LegacyTopicMessagePublisher.Object, Mock.Of <ILogger <TransferRequestCreatedEvent> >(), new Lazy <ProviderCommitmentsDbContext>(() => Db));

            Cohort = new Cohort(
                fixture.Create <long>(),
                fixture.Create <long>(),
                fixture.Create <long>(),
                null,
                Party.Employer,
                "",
                new UserInfo())
            {
                EmployerAccountId = 100, TransferSenderId = 99
            };

            TransferRequest = new TransferRequest
            {
                Status = TransferApprovalStatus.Pending, Cost = 1000, Cohort = Cohort
            };
        }
 public GetProviderPaymentsPriorityQueryHandlerTestFixtures()
 {
     Db      = new ProviderCommitmentsDbContext(new DbContextOptionsBuilder <ProviderCommitmentsDbContext>().UseInMemoryDatabase(Guid.NewGuid().ToString()).Options);
     Logger  = new Mock <ILogger <GetProviderPaymentsPriorityQueryHandler> >();
     Handler = new GetProviderPaymentsPriorityQueryHandler(
         new Lazy <ProviderCommitmentsDbContext>(() => Db), Logger.Object);
 }
            public CohortWithChangeOfPartyCreatedEventHandlerTestsFixture()
            {
                var autoFixture = new Fixture();

                _event = autoFixture.Create <CohortWithChangeOfPartyCreatedEvent>();

                _cohort = new Cohort();
                _cohort.SetValue(x => x.Id, _event.CohortId);
                _cohort.SetValue(x => x.Approvals, Party.None);
                _cohort.SetValue(x => x.WithParty, Party.Employer);

                _changeOfPartyRequest = new Mock <ChangeOfPartyRequest>();
                _changeOfPartyRequest.Setup(x => x.Id).Returns(_event.ChangeOfPartyRequestId);
                _changeOfPartyRequest.Setup(x => x.SetCohort(_cohort, _event.UserInfo));

                _db = new ProviderCommitmentsDbContext(new DbContextOptionsBuilder <ProviderCommitmentsDbContext>()
                                                       .UseInMemoryDatabase(Guid.NewGuid().ToString())
                                                       .ConfigureWarnings(w => w.Throw(RelationalEventId.QueryClientEvaluationWarning))
                                                       .Options);

                _db.Cohorts.Add(_cohort);
                _db.ChangeOfPartyRequests.Add(_changeOfPartyRequest.Object);
                _db.SaveChanges();

                _messageHandlerContext = new Mock <IMessageHandlerContext>();

                _handler = new CohortWithChangeOfPartyCreatedEventHandler(
                    new Lazy <ProviderCommitmentsDbContext>(() => _db), Mock.Of <ILogger <CohortWithChangeOfPartyCreatedEventHandler> >());
            }
Exemple #8
0
        public ProviderRejectedChangeOfProviderRequestEventHandlerTestFixture()
        {
            _autoFixture = new Fixture();

            _mockMessageHandlerContext = new Mock <IMessageHandlerContext>();
            _mockPipelineContext       = _mockMessageHandlerContext.As <IPipelineContext>();

            _event = _autoFixture.Create <ProviderRejectedChangeOfPartyRequestEvent>();

            _mockEncodingService = new Mock <IEncodingService>();
            _mockEncodingService.Setup(enc => enc.Encode(_event.EmployerAccountId, EncodingType.AccountId))
            .Returns(AccountHashedId);
            _mockEncodingService.Setup(enc => enc.Encode(ApprenticeshipId, EncodingType.ApprenticeshipId))
            .Returns(ApprenticeshipHashedId);

            _cohort = new Cohort();
            _cohort.SetValue(x => x.ChangeOfPartyRequestId, _event.ChangeOfPartyRequestId);

            _changeOfPartyRequest = new Mock <ChangeOfPartyRequest>();
            _changeOfPartyRequest.Setup(x => x.Id).Returns(_event.ChangeOfPartyRequestId);
            _changeOfPartyRequest.Setup(x => x.ApprenticeshipId).Returns(ApprenticeshipId);

            _db = new ProviderCommitmentsDbContext(new DbContextOptionsBuilder <ProviderCommitmentsDbContext>()
                                                   .UseInMemoryDatabase(Guid.NewGuid().ToString())
                                                   .Options);

            _db.Cohorts.Add(_cohort);
            _db.ChangeOfPartyRequests.Add(_changeOfPartyRequest.Object);
            _db.SaveChanges();

            _handler = new ProviderRejectedChangeOfPartyRequestEventHandler(_mockEncodingService.Object, new Lazy <ProviderCommitmentsDbContext>(() => _db));
        }
        public TransferRequestRejectedEventHandlerTestsFixture()
        {
            _fixture          = new Fixture();
            UnitOfWorkContext = new UnitOfWorkContext();
            Db = new ProviderCommitmentsDbContext(new DbContextOptionsBuilder <ProviderCommitmentsDbContext>()
                                                  .UseInMemoryDatabase(Guid.NewGuid().ToString())
                                                  .ConfigureWarnings(w => w.Throw(RelationalEventId.QueryClientEvaluationWarning))
                                                  .Options);

            TransferRequestRejectedEvent = _fixture.Create <TransferRequestRejectedEvent>();

            Logger = new FakeLogger <TransferRequestRejectedEvent>();
            LegacyTopicMessagePublisher = new Mock <ILegacyTopicMessagePublisher>();
            Handler = new TransferRequestRejectedEventHandler(new Lazy <ProviderCommitmentsDbContext>(() => Db), LegacyTopicMessagePublisher.Object, Logger);

            Cohort = new Cohort(
                _fixture.Create <long>(),
                _fixture.Create <long>(),
                _fixture.Create <long>(),
                null,
                Party.Employer,
                "",
                new UserInfo())
            {
                Id = TransferRequestRejectedEvent.CohortId, EmployerAccountId = 100, TransferSenderId = 99
            };

            ExistingApprenticeshipDetails = new DraftApprenticeship(_fixture.Build <DraftApprenticeshipDetails>().Create(), Party.Provider);
            Cohort.Apprenticeships.Add(ExistingApprenticeshipDetails);
            Cohort.WithParty = Party.TransferSender;
            Cohort.TransferApprovalStatus = TransferApprovalStatus.Pending;
        }
Exemple #10
0
        public CohortAssignedToEmployerEventHandlerForLegacyTaskCounterTestsFixture()
        {
            _fixture          = new Fixture();
            UnitOfWorkContext = new UnitOfWorkContext();

            Db = new ProviderCommitmentsDbContext(new DbContextOptionsBuilder <ProviderCommitmentsDbContext>()
                                                  .UseInMemoryDatabase(Guid.NewGuid().ToString())
                                                  .ConfigureWarnings(w => w.Throw(RelationalEventId.QueryClientEvaluationWarning))
                                                  .Options);
            CohortId = _fixture.Create <long>();
            Now      = DateTime.UtcNow;

            LegacyTopicMessagePublisher = new Mock <ILegacyTopicMessagePublisher>();
            Logger  = new FakeLogger <CohortAssignedToEmployerEventHandlerForLegacyTaskCounter>();
            Handler = new CohortAssignedToEmployerEventHandlerForLegacyTaskCounter(new Lazy <ProviderCommitmentsDbContext>(() => Db), LegacyTopicMessagePublisher.Object, Logger);

            Cohort = new Cohort(
                _fixture.Create <long>(),
                _fixture.Create <long>(),
                _fixture.Create <long>(),
                null,
                Party.Employer,
                "",
                new UserInfo())
            {
                Id = CohortId, EmployerAccountId = 100, TransferSenderId = 99
            };
            Cohort.WithParty = Party.Employer;
        }
        public RejectTransferRequestCommandHandlerTestsFixture()
        {
            _transferRequestId = 235;
            _userInfo          = new UserInfo
            {
                UserDisplayName = "TestName",
                UserEmail       = "*****@*****.**",
                UserId          = "23432"
            };
            _transferRequest = new TransferRequest {
                Id = _transferRequestId
            };
            _cohort = new Cohort
            {
                TransferRequests     = { _transferRequest },
                EmployerAccountId    = 8787,
                AccountLegalEntityId = 234,
                //AccountLegalEntityPublicHashedId = "sfs1",
                ProviderId       = 234234,
                TransferSenderId = 8999
            };
            _db = new ProviderCommitmentsDbContext(new DbContextOptionsBuilder <ProviderCommitmentsDbContext>()
                                                   .UseInMemoryDatabase(Guid.NewGuid().ToString())
                                                   .ConfigureWarnings(w => w.Throw(RelationalEventId.QueryClientEvaluationWarning))
                                                   .Options);

            _logger = new FakeLogger <RejectTransferRequestCommandHandler>();
            _mockMessageHandlerContext = new Mock <IMessageHandlerContext>();
            _rejectedOnDate            = new DateTime(2020, 01, 30, 14, 22, 00);
            _command           = new RejectTransferRequestCommand(_transferRequestId, _rejectedOnDate, _userInfo);
            _unitOfWorkContext = new UnitOfWorkContext();
            _sut = new RejectTransferRequestCommandHandler(new Lazy <ProviderCommitmentsDbContext>(() => _db), _logger);
        }
Exemple #12
0
        public void Init()
        {
            var databaseGuid = Guid.NewGuid().ToString();

            _dbContext = new ProviderCommitmentsDbContext(new DbContextOptionsBuilder <ProviderCommitmentsDbContext>()
                                                          .UseInMemoryDatabase(databaseGuid)
                                                          .ConfigureWarnings(warnings => warnings.Throw(RelationalEventId.QueryClientEvaluationWarning))
                                                          .Options);

            _confirmationDbContext = new ProviderCommitmentsDbContext(new DbContextOptionsBuilder <ProviderCommitmentsDbContext>()
                                                                      .UseInMemoryDatabase(databaseGuid)
                                                                      .ConfigureWarnings(warnings => warnings.Throw(RelationalEventId.QueryClientEvaluationWarning))
                                                                      .Options);

            _currentDateTime       = new Mock <ICurrentDateTime>();
            _authenticationService = new Mock <IAuthenticationService>();
            _nserviceBusContext    = new Mock <IMessageSession>();
            _encodingService       = new Mock <IEncodingService>();
            _logger            = new Mock <ILogger <StopApprenticeshipCommandHandler> >();
            _unitOfWorkContext = new UnitOfWorkContext();

            _handler = new StopApprenticeshipCommandHandler(new Lazy <ProviderCommitmentsDbContext>(() => _dbContext),
                                                            _currentDateTime.Object,
                                                            _authenticationService.Object,
                                                            _nserviceBusContext.Object,
                                                            _encodingService.Object,
                                                            _logger.Object);
        }
        public AddDraftApprenticeshipCommandHandlerTestsFixture()
        {
            Fixture = new Fixture();
            DraftApprenticeshipDetails = Fixture.Create <DraftApprenticeshipDetails>();
            DraftApprenticeship        = new DraftApprenticeship().Set(a => a.Id, 123);
            CancellationToken          = new CancellationToken();

            Db = new ProviderCommitmentsDbContext(new DbContextOptionsBuilder <ProviderCommitmentsDbContext>()
                                                  .UseInMemoryDatabase(Guid.NewGuid().ToString())
                                                  .ConfigureWarnings(w => w.Throw(RelationalEventId.QueryClientEvaluationWarning))
                                                  .Options);

            CohortDomainService = new Mock <ICohortDomainService>();
            DraftApprenticeshipDetailsMapper = new Mock <IOldMapper <AddDraftApprenticeshipCommand, DraftApprenticeshipDetails> >();
            UserInfo = Fixture.Create <UserInfo>();
            Command  = Fixture.Build <AddDraftApprenticeshipCommand>().With(o => o.UserInfo, UserInfo).Create();

            Handler = new AddDraftApprenticeshipCommandHandler(
                new Lazy <ProviderCommitmentsDbContext>(() => Db),
                Mock.Of <ILogger <AddDraftApprenticeshipCommandHandler> >(),
                DraftApprenticeshipDetailsMapper.Object,
                CohortDomainService.Object);

            CohortDomainService.Setup(s => s.AddDraftApprenticeship(Command.ProviderId, Command.CohortId,
                                                                    DraftApprenticeshipDetails, Command.UserInfo, CancellationToken)).ReturnsAsync(DraftApprenticeship);
            DraftApprenticeshipDetailsMapper.Setup(m => m.Map(Command)).ReturnsAsync(DraftApprenticeshipDetails);
        }
        public AddTransferRequestCommandHandlerTestFixture()
        {
            Fixture           = new Fixture();
            CancellationToken = new CancellationToken();

            FundingCapCourseSummary1 = new FundingCapCourseSummary
            {
                ActualCap = 1000, ApprenticeshipCount = 1, CappedCost = 1200, CourseTitle = "C1Title"
            };
            FundingCapCourseSummary2 = new FundingCapCourseSummary
            {
                ActualCap = 1100, ApprenticeshipCount = 2, CappedCost = 1300, CourseTitle = "C2Title"
            };
            FundingService = new Mock <IFundingCapService>();
            FundingService.Setup(x => x.FundingCourseSummary(It.IsAny <IEnumerable <ApprenticeshipBase> >()))
            .ReturnsAsync(new List <FundingCapCourseSummary> {
                FundingCapCourseSummary1, FundingCapCourseSummary2
            });

            Db = new ProviderCommitmentsDbContext(new DbContextOptionsBuilder <ProviderCommitmentsDbContext>()
                                                  .UseInMemoryDatabase(Guid.NewGuid().ToString())
                                                  .ConfigureWarnings(w => w.Throw(RelationalEventId.QueryClientEvaluationWarning))
                                                  .Options);

            Handler = new AddTransferRequestCommandHandler(
                new Lazy <ProviderCommitmentsDbContext>(() => Db),
                FundingService.Object,
                Mock.Of <ILogger <AddTransferRequestCommandHandler> >());

            UnitOfWorkContext   = new UnitOfWorkContext();
            LastApprovedByParty = Party.Employer;
        }
Exemple #15
0
 public GetApprovedProvidersQueryHandlerFixture()
 {
     Cohorts  = new List <Cohort>();
     Provider = new List <Provider>();
     Query    = new GetApprovedProvidersQuery(AccountId);
     Db       = new ProviderCommitmentsDbContext(new DbContextOptionsBuilder <ProviderCommitmentsDbContext>().UseInMemoryDatabase(Guid.NewGuid().ToString()).Options);
     Handler  = new GetApprovedProvidersQueryHandler(new Lazy <ProviderCommitmentsDbContext>(() => Db));
 }
Exemple #16
0
 public static Task ProcessFullyApprovedCohort(this ProviderCommitmentsDbContext db, long cohortId, long accountId, ApprenticeshipEmployerType apprenticeshipEmployerType)
 {
     return(db.ExecuteSqlCommandAsync(
                "EXEC ProcessFullyApprovedCohort @cohortId, @accountId, @apprenticeshipEmployerType",
                new SqlParameter("cohortId", cohortId),
                new SqlParameter("accountId", accountId),
                new SqlParameter("apprenticeshipEmployerType", apprenticeshipEmployerType)));
 }
Exemple #17
0
 public GetDraftApprenticeHandlerTestFixtures()
 {
     AuthenticationServiceMock = new Mock <IAuthenticationService>();
     Db      = new ProviderCommitmentsDbContext(new DbContextOptionsBuilder <ProviderCommitmentsDbContext>().UseInMemoryDatabase(Guid.NewGuid().ToString()).Options);
     Handler = new GetDraftApprenticeshipQueryHandler(
         new Lazy <ProviderCommitmentsDbContext>(() => Db),
         AuthenticationServiceMock.Object);
 }
Exemple #18
0
            public ChangeOfPartyRequestCreatedEventHandlerTestsFixture()
            {
                var autoFixture = new Fixture();

                Event = autoFixture.Create <ChangeOfPartyRequestCreatedEvent>();

                Db = new ProviderCommitmentsDbContext(new DbContextOptionsBuilder <ProviderCommitmentsDbContext>()
                                                      .UseInMemoryDatabase(Guid.NewGuid().ToString())
                                                      .ConfigureWarnings(w => w.Throw(RelationalEventId.QueryClientEvaluationWarning))
                                                      .Options);

                Cohort = new Cohort();
                Cohort.SetValue(x => x.Id, autoFixture.Create <long>());

                var apprenticeshipId = autoFixture.Create <long>();

                ChangeOfPartyRequest = new Mock <ChangeOfPartyRequest>();
                ChangeOfPartyRequest.Setup(x => x.Id).Returns(Event.ChangeOfPartyRequestId);
                ChangeOfPartyRequest.Setup(x => x.ChangeOfPartyType).Returns(ChangeOfPartyRequestType.ChangeEmployer);
                ChangeOfPartyRequest.Setup(x => x.ApprenticeshipId).Returns(apprenticeshipId);
                ChangeOfPartyRequest.Setup(x => x.AccountLegalEntityId).Returns(autoFixture.Create <long>());
                ChangeOfPartyRequest.Setup(x => x.ProviderId).Returns(autoFixture.Create <long>());
                ChangeOfPartyRequest.Setup(x => x.CreateCohort(It.IsAny <Apprenticeship>(), It.IsAny <Guid?>(), It.IsAny <UserInfo>())).Returns(Cohort);

                Apprenticeship = new Apprenticeship
                {
                    Id     = apprenticeshipId,
                    Cohort = new Cohort
                    {
                        AccountLegalEntity = new AccountLegalEntity()
                    },
                    ChangeOfPartyRequests = new List <ChangeOfPartyRequest> {
                        ChangeOfPartyRequest.Object
                    },
                    ReservationId = autoFixture.Create <Guid>()
                };
                ChangeOfPartyRequest.Setup(x => x.Apprenticeship).Returns(Apprenticeship);

                Db.ChangeOfPartyRequests.Add(ChangeOfPartyRequest.Object);
                Db.Apprenticeships.Add(Apprenticeship);
                Db.SaveChanges();

                MessageHandlerContext = new Mock <IMessageHandlerContext>();
                ReservationsApiClient = new Mock <IReservationsApiClient>();
                EncodingService       = new Mock <IEncodingService>();

                ChangeOfPartyReservationId = autoFixture.Create <Guid>();
                ReservationsApiClient.Setup(x =>
                                            x.CreateChangeOfPartyReservation(It.Is <Guid>(id => id == Apprenticeship.ReservationId.Value),
                                                                             It.IsAny <CreateChangeOfPartyReservationRequest>(), It.IsAny <CancellationToken>()))
                .ReturnsAsync(new CreateChangeOfPartyReservationResult(ChangeOfPartyReservationId));

                CohortReference = autoFixture.Create <string>();
                EncodingService.Setup(x => x.Encode(Cohort.Id, EncodingType.CohortReference)).Returns(CohortReference);

                Handler = new ChangeOfPartyRequestCreatedEventHandler(new Lazy <ProviderCommitmentsDbContext>(() => Db), ReservationsApiClient.Object, Mock.Of <ILogger <ChangeOfPartyRequestCreatedEventHandler> >(), EncodingService.Object);
            }
        public EditEndDateRequestCommandHandlerTestsFixture()
        {
            Party             = Party.Employer;
            UnitOfWorkContext = new UnitOfWorkContext();
            Db = new ProviderCommitmentsDbContext(new DbContextOptionsBuilder <ProviderCommitmentsDbContext>()
                                                  .UseInMemoryDatabase(Guid.NewGuid().ToString())
                                                  .ConfigureWarnings(warnings => warnings.Throw(RelationalEventId.QueryClientEvaluationWarning))
                                                  .Options);
            var fixture = new Fixture();

            fixture.Behaviors.Add(new OmitOnRecursionBehavior());

            var Cohort = new CommitmentsV2.Models.Cohort()
                         .Set(c => c.Id, 111)
                         .Set(c => c.EmployerAccountId, 222)
                         .Set(c => c.ProviderId, 333)
                         .Set(c => c.AccountLegalEntity, new AccountLegalEntity());
            var Apprenticeship = fixture.Build <CommitmentsV2.Models.Apprenticeship>()
                                 .With(s => s.Cohort, Cohort)
                                 .With(s => s.PaymentStatus, PaymentStatus.Completed)
                                 .With(s => s.EndDate, DateTime.UtcNow)
                                 .With(s => s.CompletionDate, DateTime.UtcNow.AddDays(10))
                                 .With(s => s.StartDate, DateTime.UtcNow.AddDays(-10))
                                 .Without(s => s.DataLockStatus)
                                 .Without(s => s.EpaOrg)
                                 .Without(s => s.ApprenticeshipUpdate)
                                 .Without(s => s.Continuation)
                                 .Without(s => s.PreviousApprenticeship)
                                 .Create();

            Db.Apprenticeships.Add(Apprenticeship);

            Db.SaveChanges();

            ApprenticeshipId = Apprenticeship.Id;

            var authenticationService = new Mock <IAuthenticationService>();

            authenticationService.Setup(x => x.GetUserParty()).Returns(() => Party);

            var lazyProviderDbContext = new Lazy <ProviderCommitmentsDbContext>(() => Db);

            var newEndDate = Apprenticeship.EndDate.Value.AddDays(1);

            Command = new EditEndDateRequestCommand
            {
                ApprenticeshipId = Apprenticeship.Id,
                EndDate          = newEndDate,
                UserInfo         = new UserInfo()
            };

            Handler = new EditEndDateRequestCommandHandler(lazyProviderDbContext,
                                                           Mock.Of <ICurrentDateTime>(),
                                                           authenticationService.Object,
                                                           Mock.Of <ILogger <EditEndDateRequestCommandHandler> >());
        }
Exemple #20
0
            public CohortWithChangeOfPartyCreatedEventHandlerForEmailTestsFixture()
            {
                _autoFixture      = new Fixture();
                _mediator         = new Mock <IMediator>();
                UnitOfWorkContext = new UnitOfWorkContext();

                _db = new ProviderCommitmentsDbContext(new DbContextOptionsBuilder <ProviderCommitmentsDbContext>()
                                                       .UseInMemoryDatabase(Guid.NewGuid().ToString())
                                                       .Options);

                _cohortSummary = _autoFixture.Create <GetCohortSummaryQueryResult>();
                _mediator.Setup(x => x.Send(It.IsAny <GetCohortSummaryQuery>(),
                                            It.IsAny <CancellationToken>()))
                .ReturnsAsync(() => _cohortSummary);

                _apprenticeship = new Apprenticeship
                {
                    Id        = _autoFixture.Create <long>(),
                    FirstName = _autoFixture.Create <string>(),
                    LastName  = _autoFixture.Create <string>(),
                    Cohort    = new Cohort
                    {
                        AccountLegalEntity = new AccountLegalEntity()
                    },
                    ReservationId = _autoFixture.Create <Guid>()
                };

                _changeOfPartyRequest = new ChangeOfPartyRequest(_apprenticeship, ChangeOfPartyRequestType.ChangeProvider, Party.Employer, _autoFixture.Create <long>(), null, null, null, _autoFixture.Create <UserInfo>(), DateTime.Now);
                _apprenticeship.Cohort.ChangeOfPartyRequestId = _changeOfPartyRequest.Id;

                _db.ChangeOfPartyRequests.Add(_changeOfPartyRequest);
                _db.Apprenticeships.Add(_apprenticeship);
                _db.SaveChanges();

                _expectedApprenticeName         = _apprenticeship.LastName.EndsWith("s") ? $"{_apprenticeship.FirstName} {_apprenticeship.LastName}'" : $"{_apprenticeship.FirstName} {_apprenticeship.LastName}'s";
                _expectedSubjectDetailsRequired = $"{_cohortSummary.LegalEntityName} has requested that you add details on their behalf";
                _expectedSubjectForReview       = $"{_cohortSummary.LegalEntityName} has added details for you to review";
                _expectedRequestUrl             = $"{_cohortSummary.ProviderId}/apprentices/{_cohortSummary.CohortReference}/details";

                _cohortReference          = _autoFixture.Create <string>();
                _employerEncodedAccountId = _autoFixture.Create <string>();
                _encodingService          = new Mock <IEncodingService>();
                _encodingService.Setup(x => x.Encode(It.Is <long>(id => id == _cohortSummary.CohortId),
                                                     EncodingType.CohortReference)).Returns(_cohortReference);
                _encodingService.Setup(x => x.Encode(It.Is <long>(id => id == _cohortSummary.AccountId),
                                                     EncodingType.AccountId)).Returns(_employerEncodedAccountId);

                _handler = new CohortWithChangeOfPartyCreatedEventHandlerForEmail(new Lazy <ProviderCommitmentsDbContext>(() => _db),
                                                                                  _mediator.Object,
                                                                                  _encodingService.Object,
                                                                                  Mock.Of <ILogger <CohortWithChangeOfPartyCreatedEventHandlerForEmail> >());

                _messageHandlerContext = new TestableMessageHandlerContext();

                _event = new CohortWithChangeOfPartyCreatedEvent(_cohortSummary.CohortId, _changeOfPartyRequest.Id, Party.Employer, DateTime.Now, _autoFixture.Create <UserInfo>());
            }
        private static async Task <Provider> GetProvider(long providerId, ProviderCommitmentsDbContext db, CancellationToken cancellationToken)
        {
            var provider = await db.Providers.SingleOrDefaultAsync(p => p.UkPrn == providerId, cancellationToken);

            if (provider == null)
            {
                throw new BadRequestException($"Provider {providerId} was not found");
            }
            return(provider);
        }
Exemple #22
0
        public GetProviderQueryHandlerTestsFixture()
        {
            Query    = new GetProviderQuery(1);
            Provider = new Provider(1, "Foo", DateTime.UtcNow, DateTime.UtcNow);
            Db       = new ProviderCommitmentsDbContext(new DbContextOptionsBuilder <ProviderCommitmentsDbContext>().UseInMemoryDatabase(Guid.NewGuid().ToString()).Options);
            Handler  = new GetProviderQueryHandler(new Lazy <ProviderCommitmentsDbContext>(() => Db));

            Db.Providers.Add(new Provider(2, "Bar", DateTime.UtcNow, DateTime.UtcNow));
            Db.SaveChanges();
        }
            public GetDataLocksQueryHandlerTestsFixture()
            {
                _autofixture = new Fixture();

                _apprenticeshipId = 1;
                _request          = new GetDataLocksQuery(_apprenticeshipId);

                _db = new ProviderCommitmentsDbContext(new DbContextOptionsBuilder <ProviderCommitmentsDbContext>()
                                                       .UseInMemoryDatabase(Guid.NewGuid().ToString()).EnableSensitiveDataLogging().Options);
                _handler = new GetDataLocksQueryHandler(new Lazy <ProviderCommitmentsDbContext>(() => _db));
            }
Exemple #24
0
            public GetPriceEpisodesHandlerTestsFixture()
            {
                _autoFixture = new Fixture();

                _apprenticeshipId = _autoFixture.Create <long>();
                _request          = new GetPriceEpisodesQuery(_apprenticeshipId);

                _db = new ProviderCommitmentsDbContext(new DbContextOptionsBuilder <ProviderCommitmentsDbContext>().UseInMemoryDatabase(Guid.NewGuid().ToString()).Options);
                SeedData();
                _handler = new GetPriceEpisodesQueryHandler(new Lazy <ProviderCommitmentsDbContext>(() => _db));
            }
        private static async Task <Account> GetAccount(long accountId, ProviderCommitmentsDbContext db, CancellationToken cancellationToken)
        {
            var account = await db.Accounts.SingleOrDefaultAsync(x => x.Id == accountId, cancellationToken);

            if (account == null)
            {
                throw new BadRequestException($"Account {accountId} was not found");
            }

            return(account);
        }
        public UpdateProviderPaymentPriorityCommandHandlerTestsFixture()
        {
            Db = new ProviderCommitmentsDbContext(new DbContextOptionsBuilder <ProviderCommitmentsDbContext>().UseInMemoryDatabase(Guid.NewGuid().ToString()).Options);

            Logger = new Mock <ILogger <UpdateProviderPaymentsPriorityCommandHandler> >();

            UnitOfWorkContext = new UnitOfWorkContext();

            Handler = new UpdateProviderPaymentsPriorityCommandHandler(
                new Lazy <ProviderCommitmentsDbContext>(() => Db), Logger.Object);
        }
Exemple #27
0
            public GetDraftApprenticeshipsHandlerTestsFixture()
            {
                _autoFixture = new Fixture();

                _cohortId = _autoFixture.Create <long>();
                _query    = new GetDraftApprenticeshipsQuery(_cohortId);

                _db = new ProviderCommitmentsDbContext(new DbContextOptionsBuilder <ProviderCommitmentsDbContext>().UseInMemoryDatabase(Guid.NewGuid().ToString()).Options);
                SeedData();
                _queryHandler = new GetDraftApprenticeshipsQueryHandler(new Lazy <ProviderCommitmentsDbContext>(() => _db));
            }
Exemple #28
0
        private void SeedData(ProviderCommitmentsDbContext dbContext)
        {
            dbContext.Cohorts.AddRange(SeedCohorts);

            if (SeedAccounts.Count > 0)
            {
                dbContext.Accounts.AddRange(SeedAccounts);
            }

            dbContext.SaveChanges(true);
        }
Exemple #29
0
            public ChangeOfPartyRequestsQueryHandlersTestsFixture()
            {
                _autoFixture = new Fixture();

                _employerName     = _autoFixture.Create <string>();
                _apprenticeshipId = _autoFixture.Create <long>();
                _request          = new GetChangeOfPartyRequestsQuery(_apprenticeshipId);

                _db = new ProviderCommitmentsDbContext(new DbContextOptionsBuilder <ProviderCommitmentsDbContext>().UseInMemoryDatabase(Guid.NewGuid().ToString()).Options);
                SeedData();
                _handler = new GetChangeOfPartyRequestsQueryHandler(new Lazy <ProviderCommitmentsDbContext>(() => _db));
            }
        private static Task ImportProviders(ProviderCommitmentsDbContext db, DataTable providersDataTable)
        {
            var providers = new SqlParameter("providers", SqlDbType.Structured)
            {
                TypeName = "Providers",
                Value    = providersDataTable
            };

            var now = new SqlParameter("now", DateTime.UtcNow);

            return(db.ExecuteSqlCommandAsync("EXEC ImportProviders @providers, @now", providers, now));
        }