1
1
using System ;
2
- using System . Collections . Generic ;
3
- using System . Linq ;
4
- using System . Text ;
5
2
using System . Threading . Tasks ;
6
3
using CacheTower . Extensions ;
7
4
using Microsoft . VisualStudio . TestTools . UnitTesting ;
8
- using Moq ;
5
+ using NSubstitute ;
9
6
10
7
namespace CacheTower . Tests . Extensions
11
8
{
@@ -27,76 +24,67 @@ public async Task AcceptsEmptyExtensions()
27
24
[ TestMethod ]
28
25
public async Task DistributedLockExtension ( )
29
26
{
30
- var cacheStackMock = new Mock < ICacheStack > ( ) ;
31
- var distributedLockMock = new Mock < IDistributedLockExtension > ( ) ;
32
- await using var container = new ExtensionContainer ( new [ ] { distributedLockMock . Object } ) ;
27
+ var cacheStackMock = Substitute . For < ICacheStack > ( ) ;
28
+ var distributedLockMock = Substitute . For < IDistributedLockExtension > ( ) ;
29
+ await using var container = new ExtensionContainer ( new [ ] { distributedLockMock } ) ;
33
30
34
- container . Register ( cacheStackMock . Object ) ;
31
+ container . Register ( cacheStackMock ) ;
35
32
36
33
var distributedLock = await container . AwaitAccessAsync ( "DistributedLockCacheKey" ) ;
37
34
38
- distributedLockMock . Verify ( e => e . Register ( cacheStackMock . Object ) , Times . Once ) ;
39
- distributedLockMock . Verify ( e => e . AwaitAccessAsync ( "DistributedLockCacheKey" ) , Times . Once ) ;
35
+ distributedLockMock . Received ( 1 ) . Register ( cacheStackMock ) ;
36
+ await distributedLockMock . Received ( 1 ) . AwaitAccessAsync ( "DistributedLockCacheKey" ) ;
40
37
}
41
38
42
39
[ TestMethod ]
43
40
public async Task CacheChangeExtension_Update ( )
44
41
{
45
- var cacheStackMock = new Mock < ICacheStack > ( ) ;
46
- var valueRefreshMock = new Mock < ICacheChangeExtension > ( ) ;
47
- await using var container = new ExtensionContainer ( new [ ] { valueRefreshMock . Object } ) ;
42
+ var cacheStackMock = Substitute . For < ICacheStack > ( ) ;
43
+ var valueRefreshMock = Substitute . For < ICacheChangeExtension > ( ) ;
44
+ await using var container = new ExtensionContainer ( new [ ] { valueRefreshMock } ) ;
48
45
49
- container . Register ( cacheStackMock . Object ) ;
46
+ container . Register ( cacheStackMock ) ;
50
47
51
48
var expiry = DateTime . UtcNow . AddDays ( 1 ) ;
52
49
53
50
await container . OnCacheUpdateAsync ( "CacheChangeKey" , expiry , CacheUpdateType . AddEntry ) ;
54
51
55
- valueRefreshMock . Verify ( e => e . Register ( cacheStackMock . Object ) , Times . Once ) ;
56
- valueRefreshMock . Verify ( e =>
57
- e . OnCacheUpdateAsync ( "CacheChangeKey" , expiry , CacheUpdateType . AddEntry ) ,
58
- Times . Once
59
- ) ;
52
+ valueRefreshMock . Received ( 1 ) . Register ( cacheStackMock ) ;
53
+ await valueRefreshMock . Received ( 1 ) . OnCacheUpdateAsync ( "CacheChangeKey" , expiry , CacheUpdateType . AddEntry ) ;
60
54
}
61
55
62
56
[ TestMethod ]
63
57
public async Task CacheChangeExtension_Eviction ( )
64
58
{
65
- var cacheStackMock = new Mock < ICacheStack > ( ) ;
66
- var valueRefreshMock = new Mock < ICacheChangeExtension > ( ) ;
67
- await using var container = new ExtensionContainer ( new [ ] { valueRefreshMock . Object } ) ;
59
+ var cacheStackMock = Substitute . For < ICacheStack > ( ) ;
60
+ var valueRefreshMock = Substitute . For < ICacheChangeExtension > ( ) ;
61
+ await using var container = new ExtensionContainer ( new [ ] { valueRefreshMock } ) ;
68
62
69
- container . Register ( cacheStackMock . Object ) ;
63
+ container . Register ( cacheStackMock ) ;
70
64
71
65
var expiry = DateTime . UtcNow . AddDays ( 1 ) ;
72
66
73
67
await container . OnCacheEvictionAsync ( "CacheChangeKey" ) ;
74
68
75
- valueRefreshMock . Verify ( e => e . Register ( cacheStackMock . Object ) , Times . Once ) ;
76
- valueRefreshMock . Verify ( e =>
77
- e . OnCacheEvictionAsync ( "CacheChangeKey" ) ,
78
- Times . Once
79
- ) ;
69
+ valueRefreshMock . Received ( 1 ) . Register ( cacheStackMock ) ;
70
+ await valueRefreshMock . Received ( 1 ) . OnCacheEvictionAsync ( "CacheChangeKey" ) ;
80
71
}
81
72
82
73
[ TestMethod ]
83
74
public async Task CacheChangeExtension_Flush ( )
84
75
{
85
- var cacheStackMock = new Mock < ICacheStack > ( ) ;
86
- var valueRefreshMock = new Mock < ICacheChangeExtension > ( ) ;
87
- await using var container = new ExtensionContainer ( new [ ] { valueRefreshMock . Object } ) ;
76
+ var cacheStackMock = Substitute . For < ICacheStack > ( ) ;
77
+ var valueRefreshMock = Substitute . For < ICacheChangeExtension > ( ) ;
78
+ await using var container = new ExtensionContainer ( new [ ] { valueRefreshMock } ) ;
88
79
89
- container . Register ( cacheStackMock . Object ) ;
80
+ container . Register ( cacheStackMock ) ;
90
81
91
82
var expiry = DateTime . UtcNow . AddDays ( 1 ) ;
92
83
93
84
await container . OnCacheFlushAsync ( ) ;
94
85
95
- valueRefreshMock . Verify ( e => e . Register ( cacheStackMock . Object ) , Times . Once ) ;
96
- valueRefreshMock . Verify ( e =>
97
- e . OnCacheFlushAsync ( ) ,
98
- Times . Once
99
- ) ;
86
+ valueRefreshMock . Received ( 1 ) . Register ( cacheStackMock ) ;
87
+ await valueRefreshMock . Received ( 1 ) . OnCacheFlushAsync ( ) ;
100
88
}
101
89
}
102
90
}
0 commit comments