Example #1
0
        private string GetAccessToken(bool includeRealApiClaim = false)
        {
            var config = EswDevOpsSdk.BuildConfiguration();

            var generator = new TokenGenerator();

            var issuer = config["STSIssuer"];

            var claims = new List <Claim>
            {
                new Claim("client_id", "esw.toolingIntTestClient"),
                new Claim("sub", "blah"),
                new Claim("idp", "oidc-azure"),
                new Claim("Scope", "openid"),
                new Claim("Scope", "profile"),
                new Claim("Scope", "esw.toolingIntTest"),

                new Claim("amr", "external")
            };

            if (includeRealApiClaim)
            {
                claims.Add(new Claim("Scope", "esw.toolingInt"));
            }

            return(generator.CreateAccessToken($"{issuer}", new List <string>
            {
                $"{issuer}/resources",
                "esw.toolingIntTest"
            }, claims, 3600));
        }
Example #2
0
        private async Task <string> GetAccessToken(bool includeRealApiClaim = false)
        {
            var config = EswDevOpsSdk.BuildConfiguration();

            var generator = new TokenGenerator();

            var certificate = new X509Certificate2(Convert.FromBase64String(config["STSSigningCert"]), "");
            var issuer      = config["STSIssuer"];

            var claims = new List <Claim>
            {
                new Claim("client_id", "esw.toolingIntTestClient"),
                new Claim("sub", "blah"),
                new Claim("idp", "oidc-azure"),
                new Claim("Scope", "openid"),
                new Claim("Scope", "profile"),
                new Claim("Scope", "esw.toolingIntTest"),

                new Claim("amr", "external")
            };

            if (includeRealApiClaim)
            {
                claims.Add(new Claim("Scope", "esw.toolingInt"));
            }

            return(await generator.CreateAccessTokenAsync($"{issuer}", new List <string>
            {
                $"{issuer}/resources",
                "esw.toolingIntTest"
            }, certificate, 3600, claims));
        }
Example #3
0
    public void BuildConfiguration_ReadFromEnvironmentalAppSettings()

    {
        var sut = EswDevOpsSdk.BuildConfiguration(AssemblyDirectory, "ENV1");

        sut["KeyENV1AppSettings"].Should().BeEquivalentTo("ENV1AppSettingsValue");
    }
Example #4
0
    public void BuildConfiguration_ReadFromCoreAppSettings()
    {
        Environment.SetEnvironmentVariable(EswDevOpsSdk.EnvironmentEnvVariable, "ENV1", EnvironmentVariableTarget.Process); //process level is fine here
        var sut = EswDevOpsSdk.BuildConfiguration(AssemblyDirectory);

        sut["KeyRootAppSettings"].Should().BeEquivalentTo("AppSettingsValue");
    }
Example #5
0
    public void BuildConfiguration_NonTestMode()

    {
        var sut = EswDevOpsSdk.BuildConfiguration(AssemblyDirectory);

        sut["KeyTestAppSettings"].Should().BeNullOrEmpty();
    }
Example #6
0
        protected override void Load(ContainerBuilder builder)
        {
            builder.Register(c => EswDevOpsSdk.BuildConfiguration());
            builder.RegisterType <ClusterNotifier>().SingleInstance();
            builder.Register(c => new FabricClient());
            builder.Register <IBigBrother>(c =>
            {
                var config   = c.Resolve <IConfigurationRoot>();
                var bbInsKey = config["BBInstrumentationKey"];
                return(new BigBrother(bbInsKey, bbInsKey));
            })
            .SingleInstance();

            builder.Register(c => HttpPolicyExtensions.HandleTransientHttpError()
                             .WaitAndRetryAsync(new[]
            {
                //TODO: configure these timeouts and add jitter policy
                TimeSpan.FromSeconds(1),
                TimeSpan.FromSeconds(5),
                TimeSpan.FromSeconds(10)
            }))
            .As <IAsyncPolicy <HttpResponseMessage> >()
            .SingleInstance();

            builder.Register(c => new PolicyHttpMessageHandler(c.Resolve <IAsyncPolicy <HttpResponseMessage> >()))
            .SingleInstance();

            builder.Register(c => new HttpClient(c.Resolve <PolicyHttpMessageHandler>()))
            .SingleInstance();
        }
Example #7
0
    /// <summary>
    /// constructor logic
    ///
    /// it invokes the tenant api to create the tenant so that other tests dependent on this fixture do not have to concern with the set up
    /// </summary>
    public TenantL3TestFixture()
    {
        var builder = new ContainerBuilder();

        builder.RegisterModule(new CoreModule(true));
        builder.RegisterModule(new VstsModule());
        builder.Register(c => new SierraDbContext
        {
            ConnectionString = c.Resolve <IConfigurationRoot>()["SierraDbConnectionString"]
        });
        builder.Register(c =>
        {
            TestConfig = new TestConfig();
            var config = EswDevOpsSdk.BuildConfiguration(true);
            config.GetSection("TestConfig").Bind(TestConfig);
            return(TestConfig);
        });

        Container  = builder.Build();
        TestConfig = Container.Resolve <TestConfig>();
        EnsureTenantCreated().Wait(TenantApiTimeout);
        //load tenant into memory
        using (var scope = Container.BeginLifetimeScope())
        {
            var dbContext = scope.Resolve <SierraDbContext>();
            TenantUnderTest = dbContext.LoadCompleteTenantAsync(TenantCode).Result;
        }
    }
Example #8
0
    public void BuildConfiguration_EnvironmentOverwrites()
    {
        Environment.SetEnvironmentVariable("OPTION2", "fromEnv", EnvironmentVariableTarget.Process);
        Environment.SetEnvironmentVariable("OPTION5", "fromEnv", EnvironmentVariableTarget.Process);
        var sut = EswDevOpsSdk.BuildConfiguration(AssemblyDirectory, "ORDER");

        sut["Option1"].Should().BeEquivalentTo("fromOrderAppSetting");
        sut["Option2"].Should().BeEquivalentTo("fromEnv");
        sut["Option3"].Should().BeEquivalentTo("value3");
        sut["Option4"].Should().BeEquivalentTo("fromKV");
        sut["Option5"].Should().BeEquivalentTo("fromENV");
    }
Example #9
0
 public Startup(IHostingEnvironment env)
 {
     try
     {
         _configuration = EswDevOpsSdk.BuildConfiguration(env.ContentRootPath, env.EnvironmentName);
         var internalKey = _configuration["BBInstrumentationKey"];
         _bb = new BigBrother(internalKey, internalKey);
         _bb.UseEventSourceSink().ForExceptions();
     }
     catch (Exception e)
     {
         BigBrother.Write(e);
         throw;
     }
 }
Example #10
0
        protected override void Load(ContainerBuilder builder)
        {
            var config = EswDevOpsSdk.BuildConfiguration(TestMode);

            builder.RegisterInstance(config)
            .As <IConfigurationRoot>()
            .SingleInstance();

            builder.Register <IBigBrother>(c =>
            {
                var insKey = c.Resolve <IConfigurationRoot>()["BBInstrumentationKey"];
                return(new BigBrother(insKey, insKey));
            })
            .SingleInstance();
        }
Example #11
0
    public ActorTestsFixture()
    {
        if (string.IsNullOrWhiteSpace(EswDevOpsSdk.GetEnvironmentName()))
        {
            var defaultTestExecutionEnvironment = DeploymentEnvironment.Development.ToString();
            System.Environment.SetEnvironmentVariable(EswDevOpsSdk.EnvironmentEnvVariable, defaultTestExecutionEnvironment);
            EswDevOpsSdk.GetEnvironmentName().Should().Be(defaultTestExecutionEnvironment);
        }

        var builder = new ContainerBuilder();

        builder.RegisterModule(new CoreModule(true));
        builder.RegisterModule(new VstsModule());
        builder.RegisterModule(new AzureManagementFluentModule());
        builder.Register(c => new SierraDbContext
        {
            ConnectionString = c.Resolve <IConfigurationRoot>()["SierraDbConnectionString"]
        });
        builder.Register(c => new HttpClient {
            Timeout = TimeSpan.FromSeconds(200)
        });

        builder.Register(c =>
        {
            var testConfig = new TestConfig();

            var config = EswDevOpsSdk.BuildConfiguration(true);
            config.GetSection("TestConfig").Bind(testConfig);

            TestMiddlewareUri = $"{testConfig.ApiUrl}test";
            TestRegion        = string.IsNullOrEmpty(testConfig.RegionName)
                ? Region.EuropeNorth
                : Region.Create(testConfig.RegionName);

            Environment = Enum.Parse <DeploymentEnvironment>(testConfig.Environment, true);

            DeploymentSubscriptionId = EswDevOpsSdk.SierraIntegrationSubscriptionId;

            return(testConfig);
        });

        Container = builder.Build();
        //trigger set up
        Container.Resolve <TestConfig>();
    }
Example #12
0
 /// <summary>
 /// Constructor
 /// </summary>
 /// <param name="env">hosting environment</param>
 public Startup(IHostingEnvironment env)
 {
     _configuration = EswDevOpsSdk.BuildConfiguration(env.ContentRootPath, env.EnvironmentName);
     AppSettings    = _configuration.GetSection("App").Get <AppSettings>();
     _bb            = new BigBrother(AppSettings.Telemetry.InstrumentationKey, AppSettings.Telemetry.InternalKey);
 }
Example #13
0
 /// <summary>
 /// Constructor
 /// </summary>
 /// <param name="env">hosting environment</param>
 public Startup(IHostingEnvironment env)
 {
     _configuration = EswDevOpsSdk.BuildConfiguration(env.ContentRootPath, env.EnvironmentName);
     _configuration.GetSection("Telemetry").Bind(_telemetrySettings);
     _bb = new BigBrother(_telemetrySettings.InstrumentationKey, _telemetrySettings.InternalKey);
 }
Example #14
0
    public void BuildConfiguration_MSIAuthenticationTest()
    {
        var sut = EswDevOpsSdk.BuildConfiguration(AssemblyDirectory, "CI");

        sut["keyVaultItem"].Should().Be("keyVaultItemValue");
    }
Example #15
0
    public void BuildConfiguration_ReadFromEnvironmentalVariable()
    {
        var sut = EswDevOpsSdk.BuildConfiguration(AssemblyDirectory);

        sut["PATH"].Should().NotBeNullOrEmpty();
    }