public HmrcService(
            IHmrcConfiguration configuration,
            IHttpClientWrapper httpClientWrapper,
            IApprenticeshipLevyApiClient apprenticeshipLevyApiClient,
            ITokenServiceApiClient tokenServiceApiClient,
            [RequiredPolicy(HmrcExecutionPolicy.Name)]
            ExecutionPolicy.ExecutionPolicy executionPolicy,
            IInProcessCache inProcessCache,
            IAzureAdAuthenticationService azureAdAuthenticationService,
            ILog log)
        {
            _configuration                = configuration;
            _httpClientWrapper            = httpClientWrapper;
            _apprenticeshipLevyApiClient  = apprenticeshipLevyApiClient;
            _tokenServiceApiClient        = tokenServiceApiClient;
            _executionPolicy              = executionPolicy;
            _inProcessCache               = inProcessCache;
            _azureAdAuthenticationService = azureAdAuthenticationService;
            _log = log;

            _httpClientWrapper.BaseUrl    = _configuration.BaseUrl;
            _httpClientWrapper.AuthScheme = "Bearer";
            _httpClientWrapper.MediaTypeWithQualityHeaderValueList = new List <MediaTypeWithQualityHeaderValue> {
                new MediaTypeWithQualityHeaderValue("application/vnd.hmrc.1.0+json")
            };
        }
Ejemplo n.º 2
0
        public void Arrange()
        {
            _configuration = new HmrcConfiguration
            {
                BaseUrl      = ExpectedBaseUrl,
                ClientId     = ExpectedClientId,
                Scope        = ExpectedScope,
                ClientSecret = ExpectedClientSecret,
                ServerToken  = "token1234"
            };

            _httpClientWrapper           = new Mock <IHttpClientWrapper>();
            _apprenticeshipLevyApiClient = new Mock <IApprenticeshipLevyApiClient>();

            _tokenService = new Mock <ITokenServiceApiClient>();
            _tokenService.Setup(x => x.GetPrivilegedAccessTokenAsync()).ReturnsAsync(new PrivilegedAccessToken {
                AccessCode = ExpectedAccessCode
            });

            _cacheProvider = new Mock <IInProcessCache>();
            _cacheProvider.SetupSequence(c => c.Get <DateTime?>("HmrcFractionLastCalculatedDate"))
            .Returns((DateTime?)null)
            .Returns(new DateTime());

            _hmrcService = new HmrcService(_configuration, _httpClientWrapper.Object,
                                           _apprenticeshipLevyApiClient.Object, _tokenService.Object, new NoopExecutionPolicy(),
                                           _cacheProvider.Object, null, new Mock <ILog>().Object);
        }