You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

51 lines
1.5 KiB

  1. using System.Collections.Generic;
  2. using System.Linq;
  3. namespace UnityEditor.PackageManager.UI.Tests
  4. {
  5. internal class MockOperationFactory : IOperationFactory
  6. {
  7. public IEnumerable<PackageInfo> Packages { get; set; }
  8. public MockAddOperation AddOperation { get; set; }
  9. public MockSearchOperation SearchOperation { private get; set; }
  10. public MockRemoveOperation RemoveOperation { private get; set; }
  11. public MockOperationFactory()
  12. {
  13. Packages = Enumerable.Empty<PackageInfo>();
  14. }
  15. public void ResetOperations()
  16. {
  17. if (AddOperation != null)
  18. AddOperation.ResetEvents();
  19. AddOperation = null;
  20. if (RemoveOperation != null)
  21. RemoveOperation.ResetEvents();
  22. RemoveOperation = null;
  23. SearchOperation = null;
  24. }
  25. public IListOperation CreateListOperation(bool offlineMode = false)
  26. {
  27. return new MockListOperation(this);
  28. }
  29. public ISearchOperation CreateSearchOperation()
  30. {
  31. return SearchOperation ?? new MockSearchOperation(this, Packages);
  32. }
  33. public IAddOperation CreateAddOperation()
  34. {
  35. return AddOperation ?? new MockAddOperation(this, Packages.First());
  36. }
  37. public IRemoveOperation CreateRemoveOperation()
  38. {
  39. return RemoveOperation ?? new MockRemoveOperation(this);
  40. }
  41. }
  42. }