Пример #1
0
        public async Task Then_Returns_Expected_Results()
        {
            // when
            var profileId = _bulkRegistrationTestFixture.DbContext.TqRegistrationProfile.AsNoTracking().FirstOrDefault(x => x.UniqueLearnerNumber == _bulkRegistrationTestFixture.Uln)?.Id;
            var reJoinRegistrationRequest = new RejoinRegistrationRequest
            {
                ProfileId   = profileId ?? 0,
                AoUkprn     = _bulkRegistrationTestFixture.TlAwardingOrganisation.UkPrn,
                PerformedBy = "Test User"
            };
            await _bulkRegistrationTestFixture.WhenReJoinAsync(reJoinRegistrationRequest);

            // then
            _result = _bulkRegistrationTestFixture.RejoinResult;
            _result.Should().BeTrue();

            var expectedRegistrationProfile = _bulkRegistrationTestFixture.TqRegistrationProfilesData.FirstOrDefault(p => p.UniqueLearnerNumber == _bulkRegistrationTestFixture.Uln);

            var actualRegistrationProfile = _bulkRegistrationTestFixture.DbContext.TqRegistrationProfile.AsNoTracking().Where(x => x.UniqueLearnerNumber == _bulkRegistrationTestFixture.Uln)
                                            .Include(x => x.TqRegistrationPathways)
                                            .ThenInclude(x => x.TqRegistrationSpecialisms)
                                            .Include(x => x.TqRegistrationPathways)
                                            .ThenInclude(x => x.TqPathwayAssessments)
                                            .ThenInclude(x => x.TqPathwayResults)
                                            .FirstOrDefault();

            // assert registration profile data
            actualRegistrationProfile.Should().NotBeNull();
            actualRegistrationProfile.UniqueLearnerNumber.Should().Be(expectedRegistrationProfile.UniqueLearnerNumber);
            actualRegistrationProfile.Firstname.Should().Be(expectedRegistrationProfile.Firstname);
            actualRegistrationProfile.Lastname.Should().Be(expectedRegistrationProfile.Lastname);
            actualRegistrationProfile.DateofBirth.Should().Be(expectedRegistrationProfile.DateofBirth);
            actualRegistrationProfile.UniqueLearnerNumber.Should().Be(expectedRegistrationProfile.UniqueLearnerNumber);

            // Assert registration pathway data
            actualRegistrationProfile.TqRegistrationPathways.Where(x => x.Status == RegistrationPathwayStatus.Active).ToList().Count.Should().Be(1);
            actualRegistrationProfile.TqRegistrationPathways.Where(x => x.Status == RegistrationPathwayStatus.Withdrawn).ToList().Count.Should().Be(1);

            // Assert Any Active Pathway
            actualRegistrationProfile.TqRegistrationPathways.Any(x => x.Status == RegistrationPathwayStatus.Active).Should().BeTrue();

            // Assert Active Pathway
            var actualActivePathway   = actualRegistrationProfile.TqRegistrationPathways.FirstOrDefault(x => x.EndDate == null && x.Status == RegistrationPathwayStatus.Active);
            var expectedActivePathway = expectedRegistrationProfile.TqRegistrationPathways.FirstOrDefault(x => actualRegistrationProfile.TqRegistrationPathways.Any(y => y.TqProviderId == x.TqProviderId));

            AssertRegistrationPathway(actualActivePathway, expectedActivePathway, false);

            // Assert Withdrawn PathwayAssessment
            var actualActiveAssessment     = actualActivePathway.TqPathwayAssessments.FirstOrDefault(x => x.EndDate == null);
            var expectedPreviousAssessment = expectedActivePathway.TqPathwayAssessments.FirstOrDefault(x => x.EndDate != null);

            AssertPathwayAssessment(actualActiveAssessment, expectedPreviousAssessment, isRejoin: true);

            // Assert Active PathwayResult
            var actualActiveResult     = actualActiveAssessment.TqPathwayResults.FirstOrDefault(x => x.EndDate == null);
            var expectedPreviousResult = expectedPreviousAssessment.TqPathwayResults.FirstOrDefault(x => x.EndDate != null);

            AssertPathwayResults(actualActiveResult, expectedPreviousResult, isRejoin: true);
        }
Пример #2
0
 public override void Given()
 {
     ApiClientResponse = true;
     ViewModel         = new RejoinRegistrationViewModel {
         ProfileId = 1, Uln = Uln
     };
     Loader        = new RegistrationLoader(Mapper, Logger, InternalApiClient, BlobStorageService);
     reJoinRequest = new RejoinRegistrationRequest {
         AoUkprn = AoUkprn, ProfileId = ProfileId, PerformedBy = $"{Givenname} {Surname}"
     };
     InternalApiClient.RejoinRegistrationAsync(Arg.Any <RejoinRegistrationRequest>()).Returns(ApiClientResponse);
 }
Пример #3
0
        public override void Setup()
        {
            _tokenServiceClient = Substitute.For <ITokenServiceClient>();

            _configuration = new ResultsAndCertificationConfiguration
            {
                ResultsAndCertificationInternalApiSettings = new ResultsAndCertificationInternalApiSettings {
                    Uri = "http://tlevel.api.com"
                }
            };

            _mockHttpResult = true;
            _model          = new RejoinRegistrationRequest
            {
                ProfileId   = 1,
                AoUkprn     = 1234567890,
                PerformedBy = "Test User"
            };
        }
        public override void Given()
        {
            // Seed Tlevel data for pearson
            _uln = 1111111111;
            SeedTestData(EnumAwardingOrganisation.Pearson, true);
            _tqRegistrationProfile = SeedRegistrationData(_uln);

            // Assessments seed
            var tqPathwayAssessmentsSeedData = new List <TqPathwayAssessment>();
            var pathwayAssessments           = GetPathwayAssessmentsDataToProcess(_tqRegistrationProfile.TqRegistrationPathways.ToList(), isBulkUpload: false);

            tqPathwayAssessmentsSeedData.AddRange(pathwayAssessments);
            SeedPathwayAssessmentsData(tqPathwayAssessmentsSeedData, false);

            var tqPathwayResultsSeedData = new List <TqPathwayResult>();

            foreach (var assessment in pathwayAssessments)
            {
                tqPathwayResultsSeedData.AddRange(GetPathwayResultsDataToProcess(new List <TqPathwayAssessment> {
                    assessment
                }, isBulkUpload: false));
            }

            SeedPathwayResultsData(tqPathwayResultsSeedData, false);
            DbContext.SaveChangesAsync();

            CreateMapper();
            ProviderRepositoryLogger                 = new Logger <ProviderRepository>(new NullLoggerFactory());
            RegistrationRepositoryLogger             = new Logger <RegistrationRepository>(new NullLoggerFactory());
            TqRegistrationPathwayRepositoryLogger    = new Logger <GenericRepository <TqRegistrationPathway> >(new NullLoggerFactory());
            TqRegistrationSpecialismRepositoryLogger = new Logger <GenericRepository <TqRegistrationSpecialism> >(new NullLoggerFactory());
            ProviderRepository                 = new ProviderRepository(ProviderRepositoryLogger, DbContext);
            RegistrationRepository             = new RegistrationRepository(RegistrationRepositoryLogger, DbContext);
            TqRegistrationPathwayRepository    = new GenericRepository <TqRegistrationPathway>(TqRegistrationPathwayRepositoryLogger, DbContext);
            TqRegistrationSpecialismRepository = new GenericRepository <TqRegistrationSpecialism>(TqRegistrationSpecialismRepositoryLogger, DbContext);
            RegistrationService                = new RegistrationService(ProviderRepository, RegistrationRepository, TqRegistrationPathwayRepository, TqRegistrationSpecialismRepository, RegistrationMapper, RegistrationRepositoryLogger);

            _reJoinRegistrationRequest = new RejoinRegistrationRequest
            {
                AoUkprn     = TlAwardingOrganisation.UkPrn,
                PerformedBy = "Test User"
            };
        }
        public async Task <bool> RejoinRegistrationAsync(RejoinRegistrationRequest model)
        {
            var requestUri = ApiConstants.RejoinRegistrationUri;

            return(await PutAsync <RejoinRegistrationRequest, bool>(requestUri, model));
        }
 public async Task WhenReJoinAsync(RejoinRegistrationRequest rejoinRegistrationRequest)
 {
     RejoinResult = await RegistrationService.RejoinRegistrationAsync(rejoinRegistrationRequest);
 }
 public async Task <bool> RejoinRegistrationAsync(RejoinRegistrationRequest model)
 {
     return(await _registrationService.RejoinRegistrationAsync(model));
 }