public void UsingDefaultCtor_InitializeWithEnvVarSet_PropertiesExistWithValues()
    {
        // Arrange
        Array.ForEach(EnvironmentDetailsTelemetryInitializer.RequiredEnvironmentVariables, n => Environment.SetEnvironmentVariable(n, "foo"));
        var ti = new EnvironmentDetailsTelemetryInitializer(); // ensure it pulls latest env var values

        // Act
        ti.Initialize(mockTelemetry.Object);

        // Assert
        Assert.Equal(context.GlobalProperties.Keys.OrderBy(n => n), EnvironmentDetailsTelemetryInitializer.RequiredEnvironmentVariables.Select(s => $"esw-{s}").OrderBy(n => n));
        Assert.All(context.GlobalProperties, p => Assert.Equal("foo", p.Value));
    }
    public void UsingConfigurationCtor_InitializeWithNoEnvVarSet_PropertiesExistWithNullValues()
    {
        // Arrange
        var builder = new ConfigurationBuilder();
        var ti      = new EnvironmentDetailsTelemetryInitializer(builder.Build());

        // Act
        ti.Initialize(mockTelemetry.Object);

        // Assert
        Assert.Equal(context.GlobalProperties.Keys.OrderBy(n => n), EnvironmentDetailsTelemetryInitializer.RequiredEnvironmentVariables.Select(s => $"esw-{s}").OrderBy(n => n));
        Assert.All(context.GlobalProperties, p => Assert.Null(p.Value));
    }
    public void UsingDefaultCtor_InitializeWithNoEnvVarSet_PropertiesExistWithNullValues()
    {
        // Arrange
        Array.ForEach(EnvironmentDetailsTelemetryInitializer.RequiredEnvironmentVariables, n => Environment.SetEnvironmentVariable(n, null)); // ensure no hangover from previous tests
        var ti = new EnvironmentDetailsTelemetryInitializer();

        // Act
        ti.Initialize(mockTelemetry.Object);

        // Assert
        Assert.Equal(context.GlobalProperties.Keys.OrderBy(n => n), EnvironmentDetailsTelemetryInitializer.RequiredEnvironmentVariables.Select(s => $"esw-{s}").OrderBy(n => n));
        Assert.All(context.GlobalProperties, p => Assert.Null(p.Value));
    }