UnitTestBuildEngineMessage.cs 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. using Microsoft.Build.Framework;
  2. namespace Avalonia.Build.Tasks.UnitTest;
  3. enum MessageSource
  4. {
  5. Unknown,
  6. ErrorEvent,
  7. MessageEvent,
  8. CustomEvent,
  9. WarningEvent
  10. }
  11. record class UnitTestBuildEngineMessage
  12. {
  13. private UnitTestBuildEngineMessage(MessageSource Type, LazyFormattedBuildEventArgs Source)
  14. {
  15. this.Type = Type;
  16. this.Source = Source;
  17. Message = Source.Message;
  18. }
  19. public MessageSource Type { get; }
  20. public LazyFormattedBuildEventArgs Source { get; }
  21. public string Message { get; }
  22. public static UnitTestBuildEngineMessage From(BuildWarningEventArgs buildWarning) =>
  23. new UnitTestBuildEngineMessage(MessageSource.WarningEvent, buildWarning);
  24. public static UnitTestBuildEngineMessage From(BuildMessageEventArgs buildMessage) =>
  25. new UnitTestBuildEngineMessage(MessageSource.MessageEvent, buildMessage);
  26. public static UnitTestBuildEngineMessage From(BuildErrorEventArgs buildError) =>
  27. new UnitTestBuildEngineMessage(MessageSource.ErrorEvent, buildError);
  28. public static UnitTestBuildEngineMessage From(CustomBuildEventArgs customBuild) =>
  29. new UnitTestBuildEngineMessage(MessageSource.CustomEvent, customBuild);
  30. }