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 {
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 ()
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>
";
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");
}
}
}