Esempio n. 1
0
        public void CannotExpand()
        {
            var shell  = new ParameterExpansion();
            var output = shell.Expand("-$X-");

            Assert.Equal("--", output);
        }
Esempio n. 2
0
        public void EnvironmentVariable()
        {
            var shell  = new ParameterExpansion();
            var output = shell.Expand("$USERNAME");

            Assert.Equal(Environment.UserName, output);
        }
Esempio n. 3
0
        public void ComplexExpandAlternate4()
        {
            var shell = new ParameterExpansion();

            shell.Parameters.Add("var1", "X");
            Assert.Equal("xyz", shell.Expand("${var1:+xyz}"));
        }
Esempio n. 4
0
        public void ComplexExpandDefaultWithSet1()
        {
            var shell = new ParameterExpansion();

            Assert.Equal("abc", shell.Expand("${var=abc}"));
            Assert.Equal("abc", shell.Expand("${var=xyz}"));
        }
Esempio n. 5
0
        public void Empty()
        {
            var shell  = new ParameterExpansion();
            var output = shell.Expand("");

            Assert.Equal("", output);
        }
Esempio n. 6
0
        public void ComplexExpandDefault8()
        {
            var shell  = new ParameterExpansion();
            var output = shell.Expand("${VAR1:-${VAR2-3}X}");

            Assert.Equal("3X", output);
        }
Esempio n. 7
0
        public void ComplexExpandDefault1()
        {
            var shell  = new ParameterExpansion();
            var output = shell.Expand("${VAR1-default}");

            Assert.Equal("default", output);
        }
Esempio n. 8
0
        public void OnlyText()
        {
            var shell  = new ParameterExpansion();
            var output = shell.Expand("Test");

            Assert.Equal("Test", output);
        }
Esempio n. 9
0
        public void LoneDollar3()
        {
            var shell  = new ParameterExpansion();
            var output = shell.Expand("$X$");

            Assert.Equal("$", output);
        }
Esempio n. 10
0
        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}"));
        }
Esempio n. 11
0
        public void EnvironmentVariableDisable()
        {
            var shell = new ParameterExpansion()
            {
                UseEnvironmentVariables = false
            };
            var output = shell.Expand("$USERNAME");

            Assert.Equal("", output);
        }
Esempio n. 12
0
        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);
        }
Esempio n. 13
0
        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);
        }
Esempio n. 14
0
        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);
        }
Esempio n. 15
0
        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);
        }
Esempio n. 16
0
        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);
        }
Esempio n. 17
0
        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);
        }
Esempio n. 18
0
        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);
        }
Esempio n. 19
0
        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);
        }
Esempio n. 20
0
        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);
        }
Esempio n. 21
0
        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);
        }
Esempio n. 22
0
        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);
        }
Esempio n. 23
0
        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);
        }
Esempio n. 24
0
        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);
        }
Esempio n. 25
0
        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);
        }
Esempio n. 26
0
        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);
        }
Esempio n. 27
0
        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);
        }
Esempio n. 28
0
        public void ComplexExpandAlternate1()
        {
            var shell = new ParameterExpansion();

            Assert.Equal("", shell.Expand("${var1+xyz}"));
        }