public void VerifyEventType() { BuildFinishedEventArgs buildFinished = new BuildFinishedEventArgs("Message", "Keyword", true); BuildStartedEventArgs buildStarted = new BuildStartedEventArgs("Message", "Help"); BuildMessageEventArgs lowMessage = new BuildMessageEventArgs("Message", "help", "sender", MessageImportance.Low); TaskStartedEventArgs taskStarted = new TaskStartedEventArgs("message", "help", "projectFile", "taskFile", "taskName"); TaskFinishedEventArgs taskFinished = new TaskFinishedEventArgs("message", "help", "projectFile", "taskFile", "taskName", true); TaskCommandLineEventArgs commandLine = new TaskCommandLineEventArgs("commandLine", "taskName", MessageImportance.Low); BuildWarningEventArgs warning = new BuildWarningEventArgs("SubCategoryForSchemaValidationErrors", "MSB4000", "file", 1, 2, 3, 4, "message", "help", "sender"); BuildErrorEventArgs error = new BuildErrorEventArgs("SubCategoryForSchemaValidationErrors", "MSB4000", "file", 1, 2, 3, 4, "message", "help", "sender"); TargetStartedEventArgs targetStarted = new TargetStartedEventArgs("message", "help", "targetName", "ProjectFile", "targetFile"); TargetFinishedEventArgs targetFinished = new TargetFinishedEventArgs("message", "help", "targetName", "ProjectFile", "targetFile", true); ProjectStartedEventArgs projectStarted = new ProjectStartedEventArgs(-1, "message", "help", "ProjectFile", "targetNames", null, null, null); ProjectFinishedEventArgs projectFinished = new ProjectFinishedEventArgs("message", "help", "ProjectFile", true); ExternalProjectStartedEventArgs externalStartedEvent = new ExternalProjectStartedEventArgs("message", "help", "senderName", "projectFile", "targetNames"); VerifyLoggingPacket(buildFinished, LoggingEventType.BuildFinishedEvent); VerifyLoggingPacket(buildStarted, LoggingEventType.BuildStartedEvent); VerifyLoggingPacket(lowMessage, LoggingEventType.BuildMessageEvent); VerifyLoggingPacket(taskStarted, LoggingEventType.TaskStartedEvent); VerifyLoggingPacket(taskFinished, LoggingEventType.TaskFinishedEvent); VerifyLoggingPacket(commandLine, LoggingEventType.TaskCommandLineEvent); VerifyLoggingPacket(warning, LoggingEventType.BuildWarningEvent); VerifyLoggingPacket(error, LoggingEventType.BuildErrorEvent); VerifyLoggingPacket(targetStarted, LoggingEventType.TargetStartedEvent); VerifyLoggingPacket(targetFinished, LoggingEventType.TargetFinishedEvent); VerifyLoggingPacket(projectStarted, LoggingEventType.ProjectStartedEvent); VerifyLoggingPacket(projectFinished, LoggingEventType.ProjectFinishedEvent); VerifyLoggingPacket(externalStartedEvent, LoggingEventType.CustomEvent); }
public void LogBuildEvents() { // This event should only be logged when OnlyLogCriticalEvents is off BuildMessageEventArgs messageEvent = new BuildMessageEventArgs("MyMessage", "HelpKeyword", "Sender", MessageImportance.High); // These three should be logged when OnlyLogCritical Events is on or off BuildWarningEventArgs warning = new BuildWarningEventArgs("SubCategoryForSchemaValidationErrors", "MSB4000", "file", 1, 2, 3, 4, "message", "help", "sender"); BuildErrorEventArgs error = new BuildErrorEventArgs("SubCategoryForSchemaValidationErrors", "MSB4000", "file", 1, 2, 3, 4, "message", "help", "sender"); ExternalProjectStartedEventArgs externalStartedEvent = new ExternalProjectStartedEventArgs("message", "help", "senderName", "projectFile", "targetNames"); ProcessBuildEventHelper loggingService = (ProcessBuildEventHelper)ProcessBuildEventHelper.CreateLoggingService(LoggerMode.Synchronous, 1); // Verify when OnlyLogCriticalEvents is false LogandVerifyBuildEvent(messageEvent, loggingService); LogandVerifyBuildEvent(warning, loggingService); LogandVerifyBuildEvent(error, loggingService); LogandVerifyBuildEvent(externalStartedEvent, loggingService); // Verify when OnlyLogCriticalEvents is true loggingService.OnlyLogCriticalEvents = true; loggingService.LogBuildEvent(messageEvent); Assert.IsNull(loggingService.ProcessedBuildEvent, "Expected ProcessedBuildEvent to be null"); LogandVerifyBuildEvent(warning, loggingService); LogandVerifyBuildEvent(error, loggingService); LogandVerifyBuildEvent(externalStartedEvent, loggingService); }
public void EventArgsCtors() { ExternalProjectStartedEventArgs externalProjectStartedEvent = new ExternalProjectStartedEventArgs2(); externalProjectStartedEvent = new ExternalProjectStartedEventArgs("Message", "HelpKeyword", "Sender", "ProjectFile", "TargetNames"); externalProjectStartedEvent = new ExternalProjectStartedEventArgs("Message", "HelpKeyword", "Sender", "ProjectFile", "TargetNames", DateTime.Now); externalProjectStartedEvent = new ExternalProjectStartedEventArgs(null, null, null, null, null); externalProjectStartedEvent = new ExternalProjectStartedEventArgs(null, null, null, null, null, DateTime.Now); }
public void AssignmentTest () { ExternalProjectStartedEventArgs epsea; string message = "message"; string helpKeyword = "helpKeyword"; string senderName = "senderName"; string projectFile = "projectFile"; string targetNames = "a;b;c"; epsea = new ExternalProjectStartedEventArgs (message, helpKeyword, senderName, projectFile, targetNames); Assert.AreEqual (message, epsea.Message, "Message"); Assert.AreEqual (helpKeyword, epsea.HelpKeyword, "HelpKeyword"); Assert.AreEqual (senderName, epsea.SenderName, "SenderName"); Assert.AreEqual (projectFile, epsea.ProjectFile, "ProjectFile"); Assert.AreEqual (targetNames, epsea.TargetNames, "TargetNames"); }
/// <summary> /// Compare this build event context with another object to determine /// equality. This means the values inside the object are identical. /// </summary> /// <param name="obj">Object to compare to this object</param> /// <returns>True if the object values are identical, false if they are not identical</returns> public static bool IsEquivalent(ExternalProjectStartedEventArgs args, ExternalProjectStartedEventArgs other) { if (!String.Equals(args.ProjectFile, other.ProjectFile, StringComparison.OrdinalIgnoreCase)) { return false; } if (!String.Equals(args.TargetNames, other.TargetNames, StringComparison.OrdinalIgnoreCase)) { return false; } return ((BuildEventArgs)args).IsEquivalent(other); }
/// <summary> /// Read and reconstruct a ProjectStartedEventArgs from the stream /// </summary> private ExternalProjectStartedEventArgs ReadExternalProjectStartedEventFromStream(INodePacketTranslator translator, string message, string helpKeyword, string senderName) { string projectFile = null; translator.Translate(ref projectFile); string targetNames = null; translator.Translate(ref targetNames); ExternalProjectStartedEventArgs buildEvent = new ExternalProjectStartedEventArgs( message, helpKeyword, senderName, projectFile, targetNames); return buildEvent; }
/// <summary> /// ExternalProjectStartedEvent /// </summary> private void WriteExternalProjectStartedEventToStream(ExternalProjectStartedEventArgs externalProjectStartedEventArgs, INodePacketTranslator translator) { string projectFile = externalProjectStartedEventArgs.ProjectFile; translator.Translate(ref projectFile); string targetNames = externalProjectStartedEventArgs.TargetNames; translator.Translate(ref targetNames); }
/// <summary> /// Small helper for logging the custom ExternalProjectStarted build event /// Thread safe. /// </summary> /// <param name="message">text message</param> /// <param name="helpKeyword">help keyword</param> /// <param name="projectFile">project name</param> /// <param name="targetNames">targets we are going to build (empty indicates default targets)</param> public void LogExternalProjectStarted ( string message, string helpKeyword, string projectFile, string targetNames ) { // No lock needed, as BuildEngine methods from v4.5 onwards are thread safe. ExternalProjectStartedEventArgs eps = new ExternalProjectStartedEventArgs(message, helpKeyword, TaskName, projectFile, targetNames); BuildEngine.LogCustomEvent(eps); }