public StatementOfAchievementController(IStatementOfAchievementLoader statementOfAchievementLoader, IProviderAddressLoader providerAddress, ICacheService cacheService, ResultsAndCertificationConfiguration configuration, ILogger <StatementOfAchievementController> logger)
 {
     _statementOfAchievementLoader = statementOfAchievementLoader;
     _providerAddress = providerAddress;
     _cacheService    = cacheService;
     _configuration   = configuration;
     _logger          = logger;
 }
        public override void Setup()
        {
            ResultsAndCertificationConfiguration = new ResultsAndCertificationConfiguration {
                SoaAvailableDate = "10/08/2021".ToDateTime()
            };
            CacheService = Substitute.For <ICacheService>();
            Logger       = Substitute.For <ILogger <StatementOfAchievementController> >();
            StatementOfAchievementLoader = Substitute.For <IStatementOfAchievementLoader>();
            ProviderAddressLoader        = Substitute.For <IProviderAddressLoader>();
            Controller = new StatementOfAchievementController(StatementOfAchievementLoader, ProviderAddressLoader, CacheService, ResultsAndCertificationConfiguration, Logger);

            ProviderUkprn = 1234567890;
            var httpContext = new ClaimsIdentityBuilder <StatementOfAchievementController>(Controller)
                              .Add(CustomClaimTypes.Ukprn, ProviderUkprn.ToString())
                              .Add(CustomClaimTypes.UserId, Guid.NewGuid().ToString())
                              .Build()
                              .HttpContext;

            HttpContextAccessor = Substitute.For <IHttpContextAccessor>();
            HttpContextAccessor.HttpContext.Returns(httpContext);

            CacheKey = CacheKeyHelper.GetCacheKey(httpContext.User.GetUserId(), CacheConstants.SoaCacheKey);
        }