3
3
// See the LICENSE file in the project root for more information.
4
4
// Maintainer: Argo Zhang([email protected] ) Website: https://www.blazor.zone
5
5
6
+ using Microsoft . Extensions . Caching . Memory ;
7
+ using Microsoft . Extensions . Primitives ;
8
+
6
9
namespace UnitTest . Extensions ;
7
10
8
11
public class ICacheEntryExtensionsTest : BootstrapBlazorTestBase
@@ -16,7 +19,42 @@ public void GetLastAccessed_Ok()
16
19
} ) ;
17
20
18
21
Assert . True ( Cache . TryGetCacheEntry ( "test_01" , out var entry ) ) ;
19
- var v = entry . GetLastAccessed ( ) ;
22
+ var v = entry . GetLastAccessed ( true ) ;
20
23
Assert . NotNull ( v ) ;
21
24
}
25
+
26
+ [ Fact ]
27
+ public void GetLastAccessed_Null ( )
28
+ {
29
+ var mock = new MockCacheEntry ( ) ;
30
+ var v = mock . GetLastAccessed ( true ) ;
31
+ Assert . Null ( v ) ;
32
+ }
33
+
34
+ class MockCacheEntry : ICacheEntry
35
+ {
36
+ public object Key { get ; }
37
+ public object ? Value { get ; set ; }
38
+ public DateTimeOffset ? AbsoluteExpiration { get ; set ; }
39
+ public TimeSpan ? AbsoluteExpirationRelativeToNow { get ; set ; }
40
+ public TimeSpan ? SlidingExpiration { get ; set ; }
41
+ public IList < IChangeToken > ExpirationTokens { get ; }
42
+ public IList < PostEvictionCallbackRegistration > PostEvictionCallbacks { get ; }
43
+ public CacheItemPriority Priority { get ; set ; }
44
+ public long ? Size { get ; set ; }
45
+
46
+ private int LastAccessed { get ; set ; }
47
+
48
+ public MockCacheEntry ( )
49
+ {
50
+ Key = "_test" ;
51
+ ExpirationTokens = [ ] ;
52
+ PostEvictionCallbacks = [ ] ;
53
+ }
54
+
55
+ public void Dispose ( )
56
+ {
57
+ throw new NotImplementedException ( ) ;
58
+ }
59
+ }
22
60
}
0 commit comments