@@ -13,7 +13,7 @@ namespace IntegrationTests
13
13
class RepositoryWatcherTests : BaseGitEnvironmentTest
14
14
{
15
15
[ Test , Category ( "TimeSensitive" ) ]
16
- public async Task ShouldDetectFileChanges ( )
16
+ public async Task ShouldDetectFileChangesAndCommit ( )
17
17
{
18
18
await Initialize ( TestRepoMasterCleanSynchronized , initializeRepository : false ) ;
19
19
@@ -26,6 +26,8 @@ public async Task ShouldDetectFileChanges()
26
26
27
27
repositoryWatcher . Initialize ( ) ;
28
28
repositoryWatcher . Start ( ) ;
29
+ repositoryWatcher . Stop ( ) ;
30
+
29
31
try
30
32
{
31
33
var foobarTxt = TestRepoMasterCleanSynchronized . Combine ( "foobar.txt" ) ;
@@ -35,17 +37,62 @@ public async Task ShouldDetectFileChanges()
35
37
foobarTxt . WriteAllText ( "foobar" ) ;
36
38
await TaskManager . Wait ( ) ;
37
39
38
- watcherAutoResetEvent . RepositoryChanged . WaitOne ( TimeSpan . FromSeconds ( 2 ) ) . Should ( ) . BeTrue ( ) ;
39
-
40
40
Logger . Trace ( "Continue test" ) ;
41
41
42
+ repositoryWatcher . Start ( ) ;
43
+
44
+ watcherAutoResetEvent . RepositoryChanged . WaitOne ( TimeSpan . FromSeconds ( 2 ) ) . Should ( ) . BeTrue ( ) ;
45
+ watcherAutoResetEvent . Reset ( ) ;
46
+
42
47
repositoryWatcherListener . DidNotReceive ( ) . HeadChanged ( ) ;
43
48
repositoryWatcherListener . DidNotReceive ( ) . ConfigChanged ( ) ;
44
49
repositoryWatcherListener . DidNotReceive ( ) . RepositoryCommitted ( ) ;
45
50
repositoryWatcherListener . DidNotReceive ( ) . IndexChanged ( ) ;
46
51
repositoryWatcherListener . Received ( ) . RepositoryChanged ( ) ;
47
52
repositoryWatcherListener . DidNotReceive ( ) . LocalBranchesChanged ( ) ;
48
53
repositoryWatcherListener . DidNotReceive ( ) . RemoteBranchesChanged ( ) ;
54
+ repositoryWatcherListener . ClearReceivedCalls ( ) ;
55
+
56
+ repositoryWatcher . Stop ( ) ;
57
+ Logger . Trace ( "Issuing Command" ) ;
58
+
59
+ await GitClient . AddAll ( ) . StartAsAsync ( ) ;
60
+
61
+ Logger . Trace ( "Completed Command" ) ;
62
+ repositoryWatcher . Start ( ) ;
63
+
64
+ watcherAutoResetEvent . IndexChanged . WaitOne ( TimeSpan . FromSeconds ( 2 ) ) . Should ( ) . BeTrue ( ) ;
65
+ watcherAutoResetEvent . Reset ( ) ;
66
+
67
+ repositoryWatcherListener . DidNotReceive ( ) . HeadChanged ( ) ;
68
+ repositoryWatcherListener . DidNotReceive ( ) . ConfigChanged ( ) ;
69
+ repositoryWatcherListener . DidNotReceive ( ) . RepositoryCommitted ( ) ;
70
+ repositoryWatcherListener . Received ( 1 ) . IndexChanged ( ) ;
71
+ repositoryWatcherListener . DidNotReceive ( ) . RepositoryChanged ( ) ;
72
+ repositoryWatcherListener . DidNotReceive ( ) . LocalBranchesChanged ( ) ;
73
+ repositoryWatcherListener . DidNotReceive ( ) . RemoteBranchesChanged ( ) ;
74
+ repositoryWatcherListener . ClearReceivedCalls ( ) ;
75
+
76
+ repositoryWatcher . Stop ( ) ;
77
+ Logger . Trace ( "Issuing Command" ) ;
78
+
79
+ await GitClient . Commit ( "Test Commit" , string . Empty ) . StartAsAsync ( ) ;
80
+
81
+ Logger . Trace ( "Completed Command" ) ;
82
+ repositoryWatcher . Start ( ) ;
83
+
84
+ watcherAutoResetEvent . RepositoryCommitted . WaitOne ( TimeSpan . FromSeconds ( 2 ) ) . Should ( ) . BeTrue ( ) ;
85
+ watcherAutoResetEvent . IndexChanged . WaitOne ( TimeSpan . FromSeconds ( 2 ) ) . Should ( ) . BeTrue ( ) ;
86
+ watcherAutoResetEvent . Reset ( ) ;
87
+
88
+ repositoryWatcherListener . DidNotReceive ( ) . HeadChanged ( ) ;
89
+ repositoryWatcherListener . DidNotReceive ( ) . ConfigChanged ( ) ;
90
+ repositoryWatcherListener . Received ( 1 ) . RepositoryCommitted ( ) ;
91
+ repositoryWatcherListener . Received ( 1 ) . IndexChanged ( ) ;
92
+ repositoryWatcherListener . DidNotReceive ( ) . RepositoryChanged ( ) ;
93
+ repositoryWatcherListener . Received ( 1 ) . LocalBranchesChanged ( ) ;
94
+ repositoryWatcherListener . DidNotReceive ( ) . RemoteBranchesChanged ( ) ;
95
+ repositoryWatcherListener . ClearReceivedCalls ( ) ;
49
96
}
50
97
finally
51
98
{
@@ -176,6 +223,7 @@ public async Task ShouldDetectBranchCreate()
176
223
repositoryWatcher . Start ( ) ;
177
224
178
225
watcherAutoResetEvent . LocalBranchesChanged . WaitOne ( TimeSpan . FromSeconds ( 2 ) ) . Should ( ) . BeTrue ( ) ;
226
+ watcherAutoResetEvent . Reset ( ) ;
179
227
180
228
repositoryWatcherListener . DidNotReceive ( ) . HeadChanged ( ) ;
181
229
repositoryWatcherListener . DidNotReceive ( ) . ConfigChanged ( ) ;
@@ -206,7 +254,6 @@ public async Task ShouldDetectBranchCreate()
206
254
repositoryWatcherListener . DidNotReceive ( ) . RepositoryChanged ( ) ;
207
255
repositoryWatcherListener . Received ( 1 ) . LocalBranchesChanged ( ) ;
208
256
repositoryWatcherListener . DidNotReceive ( ) . RemoteBranchesChanged ( ) ;
209
- repositoryWatcherListener . ClearReceivedCalls ( ) ;
210
257
}
211
258
finally
212
259
{
@@ -243,6 +290,7 @@ public async Task ShouldDetectChangesToRemotes()
243
290
repositoryWatcher . Start ( ) ;
244
291
watcherAutoResetEvent . ConfigChanged . WaitOne ( TimeSpan . FromSeconds ( 2 ) ) . Should ( ) . BeTrue ( ) ;
245
292
watcherAutoResetEvent . RemoteBranchesChanged . WaitOne ( TimeSpan . FromSeconds ( 2 ) ) . Should ( ) . BeTrue ( ) ;
293
+ watcherAutoResetEvent . Reset ( ) ;
246
294
247
295
repositoryWatcherListener . DidNotReceive ( ) . HeadChanged ( ) ;
248
296
repositoryWatcherListener . Received ( 1 ) . ConfigChanged ( ) ;
@@ -350,7 +398,13 @@ public async Task ShouldDetectGitFetch()
350
398
351
399
Logger . Trace ( "Continue test" ) ;
352
400
353
- repositoryWatcherListener . AssertDidNotReceiveAnyCalls ( ) ;
401
+ repositoryWatcherListener . DidNotReceive ( ) . HeadChanged ( ) ;
402
+ repositoryWatcherListener . DidNotReceive ( ) . ConfigChanged ( ) ;
403
+ repositoryWatcherListener . DidNotReceive ( ) . RepositoryCommitted ( ) ;
404
+ repositoryWatcherListener . DidNotReceive ( ) . IndexChanged ( ) ;
405
+ repositoryWatcherListener . DidNotReceive ( ) . RepositoryChanged ( ) ;
406
+ repositoryWatcherListener . DidNotReceive ( ) . LocalBranchesChanged ( ) ;
407
+ repositoryWatcherListener . DidNotReceive ( ) . RemoteBranchesChanged ( ) ;
354
408
}
355
409
finally
356
410
{
@@ -454,5 +508,16 @@ class RepositoryWatcherAutoResetEvent
454
508
public AutoResetEvent RepositoryChanged { get ; } = new AutoResetEvent ( false ) ;
455
509
public AutoResetEvent LocalBranchesChanged { get ; } = new AutoResetEvent ( false ) ;
456
510
public AutoResetEvent RemoteBranchesChanged { get ; } = new AutoResetEvent ( false ) ;
511
+
512
+ public void Reset ( )
513
+ {
514
+ HeadChanged . Reset ( ) ;
515
+ ConfigChanged . Reset ( ) ;
516
+ RepositoryCommitted . Reset ( ) ;
517
+ IndexChanged . Reset ( ) ;
518
+ RepositoryChanged . Reset ( ) ;
519
+ LocalBranchesChanged . Reset ( ) ;
520
+ RemoteBranchesChanged . Reset ( ) ;
521
+ }
457
522
}
458
523
}
0 commit comments