1 using Microsoft.Build.Framework;
2 using System.Collections;
4 using System.Collections.Generic;
6 namespace MonoTests.Microsoft.Build.Tasks
8 internal class TestMessageLogger : ILogger
10 List<BuildMessageEventArgs> messages;
12 public TestMessageLogger ()
14 messages = new List<BuildMessageEventArgs> ();
19 get { return messages.Count; }
22 public LoggerVerbosity Verbosity { get { return LoggerVerbosity.Normal; } set { } }
24 public string Parameters { get { return null; } set { } }
26 public void Initialize (IEventSource eventSource)
28 eventSource.MessageRaised += new BuildMessageEventHandler (MessageHandler);
31 public void Shutdown ()
35 private void MessageHandler (object sender, BuildMessageEventArgs args)
37 if (args.Message.StartsWith ("Using") == false)
41 public int CheckHead (string text, MessageImportance importance)
44 return CheckHead (text, importance, out actual_msg);
47 public int CheckHead (string text, MessageImportance importance, out string actual_msg)
49 BuildMessageEventArgs actual;
50 actual_msg = String.Empty;
52 if (messages.Count > 0) {
53 actual = messages [0];
54 messages.RemoveAt (0);
58 actual_msg = actual.Message;
59 if (text == actual.Message && importance == actual.Importance)
67 public int CheckAny (string text, MessageImportance importance)
69 if (messages.Count <= 0)
73 for (int i = 0; i < messages.Count; i ++) {
74 BuildMessageEventArgs arg = messages [i];
75 if (text == arg.Message && importance == arg.Importance) {
85 messages.RemoveAt (foundAt);
89 public void DumpMessages ()
91 foreach (BuildMessageEventArgs arg in messages)
92 Console.WriteLine ("Msg: {0}", arg.Message);