Skip to content

Commit fef29e3

Browse files
committed
Move magic strings to constants. Logger now calls setExecutionEnvironment from powertoolsconfigurations. Update tests
1 parent 11c62bd commit fef29e3

File tree

8 files changed

+37
-25
lines changed

8 files changed

+37
-25
lines changed

libraries/src/AWS.Lambda.Powertools.Common/Core/Constants.cs

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,4 +80,14 @@ internal static class Constants
8080
/// Constant for LAMBDA_TASK_ROOT environment variable
8181
/// </summary>
8282
internal const string LambdaTaskRoot = "LAMBDA_TASK_ROOT";
83+
84+
/// <summary>
85+
/// Constant for AWS_EXECUTION_ENV environment variable
86+
/// </summary>
87+
internal const string AwsExecutionEnvironmentVariableName = "AWS_EXECUTION_ENV";
88+
89+
/// <summary>
90+
/// Constant for Powertools feature identifier fo AWS_EXECUTION_ENV environment variable
91+
/// </summary>
92+
internal const string FeatureContextIdentifier = "PT";
8393
}
Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,36 +1,37 @@
11
namespace AWS.Lambda.Powertools.Common;
22

33
/// <summary>
4-
///
4+
/// Interface for PowertoolsEnvironment
55
/// </summary>
66
public interface IPowertoolsEnvironment
77
{
88
/// <summary>
9-
///
9+
/// Get environment variable by variable name
1010
/// </summary>
1111
/// <param name="variableName"></param>
12-
/// <returns></returns>
12+
/// <returns>Environment variable</returns>
1313
string GetEnvironmentVariable(string variableName);
14+
1415
/// <summary>
15-
///
16+
/// Set environment variable
1617
/// </summary>
1718
/// <param name="variableName"></param>
18-
/// <param name="value"></param>
19+
/// <param name="value">Setting this to null will remove environment variable with that name</param>
1920
void SetEnvironmentVariable(string variableName, string value);
2021

2122
/// <summary>
22-
///
23+
/// Get the calling Type Assembly Name
2324
/// </summary>
2425
/// <param name="type"></param>
2526
/// <typeparam name="T"></typeparam>
26-
/// <returns></returns>
27+
/// <returns>Assembly Name</returns>
2728
string GetAssemblyName<T>(T type);
2829

2930
/// <summary>
30-
///
31+
/// Get the calling Type Assembly Version
3132
/// </summary>
3233
/// <param name="type"></param>
3334
/// <typeparam name="T"></typeparam>
34-
/// <returns></returns>
35+
/// <returns>Assembly Version in the Major.Minor.Build format</returns>
3536
string GetAssemblyVersion<T>(T type);
3637
}

libraries/src/AWS.Lambda.Powertools.Common/Core/SystemWrapper.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,7 @@ public void SetEnvironmentVariable(string variable, string value)
9393
/// <inheritdoc />
9494
public void SetExecutionEnvironment<T>(T type)
9595
{
96-
const string envName = "AWS_EXECUTION_ENV";
96+
const string envName = Constants.AwsExecutionEnvironmentVariableName;
9797

9898
var envValue = new StringBuilder();
9999

@@ -122,12 +122,12 @@ private string ParseAssemblyName(string assemblyName)
122122
try
123123
{
124124
var parsedName = assemblyName.Substring(assemblyName.LastIndexOf(".", StringComparison.Ordinal)+1);
125-
return $"PTFeature/{parsedName}";
125+
return $"{Constants.FeatureContextIdentifier}/{parsedName}";
126126
}
127127
catch
128128
{
129129
//NOOP
130130
}
131-
return $"PTFeature/{assemblyName}";
131+
return $"{Constants.FeatureContextIdentifier}/{assemblyName}";
132132
}
133133
}

libraries/src/AWS.Lambda.Powertools.Logging/Internal/PowertoolsLogger.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ public PowertoolsLogger(
7777
(_name, _powertoolsConfigurations, _systemWrapper, _getCurrentConfig) = (name,
7878
powertoolsConfigurations, systemWrapper, getCurrentConfig);
7979

80-
systemWrapper.SetExecutionEnvironment(this);
80+
_powertoolsConfigurations.SetExecutionEnvironment(this);
8181
}
8282

8383
/// <summary>

libraries/tests/AWS.Lambda.Powertools.Common.Tests/Core/PowertoolsEnvironmentTest.cs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ public void Set_Execution_Environment()
1616
systemWrapper.SetExecutionEnvironment(this);
1717

1818
// Assert
19-
Assert.Equal("PTFeature/Fake/1.0.0", systemWrapper.GetEnvironmentVariable("AWS_EXECUTION_ENV"));
19+
Assert.Equal($"{Constants.FeatureContextIdentifier}/Fake/1.0.0", systemWrapper.GetEnvironmentVariable("AWS_EXECUTION_ENV"));
2020
}
2121

2222
[Fact]
@@ -31,7 +31,7 @@ public void Set_Execution_Environment_WhenEnvironmentHasValue()
3131
systemWrapper.SetExecutionEnvironment(this);
3232

3333
// Assert
34-
Assert.Equal("ExistingValuesInUserAgent PTFeature/Fake/1.0.0", systemWrapper.GetEnvironmentVariable("AWS_EXECUTION_ENV"));
34+
Assert.Equal($"ExistingValuesInUserAgent {Constants.FeatureContextIdentifier}/Fake/1.0.0", systemWrapper.GetEnvironmentVariable("AWS_EXECUTION_ENV"));
3535
}
3636

3737
[Fact]
@@ -45,7 +45,7 @@ public void Set_Multiple_Execution_Environment()
4545
systemWrapper.SetExecutionEnvironment(this);
4646

4747
// Assert
48-
Assert.Equal("PTFeature/Fake/1.0.0 PTFeature/Fake/1.0.0", systemWrapper.GetEnvironmentVariable("AWS_EXECUTION_ENV"));
48+
Assert.Equal($"{Constants.FeatureContextIdentifier}/Fake/1.0.0 {Constants.FeatureContextIdentifier}/Fake/1.0.0", systemWrapper.GetEnvironmentVariable("AWS_EXECUTION_ENV"));
4949
}
5050

5151
[Fact]
@@ -58,7 +58,7 @@ public void Set_Execution_Real_Environment()
5858
systemWrapper.SetExecutionEnvironment(this);
5959

6060
// Assert
61-
Assert.Equal("PTFeature/Tests/1.0.0", systemWrapper.GetEnvironmentVariable("AWS_EXECUTION_ENV"));
61+
Assert.Equal($"{Constants.FeatureContextIdentifier}/Tests/1.0.0", systemWrapper.GetEnvironmentVariable("AWS_EXECUTION_ENV"));
6262
}
6363

6464
[Fact]
@@ -72,7 +72,7 @@ public void Set_Execution_Real_Environment_Multiple()
7272
systemWrapper.SetExecutionEnvironment(this);
7373

7474
// Assert
75-
Assert.Equal("PTFeature/Tests/1.0.0 PTFeature/Tests/1.0.0", systemWrapper.GetEnvironmentVariable("AWS_EXECUTION_ENV"));
75+
Assert.Equal($"{Constants.FeatureContextIdentifier}/Tests/1.0.0 {Constants.FeatureContextIdentifier}/Tests/1.0.0", systemWrapper.GetEnvironmentVariable("AWS_EXECUTION_ENV"));
7676
}
7777

7878
public void Dispose()

libraries/tests/AWS.Lambda.Powertools.Logging.Tests/PowertoolsLoggerTest.cs

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1229,15 +1229,16 @@ public void Log_Set_Execution_Environment_Context()
12291229
var assemblyName = "AWS.Lambda.Powertools.Logger";
12301230
var assemblyVersion = "1.0.0";
12311231

1232-
var configurations = new Mock<IPowertoolsConfigurations>();
1233-
12341232
var env = new Mock<IPowertoolsEnvironment>();
12351233
env.Setup(x => x.GetAssemblyName(It.IsAny<PowertoolsLogger>())).Returns(assemblyName);
12361234
env.Setup(x => x.GetAssemblyVersion(It.IsAny<PowertoolsLogger>())).Returns(assemblyVersion);
12371235

1238-
var systemWrapper = new SystemWrapper(env.Object);
1236+
// Act
1237+
1238+
var wrapper = new SystemWrapper(env.Object);
1239+
var conf = new PowertoolsConfigurations(wrapper);
12391240

1240-
var logger = new PowertoolsLogger(loggerName,configurations.Object, systemWrapper, () =>
1241+
var logger = new PowertoolsLogger(loggerName,conf, wrapper, () =>
12411242
new LoggerConfiguration
12421243
{
12431244
Service = null,
@@ -1248,7 +1249,7 @@ public void Log_Set_Execution_Environment_Context()
12481249
// Assert
12491250
env.Verify(v =>
12501251
v.SetEnvironmentVariable(
1251-
"AWS_EXECUTION_ENV", $"PTFeature/Logger/{assemblyVersion}"
1252+
"AWS_EXECUTION_ENV", $"{Constants.FeatureContextIdentifier}/Logger/{assemblyVersion}"
12521253
), Times.Once);
12531254

12541255
env.Verify(v =>

libraries/tests/AWS.Lambda.Powertools.Metrics.Tests/MetricsTests.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ public void Metrics_Set_Execution_Environment_Context()
2525
// Assert
2626
env.Verify(v =>
2727
v.SetEnvironmentVariable(
28-
"AWS_EXECUTION_ENV", $"PTFeature/Metrics/{assemblyVersion}"
28+
"AWS_EXECUTION_ENV", $"{Constants.FeatureContextIdentifier}/Metrics/{assemblyVersion}"
2929
), Times.Once);
3030

3131
env.Verify(v =>

libraries/tests/AWS.Lambda.Powertools.Tracing.Tests/XRayRecorderTests.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ public void Tracing_Set_Execution_Environment_Context()
3030
// Assert
3131
env.Verify(v =>
3232
v.SetEnvironmentVariable(
33-
"AWS_EXECUTION_ENV", $"PTFeature/Tracing/{assemblyVersion}"
33+
"AWS_EXECUTION_ENV", $"{Constants.FeatureContextIdentifier}/Tracing/{assemblyVersion}"
3434
), Times.Once);
3535

3636
env.Verify(v =>

0 commit comments

Comments
 (0)