Skip to content

Commit 64c2f54

Browse files
#57 Support environment variables
1 parent 92bb7c9 commit 64c2f54

File tree

3 files changed

+10
-8
lines changed

3 files changed

+10
-8
lines changed
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
{
2-
"baseUrl": "{env:baseurl}"
2+
"baseUrl": "{env:url_prefix}/{env:url_suffix}"
33
}

src/Atata.Configuration.Json.Tests/EnvironmentVariableTests.cs

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,24 +6,26 @@ namespace Atata.Configuration.Json.Tests
66
{
77
public class EnvironmentVariableTests : TestFixture
88
{
9-
private const string VariableName = "baseurl";
9+
private const string Variable1Name = "url_prefix";
10+
11+
private const string Variable2Name = "url_suffix";
1012

1113
[SetUp]
1214
public void SetUp()
1315
{
14-
Environment.SetEnvironmentVariable(VariableName, null);
16+
Environment.SetEnvironmentVariable(Variable1Name, null);
1517
}
1618

1719
[Test]
1820
public void Found()
1921
{
20-
string variableValue = "https://example.org/";
21-
Environment.SetEnvironmentVariable(VariableName, variableValue, EnvironmentVariableTarget.Process);
22+
Environment.SetEnvironmentVariable(Variable1Name, "https://example.org", EnvironmentVariableTarget.Process);
23+
Environment.SetEnvironmentVariable(Variable2Name, "test", EnvironmentVariableTarget.Process);
2224

2325
AtataContextBuilder builder = AtataContext.Configure()
2426
.ApplyJsonConfig("Configs/EnvironmentVariables");
2527

26-
builder.BuildingContext.BaseUrl.Should().Be(variableValue);
28+
builder.BuildingContext.BaseUrl.Should().Be("https://example.org/test");
2729
}
2830

2931
[Test]
@@ -34,7 +36,7 @@ public void NotFound()
3436
var exception = Assert.Throws<ConfigurationException>(() =>
3537
builder.ApplyJsonConfig("Configs/EnvironmentVariables"));
3638

37-
exception.Message.Should().Contain(VariableName);
39+
exception.Message.Should().Contain(Variable1Name);
3840
}
3941
}
4042
}

src/Atata.Configuration.Json/JsonConfigFile.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ public static string ReadText(string filePath = null, string environmentAlias =
6262

6363
private static string ProcessJsonText(string jsonText)
6464
{
65-
Regex regex = new Regex(@"{env:.+}");
65+
Regex regex = new Regex(@"{env:\D[^}]*}");
6666

6767
return regex.Replace(jsonText, match =>
6868
{

0 commit comments

Comments
 (0)