using System; using System.Linq; namespace UnityEditor.PackageManager.UI.Tests { internal class MockRemoveOperation : MockOperation, IRemoveOperation { public new event Action OnOperationError = delegate { }; public new event Action OnOperationFinalized = delegate { }; public event Action OnOperationSuccess = delegate { }; public PackageInfo PackageInfo { get; set; } public MockRemoveOperation(MockOperationFactory factory) : base(factory) { } public void RemovePackageAsync(PackageInfo packageInfo, Action doneCallbackAction, Action errorCallbackAction = null) { if (ForceError != null) { if (errorCallbackAction != null) errorCallbackAction(ForceError); IsCompleted = true; OnOperationError(ForceError); OnOperationFinalized(); return; } Factory.Packages = (from package in Factory.Packages where package.PackageId.ToLower() != packageInfo.PackageId.ToLower() select package); if (doneCallbackAction != null) doneCallbackAction(packageInfo); IsCompleted = true; OnOperationSuccess(packageInfo); OnOperationFinalized(); } internal void ResetEvents() { OnOperationError = delegate { }; OnOperationFinalized = delegate { }; OnOperationSuccess = delegate { }; } } }