예제 #1
0
파일: CallTest.cs 프로젝트: RoastBoy/nant
        public void Test_CallDependencies() {
            // create new listener that allows us to track build events
            TestBuildListener listener = new TestBuildListener();

            // set-up build file
            string _xml = @"
                    <project>
                        <target name='one' depends='two'>
                            <echo message='one--'/>
                        </target>
                        <target name='two'>
                            <echo message='two--'/>
                        </target>
                        <call target='one' />
                    </project>";

            // run the build
            string result = RunBuild(_xml, listener);

            // check whether 'one' target has been executed once
            Assert.AreEqual(1, listener.GetTargetExecutionCount("one"), "'one' target was not called." + Environment.NewLine + result);

            // check whether 'two' target has been executed once
            Assert.AreEqual(1, listener.GetTargetExecutionCount("two"), "'two' target was not called." + Environment.NewLine + result);
        }
예제 #2
0
        public void Test_CallDependencies()
        {
            // create new listener that allows us to track build events
            TestBuildListener listener = new TestBuildListener();

            // set-up build file
            string _xml = @"
                    <project>
                        <target name='one' depends='two'>
                            <echo message='one--'/>
                        </target>
                        <target name='two'>
                            <echo message='two--'/>
                        </target>
                        <call target='one' />
                    </project>";

            // run the build
            string result = RunBuild(_xml, listener);

            // check whether 'one' target has been executed once
            Assert.AreEqual(1, listener.GetTargetExecutionCount("one"), "'one' target was not called." + Environment.NewLine + result);

            // check whether 'two' target has been executed once
            Assert.AreEqual(1, listener.GetTargetExecutionCount("two"), "'two' target was not called." + Environment.NewLine + result);
        }
예제 #3
0
파일: EchoTest.cs 프로젝트: smaclell/NAnt
        public void ExistingFile_Append_Default()
        {
            string msg = "\u0041\u2262\u0391\u002E!";
            string logfile = Path.Combine (TempDirName, "log");
            TestBuildListener listener;
            string result;

            string _xml1 = @"
                <project>
                    <echo file='log' message='" + msg + @"' encoding='utf-16'/>
                </project>";

            using (StreamWriter sw = new StreamWriter (logfile, false, Encoding.Unicode)) {
                sw.Write ("ok");
            }

            listener = new TestBuildListener();
            result = RunBuild (_xml1, listener);
            Assert.IsTrue(result.IndexOf(msg) == -1, "#A1");
            Assert.IsFalse(listener.HasMessageBeenLogged (msg, true), "#A2");
            Assert.IsTrue (File.Exists(logfile), "#A3");
            using (FileStream fs = File.OpenRead (logfile)) {
                Assert.AreEqual (12, fs.Length, "#A4");
                using (StreamReader sr = new StreamReader (fs, Encoding.Unicode)) {
                    string content = sr.ReadToEnd ();
                    Assert.AreEqual (msg, content, "#A5");
                }
            }

            File.Delete (logfile);

            string _xml2 = @"
                <project>
                    <echo file='log' encoding='utf-16'>" + msg + @"</echo>
                </project>";

            using (StreamWriter sw = new StreamWriter (logfile, false, Encoding.Unicode)) {
                sw.Write ("ok");
            }

            listener = new TestBuildListener();
            result = RunBuild (_xml2, listener);
            Assert.IsTrue(result.IndexOf(msg) == -1, "#B1");
            Assert.IsFalse(listener.HasMessageBeenLogged (msg, true), "#B2");
            Assert.IsTrue (File.Exists(logfile), "#B3");
            using (FileStream fs = File.OpenRead (logfile)) {
                Assert.AreEqual (12, fs.Length, "#B4");
                using (StreamReader sr = new StreamReader (fs, Encoding.Unicode)) {
                    string content = sr.ReadToEnd ();
                    Assert.AreEqual (msg, content, "#B5");
                }
            }
        }
예제 #4
0
        public void ExistingFile_Append_True()
        {
            string            msg     = "\u0041\u2262\u0391\u002E!";
            string            logfile = Path.Combine(TempDirName, "log");
            TestBuildListener listener;
            string            result;

            string _xml1 = @"
                <project>
                    <echo append='true' file='log' message='" + msg + @"' encoding='utf-8'/>
                </project>";

            using (StreamWriter sw = new StreamWriter(logfile, false, Encoding.UTF8)) {
                sw.Write("ok");
            }

            listener = new TestBuildListener();
            result   = RunBuild(_xml1, listener);
            Assert.IsTrue(result.IndexOf(msg) == -1, "#A1");
            Assert.IsFalse(listener.HasMessageBeenLogged(msg, true), "#A2");
            Assert.IsTrue(File.Exists(logfile), "#A3");
            using (FileStream fs = File.OpenRead(logfile)) {
                Assert.AreEqual(13, fs.Length, "#A4");
                using (StreamReader sr = new StreamReader(fs, Encoding.UTF8)) {
                    string content = sr.ReadToEnd();
                    Assert.AreEqual("ok" + msg, content, "#A5");
                }
            }

            File.Delete(logfile);

            string _xml2 = @"
                <project>
                    <echo append='true' file='log' encoding='utf-8'>" + msg + @"</echo>
                </project>";

            using (StreamWriter sw = new StreamWriter(logfile, false, Encoding.UTF8)) {
                sw.Write("ok");
            }

            listener = new TestBuildListener();
            result   = RunBuild(_xml2, listener);
            Assert.IsTrue(result.IndexOf(msg) == -1, "#B1");
            Assert.IsFalse(listener.HasMessageBeenLogged(msg, true), "#B2");
            Assert.IsTrue(File.Exists(logfile), "#B3");
            using (FileStream fs = File.OpenRead(logfile)) {
                Assert.AreEqual(13, fs.Length, "#B4");
                using (StreamReader sr = new StreamReader(fs, Encoding.UTF8)) {
                    string content = sr.ReadToEnd();
                    Assert.AreEqual("ok" + msg, content, "#B5");
                }
            }
        }
예제 #5
0
        public void Log_Message_Missing()
        {
            string xml = @"
                <project>
                    <echo />
                </project>";

            TestBuildListener listener = new TestBuildListener();

            RunBuild(xml, listener);
            Assert.IsTrue(listener.HasMessageBeenLogged(string.Empty, true), "#1");
        }
예제 #6
0
        public void File_Message_Empty()
        {
            string            logfile = Path.Combine(TempDirName, "log");
            TestBuildListener listener;

            string _xml1 = @"
                <project>
                    <echo file='log' message=' ' />
                </project>";

            listener = new TestBuildListener();
            RunBuild(_xml1, listener);
            Assert.IsTrue(File.Exists(logfile), "#A1");
            Assert.IsFalse(listener.HasMessageBeenLogged(" ", true), "#A2");
            using (StreamReader sr = new StreamReader(logfile, Encoding.UTF8)) {
                string content = sr.ReadToEnd();
                Assert.AreEqual(string.Empty, content, "#A3");
            }

            File.Delete(logfile);

            string _xml2 = @"
                <project>
                    <echo file='log' message=' '> </echo>
                </project>";

            listener = new TestBuildListener();
            RunBuild(_xml2, listener);
            Assert.IsTrue(File.Exists(logfile), "#B1");
            Assert.IsFalse(listener.HasMessageBeenLogged(" ", true), "#B2");
            using (StreamReader sr = new StreamReader(logfile, Encoding.UTF8)) {
                string content = sr.ReadToEnd();
                Assert.AreEqual(string.Empty, content, "#B3");
            }

            File.Delete(logfile);

            string msg   = "\u0041\u2262\n\u0391\u002E!";
            string _xml3 = @"
                <project>
                    <echo file='log' message=' ' encoding='utf-8'>" + msg + @"</echo>
                </project>";

            listener = new TestBuildListener();
            RunBuild(_xml3, listener);
            Assert.IsTrue(File.Exists(logfile), "#C1");
            Assert.IsFalse(listener.HasMessageBeenLogged(msg, true), "#C2");
            using (StreamReader sr = new StreamReader(logfile, Encoding.UTF8)) {
                string content = sr.ReadToEnd();
                Assert.AreEqual(msg, content, "#C3");
            }
        }
예제 #7
0
        public void Test_Cascade()
        {
            // create new listener that allows us to track build events
            TestBuildListener listener = new TestBuildListener();

            // set-up build file
            string _xml = @"
                <project default='rebuild'>
	                <target name='clean' />
                    <target name='init' />
	                <target name='compile' depends='init' />
	                <target name='build'>
		                <call target='compile' {0} />
		                <call target='compile' {0} />
	                </target>
	                <target name='rebuild' depends='clean, build' />
                </project>";

            // run the build
            RunBuild(string.Format(CultureInfo.InvariantCulture, _xml, ""),
                     listener);
            // check whether 'compile' target has been executed twice
            Assert.AreEqual(2, listener.GetTargetExecutionCount("compile"), "#A1");
            // check whether 'clean' target has been executed once
            Assert.AreEqual(1, listener.GetTargetExecutionCount("clean"), "#A2");
            // check whether 'build' target has been executed once
            Assert.AreEqual(1, listener.GetTargetExecutionCount("build"), "#A3");
            // check whether 'init' target has been executed once
            Assert.AreEqual(2, listener.GetTargetExecutionCount("init"), "#A4");
            // check whether 'call' task has been executed twice
            Assert.AreEqual(2, listener.GetTaskExecutionCount("call"), "#A5");

            // construct new listener for tracking build events
            listener = new TestBuildListener();

            // run the build with cascade set to "false"
            RunBuild(string.Format(CultureInfo.InvariantCulture, _xml,
                                   "cascade=\"false\""), listener);
            // check whether 'compile' target has been executed twice
            Assert.AreEqual(2, listener.GetTargetExecutionCount("compile"), "#B1");
            // check whether 'clean' target has been executed once
            Assert.AreEqual(1, listener.GetTargetExecutionCount("clean"), "#B2");
            // check whether 'build' target has been executed once
            Assert.AreEqual(1, listener.GetTargetExecutionCount("build"), "#B3");
            // check whether 'init' target has been executed once
            Assert.AreEqual(1, listener.GetTargetExecutionCount("init"), "#B4");
            // check whether 'call' task has been executed twice
            Assert.AreEqual(2, listener.GetTaskExecutionCount("call"), "#B5");
        }
예제 #8
0
        public void File_Level_Ignored()
        {
            string            msg     = "\u0041\u2262\u0391\u002E!";
            string            logfile = Path.Combine(TempDirName, "log");
            TestBuildListener listener;
            string            result;

            string _xml1 = @"
                <project>
                    <echo file='log' level='warning' encoding='utf-8' message='" + msg + @"'/>
                </project>";

            listener = new TestBuildListener();
            result   = RunBuild(_xml1, Level.Error, listener);
            Assert.IsTrue(result.IndexOf(msg) == -1, "#A1");
            Assert.IsFalse(listener.HasMessageBeenLogged(msg, true), "#A2");
            Assert.IsTrue(File.Exists(logfile), "#A3");
            using (FileStream fs = File.OpenRead(logfile)) {
                Assert.AreEqual(11, fs.Length, "#A4");
                using (StreamReader sr = new StreamReader(fs, Encoding.UTF8)) {
                    string content = sr.ReadToEnd();
                    Assert.AreEqual(msg, content, "#A5");
                }
            }

            File.Delete(logfile);

            string _xml2 = @"
                <project>
                    <echo file='log' level='warning' encoding='utf-8'>" + msg + @"</echo>
                </project>";

            listener = new TestBuildListener();
            result   = RunBuild(_xml2, Level.Error, listener);
            Assert.IsTrue(result.IndexOf(msg) == -1, "#B1");
            Assert.IsFalse(listener.HasMessageBeenLogged(msg, true), "#B2");
            Assert.IsTrue(File.Exists(logfile), "#B3");
            using (FileStream fs = File.OpenRead(logfile)) {
                Assert.AreEqual(11, fs.Length, "#B4");
                using (StreamReader sr = new StreamReader(fs, Encoding.UTF8)) {
                    string content = sr.ReadToEnd();
                    Assert.AreEqual(msg, content, "#B5");
                }
            }
        }
예제 #9
0
        public void File_Directory_DoesNotExist()
        {
            string            dir     = Path.Combine(TempDirName, "tmp");
            string            logfile = Path.Combine(dir, "log");
            TestBuildListener listener;

            string _xml = @"
                <project>
                    <echo file='tmp/log' message='sometest' />
                </project>";

            listener = new TestBuildListener();
            RunBuild(_xml, listener);
            Assert.IsTrue(File.Exists(logfile), "#1");
            Assert.IsFalse(listener.HasMessageBeenLogged("sometest", true), "#2");
            using (StreamReader sr = new StreamReader(logfile, Encoding.Default)) {
                string content = sr.ReadToEnd();
                Assert.AreEqual("sometest", content, "#3");
            }
        }
예제 #10
0
        public void File_Message_Missing()
        {
            string            logfile = Path.Combine(TempDirName, "log");
            TestBuildListener listener;

            string xml = @"
                <project>
                    <echo append='false' file='log' />
                </project>";

            listener = new TestBuildListener();
            RunBuild(xml, listener);
            Assert.IsTrue(listener.HasMessageBeenLogged(string.Empty, true), "#1");
            Assert.IsTrue(File.Exists(logfile), "#2");
            using (FileStream fs = File.OpenRead(logfile)) {
                using (StreamReader sr = new StreamReader(fs, Encoding.UTF8)) {
                    string content = sr.ReadToEnd();
                    Assert.AreEqual(string.Empty, content, "#3");
                }
            }
        }
예제 #11
0
파일: EchoTest.cs 프로젝트: smaclell/NAnt
        public void NewFile()
        {
            string msg = "\u0041\u2262\u0391\u002E!";
            string logfile = Path.Combine (TempDirName, "log");
            TestBuildListener listener;
            string result;

            string _xml1 = @"
                <project>
                    <echo file='log' encoding='utf-8' message='" + msg + @"'/>
                </project>";

            listener = new TestBuildListener();
            result = RunBuild (_xml1, listener);
            Assert.IsTrue(result.IndexOf(msg) == -1, "#A1");
            Assert.IsFalse(listener.HasMessageBeenLogged (msg, true), "#A2");
            Assert.IsTrue (File.Exists(logfile), "#A3");
            using (StreamReader sr = new StreamReader (logfile, Encoding.UTF8)) {
                string content = sr.ReadToEnd ();
                Assert.AreEqual (msg, content, "#A4");
            }

            File.Delete (logfile);

            string _xml2 = @"
                <project>
                    <echo file='log' encoding='utf-8'>" + msg + @"</echo>
                </project>";

            listener = new TestBuildListener();
            result = RunBuild (_xml2, listener);
            Assert.IsTrue(result.IndexOf(msg) == -1, "#B1");
            Assert.IsFalse(listener.HasMessageBeenLogged (msg, true), "#B2");
            Assert.IsTrue (File.Exists(logfile), "#B3");
            using (StreamReader sr = new StreamReader (logfile, Encoding.UTF8)) {
                string content = sr.ReadToEnd ();
                Assert.AreEqual (msg, content, "#B4");
            }
        }
예제 #12
0
파일: EchoTest.cs 프로젝트: smaclell/NAnt
        public void File_Directory_DoesNotExist()
        {
            string dir = Path.Combine (TempDirName, "tmp");
            string logfile = Path.Combine (dir, "log");
            TestBuildListener listener;

            string _xml = @"
                <project>
                    <echo file='tmp/log' message='sometest' />
                </project>";

            listener = new TestBuildListener();
            RunBuild (_xml, listener);
            Assert.IsTrue (File.Exists(logfile), "#1");
            Assert.IsFalse(listener.HasMessageBeenLogged ("sometest", true), "#2");
            using (StreamReader sr = new StreamReader (logfile, Encoding.Default)) {
                string content = sr.ReadToEnd ();
                Assert.AreEqual ("sometest", content, "#3");
            }
        }
예제 #13
0
파일: EchoTest.cs 프로젝트: smaclell/NAnt
        public void Log_Message_Missing()
        {
            string xml = @"
                <project>
                    <echo />
                </project>";

            TestBuildListener listener = new TestBuildListener();
            RunBuild (xml, listener);
            Assert.IsTrue(listener.HasMessageBeenLogged (string.Empty, true), "#1");
        }
예제 #14
0
파일: EchoTest.cs 프로젝트: smaclell/NAnt
        public void Log_Message_Whitespace()
        {
            string msg;
            TestBuildListener listener;
            string result;

            msg = " \t \n  ";

            string xml1 = @"
                <project>
                    <echo message='" + msg + @"'></echo>
                </project>";

            listener = new TestBuildListener();
            result = RunBuild (xml1, listener);
            Assert.IsTrue(result.IndexOf(msg) == -1, "#A1");
            Assert.IsFalse(listener.HasMessageBeenLogged (msg, true), "#A2");
            Assert.IsTrue(listener.HasMessageBeenLogged (string.Empty, true), "#A3");

            string xml2 = @"
                <project>
                    <echo message=''>" + msg + @"</echo>
                </project>";

            listener = new TestBuildListener();
            result = RunBuild (xml2, listener);
            Assert.IsTrue(result.IndexOf(msg) == -1, "#B1");
            Assert.IsFalse(listener.HasMessageBeenLogged (msg, true), "#B2");
            Assert.IsTrue(listener.HasMessageBeenLogged (string.Empty, true), "#B3");

            string xml3 = @"
                <project>
                    <echo message='" + msg + @"'> " + Environment.NewLine + @"</echo>
                </project>";

            listener = new TestBuildListener();
            result = RunBuild (xml3, listener);
            Assert.IsTrue(result.IndexOf(msg) == -1, "#C1");
            Assert.IsFalse(listener.HasMessageBeenLogged (msg, true), "#C2");
            Assert.IsTrue(listener.HasMessageBeenLogged (string.Empty, true), "#C3");

            string xml4 = @"
                <project>
                    <echo message=' " + Environment.NewLine + @" '>" + msg + @"</echo>
                </project>";

            listener = new TestBuildListener();
            result = RunBuild (xml4, listener);
            Assert.IsTrue(result.IndexOf(msg) == -1, "#D1");
            Assert.IsFalse(listener.HasMessageBeenLogged (msg, true), "#D2");
            Assert.IsTrue(listener.HasMessageBeenLogged (string.Empty, true), "#D3");

            msg = " \t X \n  ";

            string xml5 = @"
                <project>
                    <echo message='" + msg + @"'> " + Environment.NewLine + @" </echo>
                </project>";

            listener = new TestBuildListener();
            result = RunBuild (xml5, listener);
            Assert.IsTrue(listener.HasMessageBeenLogged (msg, true), "#E");

            string xml6 = @"
                <project>
                    <echo message=' " + Environment.NewLine + @" '>" + msg + @"</echo>
                </project>";

            listener = new TestBuildListener();
            result = RunBuild (xml6, listener);
            Assert.IsTrue(listener.HasMessageBeenLogged (msg, true), "#F");
        }
예제 #15
0
파일: EchoTest.cs 프로젝트: smaclell/NAnt
        public void File_Message_Whitespace()
        {
            string msg;
            string logfile = Path.Combine (TempDirName, "log");
            TestBuildListener listener;
            string result;

            msg = " \t \n  ";

            string xml1 = @"
                <project>
                    <echo append='false' file='log' message='" + msg + @"' encoding='utf-8'></echo>
                </project>";

            listener = new TestBuildListener();
            result = RunBuild (xml1, listener);
            Assert.IsTrue(result.IndexOf(msg) == -1, "#A1");
            Assert.IsFalse(listener.HasMessageBeenLogged (msg, true), "#A2");
            Assert.IsTrue (File.Exists(logfile), "#A3");
            using (FileStream fs = File.OpenRead (logfile)) {
                using (StreamReader sr = new StreamReader (fs, Encoding.UTF8)) {
                    string content = sr.ReadToEnd ();
                    Assert.AreEqual (string.Empty, content, "#A4");
                }
            }

            string xml2 = @"
                <project>
                    <echo append='false' file='log' message='' encoding='utf-8'>" + msg + @"</echo>
                </project>";

            listener = new TestBuildListener();
            result = RunBuild (xml2, listener);
            Assert.IsTrue(result.IndexOf(msg) == -1, "#B1");
            Assert.IsFalse(listener.HasMessageBeenLogged (msg, true), "#B2");
            Assert.IsTrue (File.Exists(logfile), "#B3");
            using (FileStream fs = File.OpenRead (logfile)) {
                using (StreamReader sr = new StreamReader (fs, Encoding.UTF8)) {
                    string content = sr.ReadToEnd ();
                    Assert.AreEqual (string.Empty, content, "#B4");
                }
            }

            string xml3 = @"
                <project>
                    <echo append='false' file='log' message='" + msg + @"' encoding='utf-8'> " + Environment.NewLine + @"</echo>
                </project>";

            listener = new TestBuildListener();
            result = RunBuild (xml3, listener);
            Assert.IsTrue(result.IndexOf(msg) == -1, "#C1");
            Assert.IsFalse(listener.HasMessageBeenLogged (msg, true), "#C2");
            Assert.IsTrue (File.Exists(logfile), "#C3");
            using (FileStream fs = File.OpenRead (logfile)) {
                using (StreamReader sr = new StreamReader (fs, Encoding.UTF8)) {
                    string content = sr.ReadToEnd ();
                    Assert.AreEqual (string.Empty, content, "#C4");
                }
            }

            string xml4 = @"
                <project>
                    <echo append='false' file='log' message=' " + Environment.NewLine + @" ' encoding='utf-8'>" + msg + @"</echo>
                </project>";

            listener = new TestBuildListener();
            result = RunBuild (xml4, listener);
            Assert.IsTrue(result.IndexOf(msg) == -1, "#D1");
            Assert.IsFalse(listener.HasMessageBeenLogged (msg, true), "#D2");
            Assert.IsTrue (File.Exists(logfile), "#D3");
            using (FileStream fs = File.OpenRead (logfile)) {
                using (StreamReader sr = new StreamReader (fs, Encoding.UTF8)) {
                    string content = sr.ReadToEnd ();
                    Assert.AreEqual (string.Empty, content, "#D4");
                }
            }

            msg = " \t X \n  ";

            string xml5 = @"
                <project>
                    <echo append='false' file='log' message='" + msg + @"' encoding='utf-8'> " + Environment.NewLine + @" </echo>
                </project>";

            listener = new TestBuildListener();
            result = RunBuild (xml5, listener);
            Assert.IsTrue(result.IndexOf(msg) == -1, "#E1");
            Assert.IsFalse(listener.HasMessageBeenLogged (msg, true), "#E2");
            Assert.IsTrue (File.Exists(logfile), "#E3");
            using (FileStream fs = File.OpenRead (logfile)) {
                using (StreamReader sr = new StreamReader (fs, Encoding.UTF8)) {
                    string content = sr.ReadToEnd ();
                    Assert.AreEqual (msg, content, "#E4");
                }
            }

            string xml6 = @"
                <project>
                    <echo append='false' file='log' message=' " + Environment.NewLine + @" ' encoding='utf-8'>" + msg + @"</echo>
                </project>";

            listener = new TestBuildListener();
            result = RunBuild (xml6, listener);
            Assert.IsTrue(result.IndexOf(msg) == -1, "#F1");
            Assert.IsFalse(listener.HasMessageBeenLogged (msg, true), "#F2");
            Assert.IsTrue (File.Exists(logfile), "#F3");
            using (FileStream fs = File.OpenRead (logfile)) {
                using (StreamReader sr = new StreamReader (fs, Encoding.UTF8)) {
                    string content = sr.ReadToEnd ();
                    Assert.AreEqual (msg, content, "#F4");
                }
            }
        }
예제 #16
0
파일: EchoTest.cs 프로젝트: smaclell/NAnt
        public void File_Multiline()
        {
            string msg;
            string logfile = Path.Combine (TempDirName, "log");
            TestBuildListener listener;
            string result;

            msg = " \u0041\u2262" + Environment.NewLine + "\u0391\u002E! ";
            string _xml1 = @"
                <project>
                    <echo append='true' file='log' message='" + msg + @"' encoding='utf-8'/>
                </project>";

            using (StreamWriter sw = new StreamWriter (logfile, false, Encoding.UTF8)) {
                sw.Write ("ok");
            }

            listener = new TestBuildListener();
            result = RunBuild (_xml1, listener);
            Assert.IsTrue(result.IndexOf(msg) == -1, "#A1");
            Assert.IsFalse(listener.HasMessageBeenLogged (msg, true), "#A2");
            Assert.IsTrue (File.Exists(logfile), "#A3");
            using (FileStream fs = File.OpenRead (logfile)) {
                using (StreamReader sr = new StreamReader (fs, Encoding.UTF8)) {
                    string content = sr.ReadToEnd ();
                    Assert.AreEqual ("ok" + msg, content, "#A4");
                }
            }

            msg = string.Format ("{0}\u0041\u2262{0}\u0391\u002E!{0}",
                Environment.NewLine);
            string _xml2 = @"
                <project>
                    <echo append='true' file='log' encoding='utf-8'>" + msg + @"</echo>
                </project>";

            using (StreamWriter sw = new StreamWriter (logfile, false, Encoding.UTF8)) {
                sw.Write ("ok" + Environment.NewLine);
            }

            listener = new TestBuildListener();
            result = RunBuild (_xml2, listener);
            Assert.IsTrue(result.IndexOf(msg) == -1, "#B1");
            Assert.IsFalse(listener.HasMessageBeenLogged (msg, true), "#B2");
            Assert.IsTrue (File.Exists(logfile), "#B3");
            using (FileStream fs = File.OpenRead (logfile)) {
                using (StreamReader sr = new StreamReader (fs, Encoding.UTF8)) {
                    string content = sr.ReadToEnd ();
                    Assert.AreEqual ("ok" + Environment.NewLine + msg, content, "#B4");
                }
            }
        }
예제 #17
0
파일: EchoTest.cs 프로젝트: smaclell/NAnt
        public void File_Message_Missing()
        {
            string logfile = Path.Combine (TempDirName, "log");
            TestBuildListener listener;

            string xml = @"
                <project>
                    <echo append='false' file='log' />
                </project>";

            listener = new TestBuildListener();
            RunBuild (xml, listener);
            Assert.IsTrue(listener.HasMessageBeenLogged (string.Empty, true), "#1");
            Assert.IsTrue (File.Exists(logfile), "#2");
            using (FileStream fs = File.OpenRead (logfile)) {
                using (StreamReader sr = new StreamReader (fs, Encoding.UTF8)) {
                    string content = sr.ReadToEnd ();
                    Assert.AreEqual (string.Empty, content, "#3");
                }
            }
        }
예제 #18
0
파일: EchoTest.cs 프로젝트: smaclell/NAnt
        public void File_Message_Empty()
        {
            string logfile = Path.Combine (TempDirName, "log");
            TestBuildListener listener;

            string _xml1 = @"
                <project>
                    <echo file='log' message=' ' />
                </project>";

            listener = new TestBuildListener();
            RunBuild (_xml1, listener);
            Assert.IsTrue (File.Exists(logfile), "#A1");
            Assert.IsFalse(listener.HasMessageBeenLogged (" ", true), "#A2");
            using (StreamReader sr = new StreamReader (logfile, Encoding.UTF8)) {
                string content = sr.ReadToEnd ();
                Assert.AreEqual (string.Empty, content, "#A3");
            }

            File.Delete (logfile);

            string _xml2 = @"
                <project>
                    <echo file='log' message=' '> </echo>
                </project>";

            listener = new TestBuildListener();
            RunBuild (_xml2, listener);
            Assert.IsTrue (File.Exists(logfile), "#B1");
            Assert.IsFalse(listener.HasMessageBeenLogged (" ", true), "#B2");
            using (StreamReader sr = new StreamReader (logfile, Encoding.UTF8)) {
                string content = sr.ReadToEnd ();
                Assert.AreEqual (string.Empty, content, "#B3");
            }

            File.Delete (logfile);

            string msg = "\u0041\u2262\n\u0391\u002E!";
            string _xml3 = @"
                <project>
                    <echo file='log' message=' ' encoding='utf-8'>" + msg + @"</echo>
                </project>";

            listener = new TestBuildListener();
            RunBuild (_xml3, listener);
            Assert.IsTrue (File.Exists(logfile), "#C1");
            Assert.IsFalse(listener.HasMessageBeenLogged (msg, true), "#C2");
            using (StreamReader sr = new StreamReader (logfile, Encoding.UTF8)) {
                string content = sr.ReadToEnd ();
                Assert.AreEqual (msg, content, "#C3");
            }
        }
예제 #19
0
        public void File_Message_Whitespace()
        {
            string            msg;
            string            logfile = Path.Combine(TempDirName, "log");
            TestBuildListener listener;
            string            result;

            msg = " \t \n  ";

            string xml1 = @"
                <project>
                    <echo append='false' file='log' message='" + msg + @"' encoding='utf-8'></echo>
                </project>";

            listener = new TestBuildListener();
            result   = RunBuild(xml1, listener);
            Assert.IsTrue(result.IndexOf(msg) == -1, "#A1");
            Assert.IsFalse(listener.HasMessageBeenLogged(msg, true), "#A2");
            Assert.IsTrue(File.Exists(logfile), "#A3");
            using (FileStream fs = File.OpenRead(logfile)) {
                using (StreamReader sr = new StreamReader(fs, Encoding.UTF8)) {
                    string content = sr.ReadToEnd();
                    Assert.AreEqual(string.Empty, content, "#A4");
                }
            }

            string xml2 = @"
                <project>
                    <echo append='false' file='log' message='' encoding='utf-8'>" + msg + @"</echo>
                </project>";

            listener = new TestBuildListener();
            result   = RunBuild(xml2, listener);
            Assert.IsTrue(result.IndexOf(msg) == -1, "#B1");
            Assert.IsFalse(listener.HasMessageBeenLogged(msg, true), "#B2");
            Assert.IsTrue(File.Exists(logfile), "#B3");
            using (FileStream fs = File.OpenRead(logfile)) {
                using (StreamReader sr = new StreamReader(fs, Encoding.UTF8)) {
                    string content = sr.ReadToEnd();
                    Assert.AreEqual(string.Empty, content, "#B4");
                }
            }

            string xml3 = @"
                <project>
                    <echo append='false' file='log' message='" + msg + @"' encoding='utf-8'> " + Environment.NewLine + @"</echo>
                </project>";

            listener = new TestBuildListener();
            result   = RunBuild(xml3, listener);
            Assert.IsTrue(result.IndexOf(msg) == -1, "#C1");
            Assert.IsFalse(listener.HasMessageBeenLogged(msg, true), "#C2");
            Assert.IsTrue(File.Exists(logfile), "#C3");
            using (FileStream fs = File.OpenRead(logfile)) {
                using (StreamReader sr = new StreamReader(fs, Encoding.UTF8)) {
                    string content = sr.ReadToEnd();
                    Assert.AreEqual(string.Empty, content, "#C4");
                }
            }

            string xml4 = @"
                <project>
                    <echo append='false' file='log' message=' " + Environment.NewLine + @" ' encoding='utf-8'>" + msg + @"</echo>
                </project>";

            listener = new TestBuildListener();
            result   = RunBuild(xml4, listener);
            Assert.IsTrue(result.IndexOf(msg) == -1, "#D1");
            Assert.IsFalse(listener.HasMessageBeenLogged(msg, true), "#D2");
            Assert.IsTrue(File.Exists(logfile), "#D3");
            using (FileStream fs = File.OpenRead(logfile)) {
                using (StreamReader sr = new StreamReader(fs, Encoding.UTF8)) {
                    string content = sr.ReadToEnd();
                    Assert.AreEqual(string.Empty, content, "#D4");
                }
            }

            msg = " \t X \n  ";

            string xml5 = @"
                <project>
                    <echo append='false' file='log' message='" + msg + @"' encoding='utf-8'> " + Environment.NewLine + @" </echo>
                </project>";

            listener = new TestBuildListener();
            result   = RunBuild(xml5, listener);
            Assert.IsTrue(result.IndexOf(msg) == -1, "#E1");
            Assert.IsFalse(listener.HasMessageBeenLogged(msg, true), "#E2");
            Assert.IsTrue(File.Exists(logfile), "#E3");
            using (FileStream fs = File.OpenRead(logfile)) {
                using (StreamReader sr = new StreamReader(fs, Encoding.UTF8)) {
                    string content = sr.ReadToEnd();
                    Assert.AreEqual(msg, content, "#E4");
                }
            }

            string xml6 = @"
                <project>
                    <echo append='false' file='log' message=' " + Environment.NewLine + @" ' encoding='utf-8'>" + msg + @"</echo>
                </project>";

            listener = new TestBuildListener();
            result   = RunBuild(xml6, listener);
            Assert.IsTrue(result.IndexOf(msg) == -1, "#F1");
            Assert.IsFalse(listener.HasMessageBeenLogged(msg, true), "#F2");
            Assert.IsTrue(File.Exists(logfile), "#F3");
            using (FileStream fs = File.OpenRead(logfile)) {
                using (StreamReader sr = new StreamReader(fs, Encoding.UTF8)) {
                    string content = sr.ReadToEnd();
                    Assert.AreEqual(msg, content, "#F4");
                }
            }
        }
예제 #20
0
        public void Log_Message_Whitespace()
        {
            string            msg;
            TestBuildListener listener;
            string            result;

            msg = " \t \n  ";

            string xml1 = @"
                <project>
                    <echo message='" + msg + @"'></echo>
                </project>";

            listener = new TestBuildListener();
            result   = RunBuild(xml1, listener);
            Assert.IsTrue(result.IndexOf(msg) == -1, "#A1");
            Assert.IsFalse(listener.HasMessageBeenLogged(msg, true), "#A2");
            Assert.IsTrue(listener.HasMessageBeenLogged(string.Empty, true), "#A3");

            string xml2 = @"
                <project>
                    <echo message=''>" + msg + @"</echo>
                </project>";

            listener = new TestBuildListener();
            result   = RunBuild(xml2, listener);
            Assert.IsTrue(result.IndexOf(msg) == -1, "#B1");
            Assert.IsFalse(listener.HasMessageBeenLogged(msg, true), "#B2");
            Assert.IsTrue(listener.HasMessageBeenLogged(string.Empty, true), "#B3");

            string xml3 = @"
                <project>
                    <echo message='" + msg + @"'> " + Environment.NewLine + @"</echo>
                </project>";

            listener = new TestBuildListener();
            result   = RunBuild(xml3, listener);
            Assert.IsTrue(result.IndexOf(msg) == -1, "#C1");
            Assert.IsFalse(listener.HasMessageBeenLogged(msg, true), "#C2");
            Assert.IsTrue(listener.HasMessageBeenLogged(string.Empty, true), "#C3");

            string xml4 = @"
                <project>
                    <echo message=' " + Environment.NewLine + @" '>" + msg + @"</echo>
                </project>";

            listener = new TestBuildListener();
            result   = RunBuild(xml4, listener);
            Assert.IsTrue(result.IndexOf(msg) == -1, "#D1");
            Assert.IsFalse(listener.HasMessageBeenLogged(msg, true), "#D2");
            Assert.IsTrue(listener.HasMessageBeenLogged(string.Empty, true), "#D3");

            msg = " \t X \n  ";

            string xml5 = @"
                <project>
                    <echo message='" + msg + @"'> " + Environment.NewLine + @" </echo>
                </project>";

            listener = new TestBuildListener();
            result   = RunBuild(xml5, listener);
            Assert.IsTrue(listener.HasMessageBeenLogged(msg, true), "#E");

            string xml6 = @"
                <project>
                    <echo message=' " + Environment.NewLine + @" '>" + msg + @"</echo>
                </project>";

            listener = new TestBuildListener();
            result   = RunBuild(xml6, listener);
            Assert.IsTrue(listener.HasMessageBeenLogged(msg, true), "#F");
        }
예제 #21
0
파일: CallTest.cs 프로젝트: RoastBoy/nant
        public void Test_Cascade() {
            // create new listener that allows us to track build events
            TestBuildListener listener = new TestBuildListener();

            // set-up build file
            string _xml = @"
                <project default='rebuild'>
	                <target name='clean' />
                    <target name='init' />
	                <target name='compile' depends='init' />
	                <target name='build'>
		                <call target='compile' {0} />
		                <call target='compile' {0} />
	                </target>
	                <target name='rebuild' depends='clean, build' />
                </project>";

            // run the build
            RunBuild(string.Format(CultureInfo.InvariantCulture, _xml, ""), 
                listener);
            // check whether 'compile' target has been executed twice
            Assert.AreEqual(2, listener.GetTargetExecutionCount("compile"), "#A1");
            // check whether 'clean' target has been executed once
            Assert.AreEqual(1, listener.GetTargetExecutionCount("clean"), "#A2");
            // check whether 'build' target has been executed once
            Assert.AreEqual(1, listener.GetTargetExecutionCount("build"), "#A3");
            // check whether 'init' target has been executed once
            Assert.AreEqual(2, listener.GetTargetExecutionCount("init"), "#A4");
            // check whether 'call' task has been executed twice
            Assert.AreEqual(2, listener.GetTaskExecutionCount("call"), "#A5");

            // construct new listener for tracking build events
            listener = new TestBuildListener();

            // run the build with cascade set to "false"
            RunBuild(string.Format(CultureInfo.InvariantCulture, _xml,
                "cascade=\"false\""), listener);
            // check whether 'compile' target has been executed twice
            Assert.AreEqual(2, listener.GetTargetExecutionCount("compile"), "#B1");
            // check whether 'clean' target has been executed once
            Assert.AreEqual(1, listener.GetTargetExecutionCount("clean"), "#B2");
            // check whether 'build' target has been executed once
            Assert.AreEqual(1, listener.GetTargetExecutionCount("build"), "#B3");
            // check whether 'init' target has been executed once
            Assert.AreEqual(1, listener.GetTargetExecutionCount("init"), "#B4");
            // check whether 'call' task has been executed twice
            Assert.AreEqual(2, listener.GetTaskExecutionCount("call"), "#B5");
        }