Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 6
0
        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));
        }
Ejemplo n.º 7
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>());
        }
Ejemplo n.º 8
0
        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));
        }
Ejemplo n.º 9
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));
        }