public async Task GetProviderAsync_ShouldAttemptToFindTrainingProvider()
        {
            const long ukprn = 88888888;

            var loggerMock          = new Mock <ILogger <TrainingProviderService> >();
            var referenceDataReader = new Mock <IReferenceDataReader>();
            var cache            = new Mock <ICache>();
            var timeProvider     = new Mock <ITimeProvider>();
            var trainingProvider = new TrainingProvider
            {
                Ukprn   = ukprn,
                Name    = "name",
                Address = new TrainingProviderAddress
                {
                    AddressLine1 = "address line 1",
                    AddressLine2 = "address line 2",
                    AddressLine3 = "address line 3",
                    AddressLine4 = "address line 4",
                    Postcode     = "post code"
                }
            };
            var providers = new TrainingProviders
            {
                Data = new List <TrainingProvider>
                {
                    trainingProvider
                }
            };

            cache.Setup(x => x.CacheAsideAsync(CacheKeys.TrainingProviders, It.IsAny <DateTime>(),
                                               It.IsAny <Func <Task <TrainingProviders> > >()))
            .ReturnsAsync(providers);

            var sut = new TrainingProviderService(loggerMock.Object, referenceDataReader.Object, cache.Object, timeProvider.Object);

            var provider = await sut.GetProviderAsync(ukprn);


            provider.Name.Should().Be("name");
            provider.Ukprn.Should().Be(ukprn);
            provider.Address.AddressLine1.Should().Be("address line 1");
            provider.Address.AddressLine2.Should().Be("address line 2");
            provider.Address.AddressLine3.Should().Be("address line 3");
            provider.Address.AddressLine4.Should().Be("address line 4");
            provider.Address.Postcode.Should().Be("post code");
        }
        public static List <ExtendedUser> Get()
        {
            var trainUGood = TrainingProviders.Get("10005077");
            var likeAPro   = TrainingProviders.Get("10000896");

            return(new List <ExtendedUser> {
                new ExtendedUser {
                    SubjectId = "5BE86359-073C-434B-AD2D-A3932222DABE",
                    Username = "******",
                    //Password = "******",
                    ProviderId = trainUGood.Ukprn,
                    ProviderName = trainUGood.Name,
                    Description = "User with DAA role",
                    Claims = new List <Claim> {
                        new Claim(JwtClaimTypes.Email, "*****@*****.**"),
                        new Claim(JwtClaimTypes.Role, "admin"),
                        new Claim(Custom.ClaimTypes.Ukprn, trainUGood.Ukprn),
                        new Claim(Custom.ClaimTypes.Service, "DAA"),
                        new Claim(Custom.ClaimTypes.Name, "Chris @ Train-U-Good Corporation"),
                        new Claim(Custom.ClaimTypes.DisplayName, "Chris @ Train-U-Good Corporation"),
                        new Claim(Custom.ClaimTypes.Upn, trainUGood.Ukprn + "\\" + "chris"),
                        new Claim(Custom.ClaimTypes.Email, "*****@*****.**")
                    }
                },
                new ExtendedUser {
                    SubjectId = "fcea33d2-0bec-4fdd-8c97-5902973746a4",
                    Username = "******",
                    //Password = "******",
                    ProviderId = trainUGood.Ukprn,
                    ProviderName = trainUGood.Name,
                    Description = "User without DAA role",
                    Claims = new List <Claim> {
                        new Claim(JwtClaimTypes.Email, "*****@*****.**"),
                        new Claim(JwtClaimTypes.Role, "admin"),
                        new Claim(Custom.ClaimTypes.Ukprn, trainUGood.Ukprn),
                        //new Claim(Custom.ClaimTypes.Service, "DAA"), //this user does NOT have DAA role
                        new Claim(Custom.ClaimTypes.Name, "Duff @ Train-U-Good Corporation"),
                        new Claim(Custom.ClaimTypes.DisplayName, "Duff @ Train-U-Good Corporation"),
                        new Claim(Custom.ClaimTypes.Upn, trainUGood.Ukprn + "\\" + "duff"),
                        new Claim(Custom.ClaimTypes.Email, "*****@*****.**")
                    }
                },
                new ExtendedUser {
                    SubjectId = "148cd9cb-9189-435d-a5ab-550bb800122d",
                    Username = "******",
                    //Password = "******",
                    ProviderId = likeAPro.Ukprn,
                    ProviderName = likeAPro.Name,
                    Description = "User with DAA role",
                    Claims = new List <Claim> {
                        new Claim(JwtClaimTypes.Email, "*****@*****.**"),
                        new Claim(JwtClaimTypes.Role, "admin"),
                        new Claim(Custom.ClaimTypes.Ukprn, likeAPro.Ukprn),
                        new Claim(Custom.ClaimTypes.Service, "DAA"),
                        new Claim(Custom.ClaimTypes.Name, "user1 @ Like a Pro Education Inc."),
                        new Claim(Custom.ClaimTypes.DisplayName, "user1 @ Like a Pro Education Inc."),
                        new Claim(Custom.ClaimTypes.Upn, likeAPro.Ukprn + "\\" + "user1"),
                        new Claim(Custom.ClaimTypes.Email, "*****@*****.**")
                    }
                },
            });
        }