[xbuild] Clean up test logs.
[mono.git] / mcs / class / Microsoft.Build.Tasks / Test / Microsoft.Build.Tasks / MessageTest.cs
index 91823ccee8e40e1fb9b9baf2caf56a8cde9e7cb0..1aa785622ba7e91e8b9f10a9d9d3cb286d17750f 100644 (file)
@@ -35,49 +35,6 @@ using NUnit.Framework;
 
 namespace MonoTests.Microsoft.Build.Tasks {
 
-       internal class TestMessageLogger : ILogger {
-               IList messages;
-               
-               public TestMessageLogger ()
-               {
-                       messages = new ArrayList ();
-               }
-       
-               public LoggerVerbosity Verbosity { get { return LoggerVerbosity.Normal; } set { } }
-               
-               public string Parameters { get { return null; } set { } }
-               
-               public void Initialize (IEventSource eventSource)
-               {
-                       eventSource.MessageRaised += new BuildMessageEventHandler (MessageHandler);
-               }
-               
-               public void Shutdown ()
-               {
-               }
-               
-               private void MessageHandler (object sender, BuildMessageEventArgs args)
-               {
-                       if (args.Message.StartsWith ("Using") == false)
-                               messages.Add (args);
-               }
-               
-               public int CheckHead (string text, MessageImportance importance)
-               {
-                       BuildMessageEventArgs actual;
-               
-                       if (messages.Count > 0) {
-                               actual = (BuildMessageEventArgs) messages [0];
-                               messages.RemoveAt (0);
-                       } else
-                               return 1;
-                       
-                       if (text == actual.Message && importance == actual.Importance)
-                               return 0;
-                       else
-                               return 2;
-               }
-       }
 
        [TestFixture]
        public class MessageTest {
@@ -85,6 +42,14 @@ namespace MonoTests.Microsoft.Build.Tasks {
                Engine engine;
                Project project;
                TestMessageLogger testLogger;
+
+               [Test]
+               public void TestDefaultValues()
+               {
+                       Message message = new Message();
+                       Assert.AreEqual(null, message.Text, "A1");
+                       Assert.AreEqual(null, message.Importance, "A2");
+               }
                
                [Test]
                public void TestAssignment ()
@@ -107,14 +72,14 @@ namespace MonoTests.Microsoft.Build.Tasks {
                        string documentString = @"
                                 <Project xmlns=""http://schemas.microsoft.com/developer/msbuild/2003"">
                                        <Target Name='1'>
-                                               <Message Text='Text' Importance='Low'/>
-                                               <Message Text='Text' Importance='Normal'/>
-                                               <Message Text='Text' Importance='High'/>
-                                               <Message Text='Text' Importance='low'/>
-                                               <Message Text='Text' Importance='normal'/>
-                                               <Message Text='Text' Importance='high'/>
-                                               <Message Text='Text' />
-                                               <Message Text='Text' Importance='weird_importance'/>
+                                               <Message Text='Text1' Importance='Low'/>
+                                               <Message Text='Text2' Importance='Normal'/>
+                                               <Message Text='Text3' Importance='High'/>
+                                               <Message Text='Text4' Importance='low'/>
+                                               <Message Text='Text5' Importance='normal'/>
+                                               <Message Text='Text6' Importance='high'/>
+                                               <Message Text='Text7' />
+                                               <Message Text='Text8' Importance='weird_importance'/>
                                        </Target>
                                </Project>
                        ";
@@ -125,17 +90,19 @@ namespace MonoTests.Microsoft.Build.Tasks {
                        
                        project = engine.CreateNewProject ();
                        project.LoadXml (documentString);
-                       project.Build ("1");
-                       
-                       Assert.AreEqual (0, testLogger.CheckHead ("Text", MessageImportance.Low), "A1");
-                       Assert.AreEqual (0, testLogger.CheckHead ("Text", MessageImportance.Normal), "A2");
-                       Assert.AreEqual (0, testLogger.CheckHead ("Text", MessageImportance.High), "A3");
-                       Assert.AreEqual (0, testLogger.CheckHead ("Text", MessageImportance.Low), "A4");
-                       Assert.AreEqual (0, testLogger.CheckHead ("Text", MessageImportance.Normal), "A5");
-                       Assert.AreEqual (0, testLogger.CheckHead ("Text", MessageImportance.High), "A6");
-                       Assert.AreEqual (0, testLogger.CheckHead ("Text", MessageImportance.Normal), "A7");
-                       Assert.AreEqual (1, testLogger.CheckHead ("Text", MessageImportance.Normal), "A8");
+                       if (project.Build ("1")) {
+                               testLogger.DumpMessages ();
+                               Assert.Fail ("Build should have failed");
+                       }
                        
+                       Assert.AreEqual (0, testLogger.CheckAny ("Text1", MessageImportance.Low), "A1");
+                       Assert.AreEqual (0, testLogger.CheckAny ("Text2", MessageImportance.Normal), "A2");
+                       Assert.AreEqual (0, testLogger.CheckAny ("Text3", MessageImportance.High), "A3");
+                       Assert.AreEqual (0, testLogger.CheckAny ("Text4", MessageImportance.Low), "A4");
+                       Assert.AreEqual (0, testLogger.CheckAny ("Text5", MessageImportance.Normal), "A5");
+                       Assert.AreEqual (0, testLogger.CheckAny ("Text6", MessageImportance.High), "A6");
+                       Assert.AreEqual (0, testLogger.CheckAny ("Text7", MessageImportance.Normal), "A7");
+                       Assert.AreEqual (1, testLogger.CheckAny ("Text8", MessageImportance.Normal), "A8");
                }
        }
 }