public void CannotExpand() { var shell = new ParameterExpansion(); var output = shell.Expand("-$X-"); Assert.Equal("--", output); }
public void EnvironmentVariable() { var shell = new ParameterExpansion(); var output = shell.Expand("$USERNAME"); Assert.Equal(Environment.UserName, output); }
public void ComplexExpandAlternate4() { var shell = new ParameterExpansion(); shell.Parameters.Add("var1", "X"); Assert.Equal("xyz", shell.Expand("${var1:+xyz}")); }
public void ComplexExpandDefaultWithSet1() { var shell = new ParameterExpansion(); Assert.Equal("abc", shell.Expand("${var=abc}")); Assert.Equal("abc", shell.Expand("${var=xyz}")); }
public void Empty() { var shell = new ParameterExpansion(); var output = shell.Expand(""); Assert.Equal("", output); }
public void ComplexExpandDefault8() { var shell = new ParameterExpansion(); var output = shell.Expand("${VAR1:-${VAR2-3}X}"); Assert.Equal("3X", output); }
public void ComplexExpandDefault1() { var shell = new ParameterExpansion(); var output = shell.Expand("${VAR1-default}"); Assert.Equal("default", output); }
public void OnlyText() { var shell = new ParameterExpansion(); var output = shell.Expand("Test"); Assert.Equal("Test", output); }
public void LoneDollar3() { var shell = new ParameterExpansion(); var output = shell.Expand("$X$"); Assert.Equal("$", output); }
public void ComplexExpandDefaultWithSet3() { var shell = new ParameterExpansion(); shell.Parameters.Add("var", ""); Assert.Equal("abc", shell.Expand("${var:=abc}")); Assert.Equal("abc", shell.Expand("${var:=xyz}")); }
public void EnvironmentVariableDisable() { var shell = new ParameterExpansion() { UseEnvironmentVariables = false }; var output = shell.Expand("$USERNAME"); Assert.Equal("", output); }
public void EnvironmentVariableOverwrite() { var shell = new ParameterExpansion(); shell.RetrieveParameter += delegate(object sender, ParameterExpansionEventArgs e) { e.Value = (e.Name == "USERNAME") ? "--" : null; }; var output = shell.Expand("$USERNAME"); Assert.Equal("--", output); }
public void ComplexExpandUnfinishedExtra() { var shell = new ParameterExpansion(); shell.RetrieveParameter += delegate(object sender, ParameterExpansionEventArgs e) { e.Value = (e.Name == "VAR1") ? "test" : null; }; var output = shell.Expand("${VAR1:}"); Assert.Equal("test", output); }
public void ComplexExpandDefault4() { var shell = new ParameterExpansion(); shell.RetrieveParameter += delegate(object sender, ParameterExpansionEventArgs e) { e.Value = (e.Name == "VAR1") ? "" : null; }; var output = shell.Expand("${VAR1:-default}"); Assert.Equal("default", output); }
public void SimpleExpand3() { var shell = new ParameterExpansion(); shell.RetrieveParameter += delegate(object sender, ParameterExpansionEventArgs e) { e.Value = e.Name.ToLowerInvariant(); }; var output = shell.Expand("$X$Y$Z"); Assert.Equal("xyz", output); }
public void SimpleExpand2() { var shell = new ParameterExpansion(); shell.RetrieveParameter += delegate(object sender, ParameterExpansionEventArgs e) { e.Value = (e.Name == "X") ? "Y" : null; }; var output = shell.Expand("-$X-"); Assert.Equal("-Y-", output); }
public void SpecialChars() { var shell = new ParameterExpansion(); shell.RetrieveParameter += delegate(object sender, ParameterExpansionEventArgs e) { e.Value = (e.Name == "X") ? "\n" : null; }; var output = shell.Expand("\t$X\r\0"); Assert.Equal("\t\n\r\0", output); }
public void ComplexExpandDefault6() { var shell = new ParameterExpansion(); shell.RetrieveParameter += delegate(object sender, ParameterExpansionEventArgs e) { e.Value = (e.Name) switch { "VAR2" => "2", _ => null, }; }; var output = shell.Expand("${VAR1:-${VAR2}}"); Assert.Equal("2", output); }
public void Lowercase2() { var shell = new ParameterExpansion(); shell.RetrieveParameter += delegate(object sender, ParameterExpansionEventArgs e) { e.Value = (e.Name) switch { "X" => "TESTING", _ => null, }; }; var output = shell.Expand("${X,,}"); Assert.Equal("testing", output); }
public void Substring9() { var shell = new ParameterExpansion(); shell.RetrieveParameter += delegate(object sender, ParameterExpansionEventArgs e) { e.Value = (e.Name) switch { "string" => "01234567890abcdefgh", _ => null, }; }; var output = shell.Expand("${string:18}"); Assert.Equal("h", output); }
public void SubstringOutOfRange4() { var shell = new ParameterExpansion(); shell.RetrieveParameter += delegate(object sender, ParameterExpansionEventArgs e) { e.Value = (e.Name) switch { "string" => "AB", _ => null, }; }; var output = shell.Expand("${string:0:3}"); Assert.Equal("AB", output); }
public void OperatorLowercase() { var shell = new ParameterExpansion(); shell.RetrieveParameter += delegate(object sender, ParameterExpansionEventArgs e) { e.Value = (e.Name) switch { "X" => "valuE", _ => null, }; }; var output = shell.Expand("${X@L}"); Assert.Equal("value", output); }
public void ExpandVariableGetsCached() { var retrieveCount = 0; var shell = new ParameterExpansion(); shell.RetrieveParameter += delegate(object sender, ParameterExpansionEventArgs e) { e.Value = (e.Name == "X") ? "Y" : null; retrieveCount += 1; }; var output = shell.Expand("A${X}${X}B"); Assert.Equal("AYYB", output); Assert.Equal(1, retrieveCount); }
public void ParameterLength() { var shell = new ParameterExpansion(); shell.RetrieveParameter += delegate(object sender, ParameterExpansionEventArgs e) { e.Value = (e.Name) switch { "VAR" => "Value", _ => null, }; }; var output = shell.Expand("${#VAR}"); Assert.Equal("5", output); }
public void IndirectionNotFound() { var shell = new ParameterExpansion(); shell.RetrieveParameter += delegate(object sender, ParameterExpansionEventArgs e) { e.Value = (e.Name) switch { "IND" => "VAR", _ => null, }; }; var output = shell.Expand("${!IND}"); Assert.Equal("", output); }
public void WithoutAutoAdd() { var retrieveCount = 0; var shell = new ParameterExpansion() { AutoAddParameters = false }; shell.RetrieveParameter += delegate(object sender, ParameterExpansionEventArgs e) { retrieveCount += 1; e.Value = (e.Name) switch { "X" => retrieveCount.ToString(CultureInfo.InvariantCulture), _ => null, }; }; var output = shell.Expand("${X}${X}${X}"); Assert.Equal("123", output); Assert.Equal(3, retrieveCount); }
public void ComplexWithAutoAdd() { var retrieveCount = 0; var shell = new ParameterExpansion() { AutoAddParameters = true }; shell.RetrieveParameter += delegate(object sender, ParameterExpansionEventArgs e) { retrieveCount += 1; e.Value = (e.Name) switch { "X" => retrieveCount.ToString(CultureInfo.InvariantCulture), "Z" => "Z", _ => null, }; }; var output = shell.Expand("${UPS1:-${X}}${UPS2:-${X}}$X$X$Z"); Assert.Equal("1111Z", output); Assert.Equal(4, retrieveCount); }
public void ComplexExpandAlternate1() { var shell = new ParameterExpansion(); Assert.Equal("", shell.Expand("${var1+xyz}")); }