using System.Collections.Generic; using System.Linq; namespace UnityEditor.PackageManager.UI.Tests { internal class MockOperationFactory : IOperationFactory { public IEnumerable Packages { get; set; } public MockAddOperation AddOperation { get; set; } public MockSearchOperation SearchOperation { private get; set; } public MockRemoveOperation RemoveOperation { private get; set; } public MockOperationFactory() { Packages = Enumerable.Empty(); } public void ResetOperations() { if (AddOperation != null) AddOperation.ResetEvents(); AddOperation = null; if (RemoveOperation != null) RemoveOperation.ResetEvents(); RemoveOperation = null; SearchOperation = null; } public IListOperation CreateListOperation(bool offlineMode = false) { return new MockListOperation(this); } public ISearchOperation CreateSearchOperation() { return SearchOperation ?? new MockSearchOperation(this, Packages); } public IAddOperation CreateAddOperation() { return AddOperation ?? new MockAddOperation(this, Packages.First()); } public IRemoveOperation CreateRemoveOperation() { return RemoveOperation ?? new MockRemoveOperation(this); } } }