Skip to content

Commit 9170758

Browse files
committed
Fixed Unit tests
1 parent 3ea95ee commit 9170758

File tree

4 files changed

+55
-26
lines changed

4 files changed

+55
-26
lines changed

Assets/_PackageRoot/Runtime/Future/Future.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -235,8 +235,8 @@ protected virtual void Clear()
235235
Debug.Log($"[ImageLoader] Future[id={Id}] Cleared\n{Url}");
236236
cleared = true;
237237

238-
lock (placeholders)
239-
placeholders.Clear();
238+
// lock (placeholders)
239+
// placeholders.Clear();
240240
OnLoadedFromMemoryCache = null;
241241
OnLoadingFromDiskCache = null;
242242
OnLoadedFromDiskCache = null;

Assets/_PackageRoot/Tests/Base/Utils/FutureListener.cs

Lines changed: 23 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,9 @@ namespace Extensions.Unity.ImageLoader.Tests.Utils
66
{
77
public partial class FutureListener<T>
88
{
9+
static uint idCounter = 0;
10+
11+
uint id = idCounter++;
912
List<EventData> events = new List<EventData>();
1013

1114
public IReadOnlyList<EventData> Events
@@ -23,63 +26,53 @@ public FutureListener(IFuture<T> future, bool ignoreLoadingWhenLoaded = false, b
2326
logLevel = ImageLoader.settings.debugLevel;
2427

2528
if (logLevel.Value.IsActive(DebugLevel.Trace))
26-
Debug.Log($"[FutureListener] Future[id={future.Id}] Created");
29+
Debug.Log($"[FutureListener id={id}] Future[id={future.Id}] Created. FutureStatus: {future.Status}");
2730
future.LoadedFromMemoryCache(value =>
2831
{
2932
if (logLevel.Value.IsActive(DebugLevel.Trace))
30-
Debug.Log($"[FutureListener] Future[id={future.Id}] LoadedFromMemoryCache: {value}");
33+
Debug.Log($"[FutureListener id={id}] Future[id={future.Id}] LoadedFromMemoryCache: {value}");
3134
lock (events)
3235
events.Add(new EventData { name = EventName.LoadedFromMemoryCache, value = value });
3336
});
3437
future.LoadingFromDiskCache(() =>
3538
{
3639
if (logLevel.Value.IsActive(DebugLevel.Trace))
37-
Debug.Log($"[FutureListener] Future[id={future.Id}] LoadingFromDiskCache");
40+
Debug.Log($"[FutureListener id={id}] Future[id={future.Id}] LoadingFromDiskCache");
3841
lock (events)
3942
events.Add(new EventData { name = EventName.LoadingFromDiskCache });
4043
}, ignoreWhenLoaded: ignoreLoadingWhenLoaded);
4144
future.LoadedFromDiskCache(value =>
4245
{
4346
if (logLevel.Value.IsActive(DebugLevel.Trace))
44-
Debug.Log($"[FutureListener] Future[id={future.Id}] LoadedFromDiskCache: {value}");
47+
Debug.Log($"[FutureListener id={id}] Future[id={future.Id}] LoadedFromDiskCache: {value}");
4548
lock (events)
4649
events.Add(new EventData { name = EventName.LoadedFromDiskCache, value = value });
4750
});
4851
future.LoadingFromSource(() =>
4952
{
5053
if (logLevel.Value.IsActive(DebugLevel.Trace))
51-
Debug.Log($"[FutureListener] Future[id={future.Id}] LoadingFromSource");
54+
Debug.Log($"[FutureListener id={id}] Future[id={future.Id}] LoadingFromSource");
5255
lock (events)
5356
events.Add(new EventData { name = EventName.LoadingFromSource });
5457
}, ignoreWhenLoaded: ignoreLoadingWhenLoaded);
5558
future.LoadedFromSource(value =>
5659
{
5760
if (logLevel.Value.IsActive(DebugLevel.Trace))
58-
Debug.Log($"[FutureListener] Future[id={future.Id}] LoadedFromSource: {value}");
61+
Debug.Log($"[FutureListener id={id}] Future[id={future.Id}] LoadedFromSource: {value}");
5962
lock (events)
6063
events.Add(new EventData { name = EventName.LoadedFromSource, value = value });
6164
});
6265
future.Loaded(value =>
6366
{
6467
if (logLevel.Value.IsActive(DebugLevel.Trace))
65-
Debug.Log($"[FutureListener] Future[id={future.Id}] Loaded: {value}");
68+
Debug.Log($"[FutureListener id={id}] Future[id={future.Id}] Loaded: {value}");
6669
lock (events)
6770
events.Add(new EventData { name = EventName.Loaded, value = value });
6871
});
69-
if (!ignorePlaceholder)
70-
{
71-
future.Consume(value =>
72-
{
73-
if (logLevel.Value.IsActive(DebugLevel.Trace))
74-
Debug.Log($"[FutureListener] Future[id={future.Id}] Consume: {value}");
75-
lock (events)
76-
events.Add(new EventData { name = EventName.Consumed, value = value });
77-
});
78-
}
7972
future.Failed(exception =>
8073
{
8174
if (logLevel.Value.IsActive(DebugLevel.Trace))
82-
Debug.Log($"[FutureListener] Future[id={future.Id}] Failed: {exception}");
75+
Debug.Log($"[FutureListener id={id}] Future[id={future.Id}] Failed: {exception}");
8376
lock (events)
8477
events.Add(new EventData { name = EventName.Failed, value = exception });
8578
});
@@ -88,15 +81,25 @@ public FutureListener(IFuture<T> future, bool ignoreLoadingWhenLoaded = false, b
8881
future.Canceled(() =>
8982
{
9083
if (logLevel.Value.IsActive(DebugLevel.Trace))
91-
Debug.Log($"[FutureListener] Future[id={future.Id}] Canceled");
84+
Debug.Log($"[FutureListener id={id}] Future[id={future.Id}] Canceled");
9285
lock (events)
9386
events.Add(new EventData { name = EventName.Canceled });
9487
});
9588
}
89+
if (!ignorePlaceholder)
90+
{
91+
future.Consume(value =>
92+
{
93+
if (logLevel.Value.IsActive(DebugLevel.Trace))
94+
Debug.Log($"[FutureListener id={id}] Future[id={future.Id}] Consume: {value}");
95+
lock (events)
96+
events.Add(new EventData { name = EventName.Consumed, value = value });
97+
});
98+
}
9699
future.Completed(value =>
97100
{
98101
if (logLevel.Value.IsActive(DebugLevel.Trace))
99-
Debug.Log($"[FutureListener] Future[id={future.Id}] Completed: {value}");
102+
Debug.Log($"[FutureListener id={id}] Future[id={future.Id}] Completed: {value}");
100103
lock (events)
101104
events.Add(new EventData { name = EventName.Completed, value = value });
102105
});

Assets/_PackageRoot/Tests/Base/Utils/TestUtils.Load.cs

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,8 @@ public static IEnumerator Load(string url, FutureLoadingFrom? expectedLoadingFro
5050
futureListener.Assert_Events_Equals(events);
5151
futureListener.Assert_Events_Value<bool>(EventName.Completed, success => success == true);
5252

53+
Assert.AreEqual(future.Status, expectedLoadedFrom.AsFutureStatus());
54+
5355
future.ToFutureListener(ignoreLoadingWhenLoaded: true, ignorePlaceholder: true)
5456
.Assert_Events_Equals(expectedLoadedFrom.ToEventName(), EventName.Loaded, EventName.Completed)
5557
.Assert_Events_Value<bool>(EventName.Completed, success => success == true);
@@ -114,6 +116,8 @@ public static IEnumerator LoadThenCancel(string url, FutureLoadingFrom? expected
114116
futureListener.Assert_Events_Equals(events);
115117
futureListener.Assert_Events_Value<bool>(EventName.Completed, success => success == true);
116118

119+
Assert.AreEqual(future.Status, expectedLoadedFrom.AsFutureStatus());
120+
117121
future.ToFutureListener(ignoreLoadingWhenLoaded: true, ignorePlaceholder: true)
118122
.Assert_Events_Equals(expectedLoadedFrom.ToEventName(), EventName.Loaded, EventName.Completed)
119123
.Assert_Events_Value<bool>(EventName.Completed, success => success == true);
@@ -180,13 +184,25 @@ public static IEnumerator LoadAndCancel(string url, FutureLoadingFrom? expectedL
180184
futureListener.Assert_Events_Equals(events);
181185
futureListener.Assert_Events_Value<bool>(EventName.Completed, success => success == shouldLoadFromMemoryCache);
182186

187+
Assert.AreEqual(future.Status, shouldLoadFromMemoryCache
188+
? FutureStatus.LoadedFromMemoryCache
189+
: FutureStatus.Canceled);
190+
191+
var lateEvents = shouldLoadFromMemoryCache
192+
? usePlaceholder
193+
? new[] { EventName.LoadedFromMemoryCache, EventName.Loaded, EventName.Consumed, EventName.Completed }
194+
: new[] { EventName.LoadedFromMemoryCache, EventName.Loaded, EventName.Completed }
195+
: usePlaceholder
196+
? new[] { expectedLoadingFrom.Value.ToEventName(), EventName.Canceled, EventName.Consumed, EventName.Completed }
197+
: new[] { expectedLoadingFrom.Value.ToEventName(), EventName.Canceled, EventName.Completed };
198+
183199
future.ToFutureListener(ignorePlaceholder: !usePlaceholder)
184-
.Assert_Events_Equals(events)
200+
.Assert_Events_Equals(lateEvents)
185201
.Assert_Events_Value<bool>(EventName.Completed, success => success == shouldLoadFromMemoryCache);
186202

187203
if (expectedLoadingFrom.HasValue && future.IsLoaded)
188204
future.ToFutureListener(ignoreLoadingWhenLoaded: true, ignorePlaceholder: !usePlaceholder)
189-
.Assert_Events_Equals(events.Except(new [] { expectedLoadingFrom.Value.ToEventName() }))
205+
.Assert_Events_Equals(lateEvents.Except(new [] { expectedLoadingFrom.Value.ToEventName() }))
190206
.Assert_Events_Value<bool>(EventName.Completed, success => success == shouldLoadFromMemoryCache);
191207

192208
future.Dispose();

Assets/_PackageRoot/Tests/Base/Utils/TestUtils.LoadFail.cs

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -52,13 +52,23 @@ public static IEnumerator LoadFail(string url, FutureLoadingFrom? expectedLoadin
5252
futureListener.Assert_Events_Equals(events);
5353
futureListener.Assert_Events_Value<bool>(EventName.Completed, success => success == false);
5454

55+
Assert.AreEqual(future.Status, FutureStatus.FailedToLoad);
56+
57+
var lateEvents = expectedLoadingFrom.HasValue
58+
? usePlaceholder
59+
? new[] { expectedLoadingFrom.Value.ToEventName(), EventName.Failed, EventName.Consumed, EventName.Completed }
60+
: new[] { expectedLoadingFrom.Value.ToEventName(), EventName.Failed, EventName.Completed }
61+
: usePlaceholder
62+
? new[] { EventName.Failed, EventName.Consumed, EventName.Completed}
63+
: new[] { EventName.Failed, EventName.Completed};
64+
5565
future.ToFutureListener(ignoreLoadingWhenLoaded: true, ignorePlaceholder: !usePlaceholder)
56-
.Assert_Events_Equals(events)
66+
.Assert_Events_Equals(lateEvents)
5767
.Assert_Events_Value<bool>(EventName.Completed, success => success == false);
5868

5969
if (expectedLoadingFrom.HasValue)
6070
future.ToFutureListener(ignorePlaceholder: !usePlaceholder)
61-
.Assert_Events_Equals(events)
71+
.Assert_Events_Equals(lateEvents)
6272
.Assert_Events_Value<bool>(EventName.Completed, success => success == false);
6373

6474
future.Dispose();

0 commit comments

Comments
 (0)