ArgumentOrEnvironmentVariable overload without environment name prefix.

This commit is contained in:
Adam Patridge 2017-07-15 22:22:16 -06:00
parent d37f5b2ed1
commit 9ca4840b42
2 changed files with 25 additions and 0 deletions

View file

@ -108,6 +108,21 @@ namespace Cake.ArgumentHelpers.Tests
Assert.AreEqual(expected, actual, "Didn't find Environment variable without prefix.");
}
[Test]
public void NullArgumentAndTrueEnvironmentNoPrefixOverload_ReturnsTrue()
{
var testKey = "someVariable";
var testKeyEnvironmentPrefix = (string)null;
bool? testArgumentValue = null;
bool? testEnvironmentValue = true;
SetupVariables(testKey, testKeyEnvironmentPrefix, testArgumentValue, testEnvironmentValue);
var expected = true;
var actual = cakeContextMock.Object.ArgumentOrEnvironmentVariable(testKey, true);
Assert.AreEqual(expected, actual, "Didn't find Environment variable without prefix.");
}
[Test]
public void TrueArgumentAndTrueEnvironment_ReturnsTrue()
{
var testKey = "someVariable";

View file

@ -17,5 +17,15 @@ namespace Cake.ArgumentHelpers
{
return ArgumentAliases.Argument(context, name, EnvironmentAliases.EnvironmentVariable(context, (environmentNamePrefix ?? "") + name) ?? defaultValue.ToString()).Equals("true", StringComparison.OrdinalIgnoreCase);
}
/// <summary>
/// Get a bool variable from various script inputs: first via Argument, then falling back on EnvironmentVariable, finally falling back on a default.
/// </summary>
/// <returns>Value found or default, first checked in command-line argument, then environment variable.</returns>
[CakeMethodAlias]
public static bool ArgumentOrEnvironmentVariable(this ICakeContext context, string name, bool defaultValue)
{
return context.ArgumentOrEnvironmentVariable(name, null, defaultValue);
}
}
}