| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596 | 
							- using System;
 
- using System.Collections;
 
- using System.Collections.Generic;
 
- using Microsoft.Build.Framework;
 
- using Xunit;
 
- namespace Avalonia.Build.Tasks.UnitTest;
 
- /// <summary>
 
- /// This is fake BuildEngine using for testing build task
 
- /// at moment it manage only <see cref="BuildErrorEventArgs"/> and <see cref="BuildWarningEventArgs"/>
 
- /// other messages are ignored/>
 
- /// </summary>
 
- internal class UnitTestBuildEngine : IBuildEngine, IDisposable
 
- {
 
-     private readonly bool _treatWarningAsError;
 
-     private readonly bool _assertOnDispose;
 
-     private readonly List<UnitTestBuildEngineMessage> _errors = new();
 
-     /// <summary>
 
-     /// Start new instance of <see cref="UnitTestBuildEngine"/>
 
-     /// </summary>
 
-     /// <param name="continueOnError">if it is <c>false</c> immediately assert error</param>
 
-     /// <param name="treatWarningAsError">if it is <c>true</c> treat warning as error</param>
 
-     /// <param name="assertOnDispose">if it is <c>true</c> assert on dispose if there are any errors.</param>
 
-     /// <returns></returns>
 
-     public static UnitTestBuildEngine Start(bool continueOnError = false,
 
-         bool treatWarningAsError = false,
 
-         bool assertOnDispose = false) =>
 
-         new UnitTestBuildEngine(continueOnError, treatWarningAsError, assertOnDispose);
 
-     private UnitTestBuildEngine(bool continueOnError,
 
-         bool treatWarningAsError,
 
-         bool assertOnDispose)
 
-     {
 
-         ContinueOnError = continueOnError;
 
-         _treatWarningAsError = treatWarningAsError;
 
-         _assertOnDispose = assertOnDispose;
 
-     }
 
-     public bool ContinueOnError { get; }
 
-     public int LineNumberOfTaskNode { get; }
 
-     public int ColumnNumberOfTaskNode { get; }
 
-     public string ProjectFileOfTaskNode { get; }
 
-     public IReadOnlyList<UnitTestBuildEngineMessage> Errors => _errors;
 
-     public bool BuildProjectFile(string projectFileName,
 
-         string[] targetNames,
 
-         IDictionary globalProperties,
 
-         IDictionary targetOutputs)
 
-         => throw new NotImplementedException();
 
-     public void Dispose()
 
-     {
 
-         if (_assertOnDispose && _errors.Count > 0)
 
-         {
 
-             Assert.Fail("There is one o more errors.");
 
-         }
 
-     }
 
-     public void LogCustomEvent(CustomBuildEventArgs e)
 
-     {
 
-     }
 
-     public void LogMessageEvent(BuildMessageEventArgs e)
 
-     {
 
-     }
 
-     public void LogErrorEvent(BuildErrorEventArgs e)
 
-     {
 
-         var message = UnitTestBuildEngineMessage.From(e);
 
-         _errors.Add(message);
 
-         if (!ContinueOnError)
 
-         {
 
-             Assert.Fail(message.Message);
 
-         }
 
-     }
 
-     public void LogWarningEvent(BuildWarningEventArgs e)
 
-     {
 
-         if (_treatWarningAsError)
 
-         {
 
-             var message = UnitTestBuildEngineMessage.From(e);
 
-             _errors.Add(message);
 
-             if (!ContinueOnError)
 
-             {
 
-                 Assert.Fail(message.Message);
 
-             }
 
-         }
 
-     }
 
- }
 
 
  |