Esempio n. 1
0
        public void Setup()
        {
            MockMediator              = new Mock <IMediator>();
            _mockLogger               = new Mock <ILogger>();
            _mockCalculator           = new Mock <ICommitmentStatusCalculator>();
            _mockApprenticeshipMapper = new Mock <IApprenticeshipMapper>();
            _mockCommitmentMapper     = new Mock <ICommitmentMapper>();

            _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 <GetCommitmentQueryRequest>()))
            .ReturnsAsync(new GetCommitmentQueryResponse
            {
                Commitment = new CommitmentView
                {
                    Id            = 123,
                    LegalEntityId = "321",
                    EditStatus    = EditStatus.EmployerOnly
                }
            });

            EmployerCommitmentOrchestrator = new EmployerCommitmentsOrchestrator(
                MockMediator.Object,
                _mockHashingService.Object,
                _mockCalculator.Object,
                _mockApprenticeshipMapper.Object,
                _mockCommitmentMapper.Object,
                _mockLogger.Object);
        }
        public void Arrange()
        {
            _mediator   = new Mock <IMediator>();
            _logger     = new Mock <ILogger>();
            _calculator = new Mock <ICommitmentStatusCalculator>();

            _hashingService = new Mock <IHashingService>();
            _hashingService.Setup(x => x.DecodeValue("ABC123")).Returns(123L);
            _hashingService.Setup(x => x.DecodeValue("ABC321")).Returns(321L);
            _hashingService.Setup(x => x.DecodeValue("ABC456")).Returns(456L);

            _mediator.Setup(x => x.SendAsync(It.IsAny <GetCommitmentQueryRequest>()))
            .ReturnsAsync(new GetCommitmentQueryResponse
            {
                Commitment = new CommitmentView
                {
                    Id            = 123,
                    LegalEntityId = "321",
                    EditStatus    = EditStatus.EmployerOnly
                }
            });
            _mediator.Setup(x => x.SendAsync(It.IsAny <GetOverlappingApprenticeshipsQueryRequest>()))
            .ReturnsAsync(
                new GetOverlappingApprenticeshipsQueryResponse {
                Overlaps = Enumerable.Empty <ApprenticeshipOverlapValidationResult>()
            });

            _employerCommitmentOrchestrator = new EmployerCommitmentsOrchestrator(
                _mediator.Object,
                _hashingService.Object,
                _calculator.Object,
                Mock.Of <IApprenticeshipMapper>(),
                Mock.Of <ICommitmentMapper>(),
                _logger.Object);
        }
Esempio n. 3
0
 public TransferRequestController(EmployerCommitmentsOrchestrator orchestrator, IOwinWrapper owinWrapper,
                                  IMultiVariantTestingService multiVariantTestingService, ICookieStorageService <FlashMessageViewModel> flashMessage,
                                  ICookieStorageService <string> lastCohortCookieStorageService, ILinkGenerator linkGenerator)
     : base(orchestrator, owinWrapper, multiVariantTestingService, flashMessage, lastCohortCookieStorageService)
 {
     _linkGenerator = linkGenerator;
 }
Esempio n. 4
0
        public EmployerCommitmentsController(EmployerCommitmentsOrchestrator employerCommitmentsOrchestrator, IOwinWrapper owinWrapper,
                                             IFeatureToggle featureToggle, IMultiVariantTestingService multiVariantTestingService, ICookieStorageService <FlashMessageViewModel> flashMessage)
            : base(owinWrapper, featureToggle, multiVariantTestingService, flashMessage)
        {
            if (employerCommitmentsOrchestrator == null)
            {
                throw new ArgumentNullException(nameof(employerCommitmentsOrchestrator));
            }
            if (owinWrapper == null)
            {
                throw new ArgumentNullException(nameof(owinWrapper));
            }

            _employerCommitmentsOrchestrator = employerCommitmentsOrchestrator;
        }
        public async Task <ActionResult> SelectLegalEntity(string hashedAccountId, string transferConnectionCode, string cohortRef = "")
        {
            if (!await IsUserRoleAuthorized(hashedAccountId, Role.Owner, Role.Transactor))
            {
                return(View("AccessDenied"));
            }

            var response = await Orchestrator.GetLegalEntities(hashedAccountId, transferConnectionCode, cohortRef, OwinWrapper.GetClaimValue(@"sub"));

            if (response.Data.LegalEntities == null || !response.Data.LegalEntities.Any())
            {
                throw new InvalidStateException($"No legal entities associated with account {hashedAccountId}");
            }

            if (response.Data.LegalEntities.Count() > 1)
            {
                return(View(response));
            }

            var autoSelectLegalEntity = response.Data.LegalEntities.First();

            var hasSigned = EmployerCommitmentsOrchestrator.HasSignedAgreement(
                autoSelectLegalEntity, !string.IsNullOrWhiteSpace(transferConnectionCode));

            if (hasSigned)
            {
                return(RedirectToAction("SearchProvider", new SelectLegalEntityViewModel
                {
                    TransferConnectionCode = transferConnectionCode,
                    CohortRef = response.Data.CohortRef,
                    LegalEntityCode = autoSelectLegalEntity.Code,
                    // no need to store LegalEntities, as the property is only read in the SelectLegalEntity view, which we're now skipping
                }));
            }

            return(RedirectToAction("AgreementNotSigned", new
            {
                HashedAccountId = hashedAccountId,
                LegalEntityCode = autoSelectLegalEntity.Code,
                TransferConnectionCode = transferConnectionCode,
                CohortRef = response.Data.CohortRef,
                HasSignedAgreement = false,
                LegalEntityName = autoSelectLegalEntity.Name ?? string.Empty
            }));
        }
Esempio n. 6
0
        public void Setup()
        {
            MockMediator                    = new Mock <IMediator>();
            MockLogger                      = new Mock <ILog>();
            MockApprenticeshipMapper        = new Mock <IApprenticeshipMapper>();
            MockApprenticeshipCoreValidator = new Mock <IApprenticeshipCoreValidator>();
            MockCommitmentMapper            = new Mock <ICommitmentMapper>();
            MockLinkGenerator               = new Mock <ILinkGenerator>();

            MockEmployerCommitmentsV2FeatureToggleOn = new Mock <IFeatureToggle>();
            MockEmployerCommitmentsV2FeatureToggleOn.Setup(x => x.FeatureEnabled).Returns(true);
            MockTransfersFeatureToggleOn = new Mock <IFeatureToggle>();
            MockTransfersFeatureToggleOn.Setup(x => x.FeatureEnabled).Returns(true);
            MockFeatureToggleService = new Mock <IFeatureToggleService>();
            MockFeatureToggleService.Setup(x => x.Get <Transfers>()).Returns(MockTransfersFeatureToggleOn.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);

            MockPublicHashingService   = new Mock <IPublicHashingService>();
            MockEmployerAccountService = new Mock <IEmployerAccountService>();

            CommitmentView = new CommitmentView
            {
                Id            = 123,
                LegalEntityId = "321",
                EditStatus    = EditStatus.EmployerOnly,
                Messages      = new List <MessageView>(),
                AccountLegalEntityPublicHashedId = "ALE123"
            };

            MockMediator.Setup(x => x.SendAsync(It.IsAny <GetCommitmentQueryRequest>()))
            .ReturnsAsync(new GetCommitmentQueryResponse
            {
                Commitment = CommitmentView
            });

            MockMediator.Setup(x => x.SendAsync(It.IsAny <GetUserAccountRoleQuery>()))
            .ReturnsAsync(new GetUserAccountRoleResponse {
                User = new TeamMember()
            });

            MockMediator.Setup(m => m.SendAsync(It.IsAny <GetTrainingProgrammesQueryRequest>()))
            .ReturnsAsync(new GetTrainingProgrammesQueryResponse
            {
                TrainingProgrammes = new List <TrainingProgramme>()
            });

            MockMediator.Setup(m => m.SendAsync(It.IsAny <GetApprenticeshipQueryRequest>()))
            .ReturnsAsync(new GetApprenticeshipQueryResponse
            {
                Apprenticeship = new Apprenticeship()
            });

            MockApprenticeshipMapper.Setup(x =>
                                           x.MapToApprenticeshipViewModel(It.IsAny <Apprenticeship>(), It.IsAny <CommitmentView>()))
            .Returns(new ApprenticeshipViewModel());

            EmployerCommitmentOrchestrator = new EmployerCommitmentsOrchestrator(
                MockMediator.Object,
                MockHashingService.Object,
                MockPublicHashingService.Object,
                MockApprenticeshipCoreValidator.Object,
                MockApprenticeshipMapper.Object,
                MockCommitmentMapper.Object,
                MockLogger.Object,
                MockFeatureToggleService.Object,
                MockEmployerAccountService.Object);
        }