public IEnumerator PreloadAsync_Disposed_ObjectDisposedException() { var preloader = new AddressablesPreloader(); var referenceCounter = new ReferenceCounter(TestStrings.TestPrefabPath); preloader.Dispose(); Exception ex = null; try { preloader.PreloadAsync(TestStrings.TestPrefabAddress).Wait(); } catch (AggregateException e) { ex = e.InnerException; preloader.Dispose(); } Assert.That(ex, Is.TypeOf <ObjectDisposedException>()); // The handle is completely discarded in the next frame so wait a frame. yield return(null); Assert.That(referenceCounter.ReferenceCount, Is.EqualTo(0)); }
public void BindTo_BindToNullGameObject_ArgumentNullException() { GameObject gameObject = null; var preloader = new AddressablesPreloader(); Assert.Throws <ArgumentNullException>(() => { preloader.BindTo(gameObject); }); Assert.That(preloader.IsDisposed, Is.True); }
public void BindTo_BindToNullEventDispatcher_ArgumentNullException() { AnonymousEventDispatcher eventDispatcher = null; var preloader = new AddressablesPreloader(); Assert.Throws <ArgumentNullException>(() => { preloader.BindTo(eventDispatcher); }); Assert.That(preloader.IsDisposed, Is.True); }
public void BindTo_BindToEventDispatcher() { var eventDispatcher = new AnonymousEventDispatcher(); var preloader = new AddressablesPreloader().BindTo(eventDispatcher); Assert.That(preloader.IsDisposed, Is.False); eventDispatcher.Dispatch(); Assert.That(preloader.IsDisposed, Is.True); }
public IEnumerator BindTo_BindToGameObject() { var gameObject = new GameObject(); var preloader = new AddressablesPreloader().BindTo(gameObject); Assert.That(preloader.IsDisposed, Is.False); Object.Destroy(gameObject); yield return(null); Assert.That(preloader.IsDisposed, Is.True); }
public IEnumerator Get_Disposed_ObjectDisposedException() { var preloader = new AddressablesPreloader(); var referenceCounter = new ReferenceCounter(TestStrings.TestPrefabPath); yield return(preloader.PreloadAsync(TestStrings.TestPrefabAddress).AsIEnumerator()); Assert.That(referenceCounter.ReferenceCount, Is.EqualTo(1)); preloader.Dispose(); Assert.Throws <ObjectDisposedException>(() => { preloader.Get <GameObject>(TestStrings.TestPrefabAddress); }); // The handle is completely discarded in the next frame so wait a frame. yield return(null); Assert.That(referenceCounter.ReferenceCount, Is.EqualTo(0)); }
public void PreloadAsync_KeysIsEmpty_ArgumentException() { var preloader = new AddressablesPreloader(); Exception ex = null; try { preloader.PreloadAsync().Wait(); } catch (AggregateException e) { ex = e.InnerException; preloader.Dispose(); } Assert.That(ex, Is.TypeOf <ArgumentException>()); }
public IEnumerator PreloadAsync_CanPreload() { var preloader = new AddressablesPreloader(); var referenceCounter = new ReferenceCounter(TestStrings.TestPrefabPath); yield return(preloader.PreloadAsync(TestStrings.TestPrefabAddress).AsIEnumerator()); Assert.That(referenceCounter.ReferenceCount, Is.EqualTo(1)); var prefab = preloader.Get <GameObject>(TestStrings.TestPrefabAddress); Assert.That(prefab, Is.EqualTo(AssetDatabase.LoadAssetAtPath <GameObject>(TestStrings.TestPrefabPath))); preloader.Dispose(); // The handle is completely discarded in the next frame so wait a frame. yield return(null); Assert.That(referenceCounter.ReferenceCount, Is.EqualTo(0)); }
public IEnumerator Get_NotPreloaded_InvalidOperationException() { var preloader = new AddressablesPreloader(); var referenceCounter = new ReferenceCounter(TestStrings.TestPrefabPath); Assert.Throws <InvalidOperationException>(() => { try { preloader.Get <GameObject>(TestStrings.TestPrefabAddress); } finally { preloader.Dispose(); } }); // The handle is completely discarded in the next frame so wait a frame. yield return(null); Assert.That(referenceCounter.ReferenceCount, Is.EqualTo(0)); }