using System; using System.Collections.Generic; using UnityEngine.ResourceManagement.ResourceLocations; using UnityEngine.ResourceManagement.ResourceProviders; namespace UnityEngine.ResourceManagement.Tests { class MockProvider : IResourceProvider, IUpdateReceiver { public string _ProviderId = "MockProvider"; public ProviderBehaviourFlags _BehaviourFlags = ProviderBehaviourFlags.None; public List> ReleaseLog = new List>(); public List ProvideLog = new List(); public int UpdateCount = 0; public string ProviderId { get { return _ProviderId; } } public ProviderBehaviourFlags BehaviourFlags { get { return _BehaviourFlags; } } public Action ProvideCallback; public Type DefaultType = typeof(object); public Func CanProvideCallback = (x, y) => true; public void Update(float unscaledDeltaTime) { UpdateCount++; } public void Release(IResourceLocation location, object asset) { ReleaseLog.Add(new KeyValuePair(location, asset)); } public void Provide(ProvideHandle provideHandle) { ProvideLog.Add(provideHandle.Location); if (ProvideCallback != null && (ProvideCallback as Action) != null) { ProvideCallback(provideHandle); return; } throw new NotImplementedException(); } public Type GetDefaultType(IResourceLocation location) { return DefaultType; } public bool CanProvide(Type t, IResourceLocation location) { return CanProvideCallback(t, location); } } }