9
9
10
10
using KubeOps . KubernetesClient ;
11
11
using KubeOps . Operator ;
12
+ using KubeOps . Operator . Caching ;
12
13
using KubeOps . Operator . DevOps ;
13
14
using KubeOps . Operator . Kubernetes ;
15
+ using KubeOps . Test . TestEntities ;
16
+ using KubeOps . TestOperator . Entities ;
14
17
15
18
using Microsoft . Extensions . Logging . Abstractions ;
16
19
using Microsoft . Reactive . Testing ;
@@ -35,6 +38,10 @@ public class TestResource : IKubernetesObject<V1ObjectMeta>
35
38
36
39
private readonly Mock < IKubernetesClient > _client = new ( ) ;
37
40
private readonly Mock < IResourceWatcherMetrics < TestResource > > _metrics = new ( ) ;
41
+ private readonly Mock < IResourceCache < TestResource > > _resourceCacheMock ;
42
+
43
+ public ResourceWatcherTest ( ) =>
44
+ _resourceCacheMock = new Mock < IResourceCache < TestResource > > ( MockBehavior . Strict ) ;
38
45
39
46
[ Fact ]
40
47
public async Task Should_Restart_Watcher_On_Exception ( )
@@ -50,6 +57,7 @@ public async Task Should_Restart_Watcher_On_Exception()
50
57
_client . Object ,
51
58
new NullLogger < ResourceWatcher < TestResource > > ( ) ,
52
59
_metrics . Object ,
60
+ _resourceCacheMock . Object ,
53
61
settings ) ;
54
62
55
63
var testScheduler = new TestScheduler ( ) ;
@@ -105,6 +113,7 @@ public async Task Should_Not_Throw_Overflow_Exception()
105
113
_client . Object ,
106
114
new NullLogger < ResourceWatcher < TestResource > > ( ) ,
107
115
_metrics . Object ,
116
+ _resourceCacheMock . Object ,
108
117
settings ) ;
109
118
110
119
var testScheduler = new TestScheduler ( ) ;
@@ -139,7 +148,12 @@ public async Task Should_Not_Dispose_Reconnect_Subject_Or_Throw_Exception_After_
139
148
_metrics . Setup ( c => c . Running ) . Returns ( Mock . Of < IGauge > ( ) ) ;
140
149
_metrics . Setup ( c => c . WatcherExceptions ) . Returns ( Mock . Of < ICounter > ( ) ) ;
141
150
142
- using var resourceWatcher = new ResourceWatcher < TestResource > ( _client . Object , new NullLogger < ResourceWatcher < TestResource > > ( ) , _metrics . Object , settings ) ;
151
+ using var resourceWatcher = new ResourceWatcher < TestResource > (
152
+ _client . Object ,
153
+ new NullLogger < ResourceWatcher < TestResource > > ( ) ,
154
+ _metrics . Object ,
155
+ _resourceCacheMock . Object ,
156
+ settings ) ;
143
157
144
158
await resourceWatcher . StartAsync ( ) ;
145
159
@@ -166,7 +180,12 @@ public async Task Should_Not_Restart_On_Serialization_Exception()
166
180
_metrics . Setup ( c => c . Running ) . Returns ( Mock . Of < IGauge > ( ) ) ;
167
181
_metrics . Setup ( c => c . WatcherExceptions ) . Returns ( Mock . Of < ICounter > ( ) ) ;
168
182
169
- using var resourceWatcher = new ResourceWatcher < TestResource > ( _client . Object , new NullLogger < ResourceWatcher < TestResource > > ( ) , _metrics . Object , settings ) ;
183
+ using var resourceWatcher = new ResourceWatcher < TestResource > (
184
+ _client . Object ,
185
+ new NullLogger < ResourceWatcher < TestResource > > ( ) ,
186
+ _metrics . Object ,
187
+ _resourceCacheMock . Object ,
188
+ settings ) ;
170
189
171
190
await resourceWatcher . StartAsync ( ) ;
172
191
@@ -188,7 +207,12 @@ public async Task Should_Be_Restarted_After_TaskCanceledException_IOException()
188
207
189
208
SetupResourceWatcherMetrics ( ) ;
190
209
191
- using var resourceWatcher = new ResourceWatcher < TestResource > ( _client . Object , new NullLogger < ResourceWatcher < TestResource > > ( ) , _metrics . Object , settings ) ;
210
+ using var resourceWatcher = new ResourceWatcher < TestResource > (
211
+ _client . Object ,
212
+ new NullLogger < ResourceWatcher < TestResource > > ( ) ,
213
+ _metrics . Object ,
214
+ _resourceCacheMock . Object ,
215
+ settings ) ;
192
216
193
217
await resourceWatcher . StartAsync ( ) ;
194
218
@@ -212,6 +236,9 @@ public async Task Should_Publish_On_Watcher_Event()
212
236
213
237
Action < WatchEventType , TestResource > onWatcherEvent = null ! ;
214
238
239
+ _resourceCacheMock . Setup ( c => c . Exists ( It . IsAny < TestResource > ( ) ) )
240
+ . Returns ( false ) ;
241
+
215
242
_client . Setup (
216
243
c => c . Watch (
217
244
It . IsAny < TimeSpan > ( ) ,
@@ -234,6 +261,7 @@ public async Task Should_Publish_On_Watcher_Event()
234
261
_client . Object ,
235
262
new NullLogger < ResourceWatcher < TestResource > > ( ) ,
236
263
_metrics . Object ,
264
+ _resourceCacheMock . Object ,
237
265
settings ) ;
238
266
239
267
var watchEvents = resourceWatcher . WatchEvents . Replay ( 1 ) ;
@@ -273,7 +301,12 @@ public async Task Should_Restart_Watcher_On_Close()
273
301
_metrics . Setup ( c => c . Running ) . Returns ( Mock . Of < IGauge > ( ) ) ;
274
302
_metrics . Setup ( c => c . WatcherClosed ) . Returns ( Mock . Of < ICounter > ( ) ) ;
275
303
276
- using var resourceWatcher = new ResourceWatcher < TestResource > ( _client . Object , new NullLogger < ResourceWatcher < TestResource > > ( ) , _metrics . Object , settings ) ;
304
+ using var resourceWatcher = new ResourceWatcher < TestResource > (
305
+ _client . Object ,
306
+ new NullLogger < ResourceWatcher < TestResource > > ( ) ,
307
+ _metrics . Object ,
308
+ _resourceCacheMock . Object ,
309
+ settings ) ;
277
310
278
311
await resourceWatcher . StartAsync ( ) ;
279
312
0 commit comments