@@ -40,6 +40,57 @@ public IEnumerator CleanMemoryCache()
4040 Assert . AreEqual ( 0 , Reference < Sprite > . Counter ( url1 ) ) ;
4141 }
4242
43+ //[UnityTest]
44+ //public IEnumerator DisposeOnOutOfScope()
45+ //{
46+ // yield return ImageLoader.ClearCache().AsUniTask().ToCoroutine();
47+ // ImageLoader.settings.useDiskCache = true;
48+ // ImageLoader.settings.useMemoryCache = true;
49+
50+ // foreach (var url in ImageURLs)
51+ // {
52+ // var task = ImageLoader.LoadSpriteRef(url).AsTask();
53+ // while (!task.IsCompleted)
54+ // yield return null;
55+
56+ // Assert.AreEqual(1, Reference<Sprite>.Counter(url));
57+ // }
58+
59+ // yield return null;
60+ // System.GC.Collect(100, System.GCCollectionMode.Forced, blocking: true);
61+ // yield return null;
62+
63+ // foreach (var url in ImageURLs)
64+ // {
65+ // Assert.AreEqual(0, Reference<Sprite>.Counter(url));
66+ // }
67+ //}
68+
69+ [ UnityTest ]
70+ public IEnumerator DisposeOnOutDisposingBlock ( )
71+ {
72+ yield return ImageLoader . ClearCache ( ) . AsUniTask ( ) . ToCoroutine ( ) ;
73+ ImageLoader . settings . useDiskCache = true ;
74+ ImageLoader . settings . useMemoryCache = true ;
75+
76+ foreach ( var url in ImageURLs )
77+ {
78+ var task = ImageLoader . LoadSpriteRef ( url ) . AsTask ( ) ;
79+ while ( ! task . IsCompleted )
80+ yield return null ;
81+
82+ using ( var reference = task . Result )
83+ {
84+ Assert . AreEqual ( 1 , Reference < Sprite > . Counter ( url ) ) ;
85+ }
86+ Assert . AreEqual ( 0 , Reference < Sprite > . Counter ( url ) ) ;
87+ }
88+ foreach ( var url in ImageURLs )
89+ {
90+ Assert . AreEqual ( 0 , Reference < Sprite > . Counter ( url ) ) ;
91+ }
92+ }
93+
4394 [ UnityTest ]
4495 public IEnumerator CleanMemoryCacheAll ( )
4596 {
0 commit comments