コード例 #1
0
ファイル: ScriptTest.cs プロジェクト: 3F/vsCommandEvent
        public void containerTest1()
        {
            var uvar        = new UserVariable();
            Script target   = new Script(env, uvar);

            Assert.AreEqual("ne]", target.parse("#[var name = value\nli]ne]"));
            Assert.AreEqual(1, uvar.Variables.Count());
            Assert.AreEqual("value\nli", uvar.get("name"));
        }
コード例 #2
0
        public void compositeTest1()
        {
            IUserVariable uv = new UserVariable();
            uv.set("test", null, "(data");

            ConditionComponent target = new ConditionComponent((new Mock<IEnvironment>()).Object, uv);
            Assert.AreEqual("no", target.parse("[( #[var test] ~= \"(data && 1 < 2\" ){yes}else{no}]"));
            Assert.AreEqual("yes", target.parse("[( #[var test] ~= \"(data\" && 1 < 2 ){yes}else{no}]"));
        }
コード例 #3
0
ファイル: ScriptTest.cs プロジェクト: 3F/vsCommandEvent
        public void containerTest2()
        {
            var uvar = new UserVariable();
            Script target = new Script(env, uvar);

            Assert.AreEqual(String.Empty, target.parse("#[var name = <#data>value\nli]ne</#data>]"));
            Assert.AreEqual(1, uvar.Variables.Count());
            Assert.AreEqual("value\nli]ne", uvar.get("name"));
        }
コード例 #4
0
ファイル: UserVariableTest.cs プロジェクト: 3F/vsCommandEvent
        public void evaluateTest3()
        {
            UserVariable target = new UserVariable();
            string name = "name";
            string project = "project";

            target.set(name, project, "val");
            target.evaluate(name, project, null, true);
        }
コード例 #5
0
ファイル: TryComponentTest.cs プロジェクト: 3F/vsCommandEvent
        public void catchTest1()
        {
            var uvar    = new UserVariable();
            var target  = new Script(new StubEnv(), uvar);

            target.parse("#[try{ $(test = '123') }catch{ $(test2 = '456') }]");

            Assert.AreEqual(1, uvar.Variables.Count());
            Assert.AreEqual("123", uvar.get("test", null));
        }
コード例 #6
0
ファイル: TryComponentTest.cs プロジェクト: 3F/vsCommandEvent
        public void catchTest2()
        {
            var uvar    = new UserVariable();
            var target  = new Script(new StubEnv(), uvar);

            Assert.AreEqual(0, uvar.Variables.Count());
            target.parse("#[try{ #[notrealcomponentToError]  $(test = '123') }catch{ $(test2 = '456') }]");

            Assert.AreEqual(1, uvar.Variables.Count());
            Assert.AreEqual("456", uvar.get("test2", null));
        }
コード例 #7
0
ファイル: ScriptTest.cs プロジェクト: 3F/vsCommandEvent
        public void containerTest4()
        {
            var uvar        = new UserVariable();
            Script target   = new Script(env, uvar);

            uvar.set("mx", null, "<#data>value\nli]ne</#data>");
            uvar.evaluate("mx", null, new EvaluatorBlank(), true);

            Assert.AreEqual(String.Empty, target.parse("#[var name = <#data>#[var mx]|value\nli]ne</#data>]"));
            Assert.AreEqual(2, uvar.Variables.Count());
            Assert.AreEqual("value\nli]ne|value\nli]ne", uvar.get("name"));
        }
コード例 #8
0
ファイル: BoxComponentTest.cs プロジェクト: 3F/vsCommandEvent
        public void iterateTest4()
        {
            var uvar    = new UserVariable();
            var target  = new Script(new StubEnv(), uvar);

            Assert.AreEqual("ab!ab!ab!", noSpaces(@"
                                                #[Box iterate(i = 1; $(i) < 4; i = $([MSBuild]::Add($(i), 1))):
                                                    ab!
                                                ]", target));

            Assert.AreEqual(1, uvar.Variables.Count());
            Assert.AreEqual("4", uvar.get("i", null));
        }
コード例 #9
0
ファイル: TryComponentTest.cs プロジェクト: 3F/vsCommandEvent
        public void catchTest3()
        {
            var uvar    = new UserVariable();
            var target  = new Script(new StubEnv(), uvar);

            Assert.AreEqual(0, uvar.Variables.Count());
            target.parse(@"
                            #[( false ){

                                #[try
                                {
                                     #[notrealcomponentToError]
                                }
                                catch(err, msg)
                                {
                                    $(test1 = '123')
                                }]

                            }
                            else{

                                #[try
                                {
                                     #[notrealcomponentToError]
                                }
                                catch(err, msg)
                                {
                                    $(test2 = '456')
                                    $(exErr = $(err))
                                    $(exMsg = $(msg))
                                }]

                            }] ");

            Assert.AreEqual(3, uvar.Variables.Count());
            Assert.AreEqual(null, uvar.get("test1", null));
            Assert.AreEqual("456", uvar.get("test2", null));
            Assert.AreEqual(true, !string.IsNullOrWhiteSpace(uvar.get("exErr", null)));
            Assert.AreEqual(true, !string.IsNullOrWhiteSpace(uvar.get("exMsg", null)));
            Assert.AreEqual(null, uvar.get("err", null));
            Assert.AreEqual(null, uvar.get("msg", null));
        }
コード例 #10
0
ファイル: ScriptTest.cs プロジェクト: 3F/vsCommandEvent
        public void parseMSBuildUnloopingTest2()
        {
            var env     = new StubEnv();
            var uvar    = new UserVariable();
            var msbuild = new vsCE.MSBuild.Parser(env, uvar);
            var sbe     = new Script(env, uvar);

            msbuild.parse(sbe.parse("#[var p1 = $$(p4)]#[var p2 = $$(p3)]#[var p3 = $$(p1)]#[var p4 = $(p2)]", true));
        }
コード例 #11
0
ファイル: ScriptTest.cs プロジェクト: 3F/vsCommandEvent
        public void containerTest9()
        {
            var uvar = new UserVariable();
            Script target = new Script(env, uvar);

            Assert.AreEqual("test - cc", target.parse("#[var sres = <#data>Data1\n\nEnd</#data>]test - cc#[var sres2 = <#data>Data2\n\nEnd</#data>]"));
            Assert.AreEqual(2, uvar.Variables.Count());
            Assert.AreEqual("Data1\n\nEnd", uvar.get("sres"));
            Assert.AreEqual("Data2\n\nEnd", uvar.get("sres2"));
        }
コード例 #12
0
ファイル: ScriptTest.cs プロジェクト: 3F/vsCommandEvent
        public void containerTest7()
        {
            var uvar = new UserVariable();
            Script target = new Script(env, uvar);

            Assert.AreEqual("#[var name = left [box1 right]", target.parse("#[var name = left [box1 right]"));
            Assert.AreEqual(0, uvar.Variables.Count());

            Assert.AreEqual(String.Empty, target.parse("#[var name = \"left [box1 right\"]"));
            Assert.AreEqual(1, uvar.Variables.Count());
            Assert.AreEqual("\"left [box1 right\"", uvar.get("name"));
        }
コード例 #13
0
ファイル: UserVariableTest.cs プロジェクト: 3F/vsCommandEvent
 public void isUnevaluatedTest2()
 {
     UserVariable target = new UserVariable();
     target.isUnevaluated("name");
 }
コード例 #14
0
        public void disclosureTest4()
        {
            IUserVariable uv = new UserVariable();
            uv.set("test", null, "data(str)");
            uv.set("test2", null, "true");
            uv.set("test3", null, "4");

            ConditionComponent target = new ConditionComponent((new Mock<IEnvironment>()).Object, uv);
            target.PostProcessingMSBuild = true;

            Assert.AreEqual("yes", target.parse("[(  $(test) == \"data(str)\" ){yes}else{no}]"));
            Assert.AreEqual("yes", target.parse("[(  $(test) == \"data(str)\" && 1 < 2){yes}else{no}]"));
            Assert.AreEqual("yes", target.parse("[(  #[var test] == \"data(str)\" && #[var test2] || #[var test3] == 4){yes}else{no}]"));
            Assert.AreEqual("yes", target.parse("[(  #[var test] == \"data(str)\" && !#[var test2] || #[var test3] == 4){yes}else{no}]"));
            Assert.AreEqual("no", target.parse("[(  #[var test] == \"data(str)\" && !#[var test2] && #[var test3] == 4){yes}else{no}]"));
        }
コード例 #15
0
ファイル: UserVariableTest.cs プロジェクト: 3F/vsCommandEvent
        public void setTest6()
        {
            UserVariable target = new UserVariable();
            target.set("name", "project", null);

            Assert.AreEqual(1, target.Variables.Count());
            foreach(TUserVariable v in target.Variables) {
                Assert.AreEqual(v.unevaluated, String.Empty);
            }
        }
コード例 #16
0
ファイル: ScriptTest.cs プロジェクト: 3F/vsCommandEvent
        public void parseMSBuildUnloopingTest6()
        {
            var env     = new StubEnv();
            var uvar    = new UserVariable();
            var msbuild = new vsCE.MSBuild.Parser(env, uvar);
            var sbe     = new Script(env, uvar);

            string data = "#[var test = #[($(test) == \""+ vsCE.MSBuild.Parser.PROP_VALUE_DEFAULT + "\"){0}else{$(test)}]]#[var test]";
            Assert.AreEqual("0", msbuild.parse(sbe.parse(data, true)));
            Assert.AreEqual("0", msbuild.parse(sbe.parse(data, true)));

            uvar.set("test", null, "7");
            uvar.evaluate("test", null, new EvaluatorBlank(), true);
            Assert.AreEqual("7", msbuild.parse(sbe.parse(data, true)));
        }
コード例 #17
0
ファイル: UserVariableTest.cs プロジェクト: 3F/vsCommandEvent
        public void setTest3()
        {
            UserVariable target = new UserVariable();
            target.set("name", null, "unevaluated");
            Assert.AreEqual(1, target.Variables.Count());

            foreach(TUserVariable v in target.Variables) {
                Assert.AreEqual(v.evaluated, null);
                Assert.AreEqual(v.ident, "name");
                Assert.AreEqual(v.persistence, false);
                Assert.AreEqual(v.prev, new TUserVariable());
                Assert.AreEqual(v.status, TUserVariable.StatusType.Unevaluated);
                Assert.AreEqual(v.unevaluated, "unevaluated");
            }
        }
コード例 #18
0
ファイル: UserVariableTest.cs プロジェクト: 3F/vsCommandEvent
 public void DefinitionsTest()
 {
     UserVariable target = new UserVariable();
     Assert.AreEqual(target.Definitions.Count(), 0);
 }
コード例 #19
0
ファイル: UserVariableTest.cs プロジェクト: 3F/vsCommandEvent
 public void evaluateTest2()
 {
     UserVariable target = new UserVariable();
     target.evaluate("name", new Evaluator1(), true);
 }
コード例 #20
0
ファイル: UserVariableTest.cs プロジェクト: 3F/vsCommandEvent
 public void VariablesTest()
 {
     UserVariable target = new UserVariable();
     Assert.AreEqual(target.Variables.Count(), 0);
 }
コード例 #21
0
ファイル: UserVariableTest.cs プロジェクト: 3F/vsCommandEvent
        public void unsetTest3()
        {
            UserVariable target = new UserVariable();
            target.set("name", null, "unevaluated");
            target.set("name2", null, "unevaluated2");

            target.unset("name");
            Assert.AreEqual(1, target.Definitions.Count());

            foreach(string v in target.Definitions) {
                Assert.AreEqual(v, "name2");
            }
        }
コード例 #22
0
ファイル: UserVariableTest.cs プロジェクト: 3F/vsCommandEvent
 public void unsetAllTest()
 {
     UserVariable target = new UserVariable();
     target.set("name", null, "unevaluated");
     target.unsetAll();
     Assert.AreEqual(target.Variables.Count(), 0);
 }
コード例 #23
0
ファイル: ScriptTest.cs プロジェクト: 3F/vsCommandEvent
        public void parseMSBuildUnloopingTest4()
        {
            var env     = new StubEnv();
            var uvar    = new UserVariable();
            var msbuild = new vsCE.MSBuild.Parser(env, uvar);
            var sbe     = new Script(env, uvar);

            msbuild.parse(sbe.parse("#[var p2 = $$(p1) to $$(p8), and new ($$(p7.Replace('1', '2'))) s$$(p9)]#[var p6 = $$(p2)]#[var p7 = $$(p5)]#[var p5 = $(p6)]", true));
            Assert.IsTrue(true); // no problems for stack & heap
        }
コード例 #24
0
ファイル: UserVariableTest.cs プロジェクト: 3F/vsCommandEvent
 public void isValidNameTest()
 {
     UserVariable target = new UserVariable();
     Assert.AreEqual(true, target.isValidName("name"));
     Assert.AreEqual(true, target.isValidName("n"));
     Assert.AreEqual(true, target.isValidName("name0"));
     Assert.AreEqual(true, target.isValidName("name_n"));
     Assert.AreEqual(false, target.isValidName("0name"));
     Assert.AreEqual(false, target.isValidName(""));
     Assert.AreEqual(false, target.isValidName("na%me"));
     Assert.AreEqual(false, target.isValidName("name "));
 }
コード例 #25
0
ファイル: ScriptTest.cs プロジェクト: 3F/vsCommandEvent
        public void parseMSBuildUnloopingTest5()
        {
            var env     = new StubEnv();
            var uvar    = new UserVariable();
            var msbuild = new vsCE.MSBuild.Parser(env, uvar);
            var sbe     = new Script(env, uvar);

            msbuild.parse(sbe.parse("#[var test = $$(test)]#[var test = 1 $(test) 2]", true));

            uvar.unsetAll();
            msbuild.parse(sbe.parse("#[var test = $$(test)]#[var test = 1 $(test.Replace('1', '2')) 2]", true));

            uvar.unsetAll();
            msbuild.parse(sbe.parse("#[var test = $(test)]#[var test = 1 $(test) 2]", true));
        }
コード例 #26
0
        public void disclosureTest1()
        {
            IUserVariable uv = new UserVariable();
            uv.set("test", null, "(data");
            uv.set("test2", null, "data)");
            uv.set("test3", null, "true");

            ConditionComponent target = new ConditionComponent((new Mock<IEnvironment>()).Object, uv);
            Assert.AreEqual("yes", target.parse("[( #[var test] ~= \"(data\"){yes}else{no}]"));
            Assert.AreEqual("no", target.parse("[( #[var test2] ~= \"(data\"){yes}else{no}]"));
            Assert.AreEqual("yes", target.parse("[( (#[var test3]) ){yes}else{no}]"));
            Assert.AreEqual("yes", target.parse("[( 1 < 2 && 2 == 2 || (((2 >= 2) && true)) ){yes}else{no}]"));
        }
コード例 #27
0
ファイル: UserVariableTest.cs プロジェクト: 3F/vsCommandEvent
        public void evaluateTest4()
        {
            UserVariable target = new UserVariable();
            string name = "name";
            string project = "project";

            target.set(name, project, "val");
            target.evaluate(name, project, new Evaluator1(), true);
            Assert.AreEqual("[E1:val]", target.get(name, project));
        }
コード例 #28
0
ファイル: UserVariableTest.cs プロジェクト: 3F/vsCommandEvent
 public void setTest5()
 {
     UserVariable target = new UserVariable();
     target.set("na%me", "project", "unevaluated");
 }
コード例 #29
0
        public void compositeTest7()
        {
            IUserVariable uv = new UserVariable();
            uv.set("test", null, "data1 && data|2");
            uv.set("test2", null, "data1 || data&2");

            ConditionComponent target = new ConditionComponent((new Mock<IEnvironment>()).Object, uv);
            Assert.AreEqual("yes", target.parse("[( #[var test] == \"data1 && data|2\" ){yes}else{no}]"));
            Assert.AreEqual("yes", target.parse("[( #[var test2] == \"data1 || data&2\" ){yes}else{no}]"));
        }
コード例 #30
0
ファイル: UserVariableTest.cs プロジェクト: 3F/vsCommandEvent
 public void isUnevaluatedTest4()
 {
     UserVariable target = new UserVariable();
     target.set("name", "project", "val");
     Assert.AreEqual(true, target.isUnevaluated("name", "project"));
 }