MockRemoveOperation.cs 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. using System;
  2. using System.Linq;
  3. namespace UnityEditor.PackageManager.UI.Tests
  4. {
  5. internal class MockRemoveOperation : MockOperation, IRemoveOperation
  6. {
  7. public new event Action<Error> OnOperationError = delegate { };
  8. public new event Action OnOperationFinalized = delegate { };
  9. public event Action<PackageInfo> OnOperationSuccess = delegate { };
  10. public PackageInfo PackageInfo { get; set; }
  11. public MockRemoveOperation(MockOperationFactory factory) : base(factory)
  12. {
  13. }
  14. public void RemovePackageAsync(PackageInfo packageInfo, Action<PackageInfo> doneCallbackAction, Action<Error> errorCallbackAction = null)
  15. {
  16. if (ForceError != null)
  17. {
  18. if (errorCallbackAction != null)
  19. errorCallbackAction(ForceError);
  20. IsCompleted = true;
  21. OnOperationError(ForceError);
  22. OnOperationFinalized();
  23. return;
  24. }
  25. Factory.Packages = (from package in Factory.Packages
  26. where package.PackageId.ToLower() != packageInfo.PackageId.ToLower()
  27. select package);
  28. if (doneCallbackAction != null)
  29. doneCallbackAction(packageInfo);
  30. IsCompleted = true;
  31. OnOperationSuccess(packageInfo);
  32. OnOperationFinalized();
  33. }
  34. internal void ResetEvents()
  35. {
  36. OnOperationError = delegate { };
  37. OnOperationFinalized = delegate { };
  38. OnOperationSuccess = delegate { };
  39. }
  40. }
  41. }