Skip to content
This repository was archived by the owner on Dec 5, 2024. It is now read-only.

Commit 2ae4ecb

Browse files
Well that is not working as expected
1 parent acb8f3a commit 2ae4ecb

File tree

3 files changed

+122
-56
lines changed

3 files changed

+122
-56
lines changed

src/IntegrationTests/Events/RepositoryManagerTests.cs

Lines changed: 44 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
using System.Collections.Generic;
1+
using System;
2+
using System.Collections.Generic;
23
using System.Threading;
34
using FluentAssertions;
45
using GitHub.Unity;
@@ -16,8 +17,10 @@ public void ShouldDetectFileChanges()
1617
{
1718
InitializeEnvironment(TestRepoMasterCleanSynchronized);
1819

20+
var managerAutoResetEvent = new RepositoryManagerAutoResetEvent();
21+
1922
var repositoryManagerListener = Substitute.For<IRepositoryManagerListener>();
20-
repositoryManagerListener.AttachListener(RepositoryManager);
23+
repositoryManagerListener.AttachListener(RepositoryManager, managerAutoResetEvent);
2124

2225
var expected = new GitStatus {
2326
Behind = 1,
@@ -38,7 +41,7 @@ public void ShouldDetectFileChanges()
3841
var foobarTxt = TestRepoMasterCleanSynchronized.Combine("foobar.txt");
3942
foobarTxt.WriteAllText("foobar");
4043

41-
Thread.Sleep(4000);
44+
managerAutoResetEvent.OnRepositoryChanged.WaitOne(TimeSpan.FromSeconds(2)).Should().BeTrue();
4245

4346
Logger.Trace("Continue test");
4447

@@ -53,17 +56,17 @@ public void ShouldDetectFileChanges()
5356
repositoryManagerListener.DidNotReceive().OnRemoteBranchListChanged();
5457
repositoryManagerListener.DidNotReceive().OnRemoteOrTrackingChanged();
5558
repositoryManagerListener.DidNotReceive().OnLocksUpdated(Args.EnumerableGitLock);
56-
57-
//Assert.AreEqual(3, repositoryManagerListener.ReceivedCalls().Count());
5859
}
5960

6061
[Test]
6162
public void ShouldAddAndCommitFiles()
6263
{
6364
InitializeEnvironment(TestRepoMasterCleanSynchronized);
6465

66+
var managerAutoResetEvent = new RepositoryManagerAutoResetEvent();
67+
6568
var repositoryManagerListener = Substitute.For<IRepositoryManagerListener>();
66-
repositoryManagerListener.AttachListener(RepositoryManager);
69+
repositoryManagerListener.AttachListener(RepositoryManager, managerAutoResetEvent);
6770

6871
var expectedAfterChanges = new GitStatus {
6972
Behind = 1,
@@ -87,11 +90,9 @@ public void ShouldAddAndCommitFiles()
8790
Entries = new List<GitStatusEntry>()
8891
};
8992

90-
ManualResetEvent evt = new ManualResetEvent(false);
9193
var result = new GitStatus();
9294
RepositoryManager.OnRepositoryChanged += status => {
9395
result = status;
94-
evt.Set();
9596
};
9697

9798
Logger.Trace("Issuing Changes");
@@ -102,8 +103,7 @@ public void ShouldAddAndCommitFiles()
102103
var testDocumentTxt = TestRepoMasterCleanSynchronized.Combine("Assets", "TestDocument.txt");
103104
testDocumentTxt.WriteAllText("foobar");
104105

105-
Assert.True(evt.WaitOne(5000));
106-
evt.Reset();
106+
managerAutoResetEvent.OnRepositoryChanged.WaitOne(TimeSpan.FromSeconds(5)).Should().BeTrue();
107107

108108
Logger.Trace("Continue test");
109109

@@ -126,13 +126,10 @@ public void ShouldAddAndCommitFiles()
126126
RepositoryManager.CommitFiles(new TaskResultDispatcher<string>(s => { }),
127127
new List<string>() { "Assets\\TestDocument.txt", "foobar.txt" }, "IntegrationTest Commit", string.Empty);
128128

129-
Assert.True(evt.WaitOne(5000));
130-
evt.Reset();
129+
managerAutoResetEvent.OnActiveBranchChanged.WaitOne(TimeSpan.FromSeconds(5)).Should().BeTrue();
131130

132131
Logger.Trace("Continue test");
133132

134-
result.AssertEqual(expectedAfterCommit);
135-
136133
repositoryManagerListener.Received(1).OnActiveBranchChanged();
137134
repositoryManagerListener.DidNotReceive().OnActiveRemoteChanged();
138135
repositoryManagerListener.DidNotReceive().OnHeadChanged();
@@ -147,8 +144,10 @@ public void ShouldDetectBranchChange()
147144
{
148145
InitializeEnvironment(TestRepoMasterCleanSynchronized);
149146

147+
var managerAutoResetEvent = new RepositoryManagerAutoResetEvent();
148+
150149
var repositoryManagerListener = Substitute.For<IRepositoryManagerListener>();
151-
repositoryManagerListener.AttachListener(RepositoryManager);
150+
repositoryManagerListener.AttachListener(RepositoryManager, managerAutoResetEvent);
152151

153152
var expected = new GitStatus {
154153
LocalBranch = "feature/document",
@@ -163,7 +162,9 @@ public void ShouldDetectBranchChange()
163162

164163
RepositoryManager.SwitchBranch(new TaskResultDispatcher<string>(s => { }), "feature/document");
165164

166-
Thread.Sleep(3000);
165+
managerAutoResetEvent.OnRepositoryChanged.WaitOne(TimeSpan.FromSeconds(3)).Should().BeTrue();
166+
managerAutoResetEvent.OnActiveBranchChanged.WaitOne(TimeSpan.FromSeconds(3)).Should().BeTrue();
167+
managerAutoResetEvent.OnHeadChanged.WaitOne(TimeSpan.FromSeconds(3)).Should().BeTrue();
167168

168169
Logger.Trace("Continue test");
169170

@@ -184,14 +185,17 @@ public void ShouldDetectBranchDelete()
184185
{
185186
InitializeEnvironment(TestRepoMasterCleanSynchronized);
186187

188+
var managerAutoResetEvent = new RepositoryManagerAutoResetEvent();
189+
187190
var repositoryManagerListener = Substitute.For<IRepositoryManagerListener>();
188-
repositoryManagerListener.AttachListener(RepositoryManager);
191+
repositoryManagerListener.AttachListener(RepositoryManager, managerAutoResetEvent);
189192

190193
Logger.Trace("Issuing Command");
191194

192195
RepositoryManager.DeleteBranch(new TaskResultDispatcher<string>(s => { }), "feature/document", true);
193196

194-
Thread.Sleep(2000);
197+
managerAutoResetEvent.OnLocalBranchListChanged.WaitOne(TimeSpan.FromSeconds(2)).Should().BeTrue();
198+
managerAutoResetEvent.OnRemoteOrTrackingChanged.WaitOne(TimeSpan.FromSeconds(2)).Should().BeTrue();
195199

196200
Logger.Trace("Continue test");
197201

@@ -211,15 +215,17 @@ public void ShouldDetectBranchCreate()
211215
{
212216
InitializeEnvironment(TestRepoMasterCleanSynchronized);
213217

218+
var managerAutoResetEvent = new RepositoryManagerAutoResetEvent();
219+
214220
var repositoryManagerListener = Substitute.For<IRepositoryManagerListener>();
215-
repositoryManagerListener.AttachListener(RepositoryManager);
221+
repositoryManagerListener.AttachListener(RepositoryManager, managerAutoResetEvent);
216222

217223
Logger.Trace("Issuing Command");
218224

219225
RepositoryManager.CreateBranch(new TaskResultDispatcher<string>(s => { }), "feature/document2",
220226
"feature/document");
221227

222-
Thread.Sleep(2000);
228+
managerAutoResetEvent.OnLocalBranchListChanged.WaitOne(TimeSpan.FromSeconds(2)).Should().BeTrue();
223229

224230
Logger.Trace("Continue test");
225231

@@ -261,14 +267,18 @@ public void ShouldDetectChangesToRemotes()
261267
{
262268
InitializeEnvironment(TestRepoMasterCleanSynchronized);
263269

270+
var managerAutoResetEvent = new RepositoryManagerAutoResetEvent();
271+
264272
var repositoryManagerListener = Substitute.For<IRepositoryManagerListener>();
265-
repositoryManagerListener.AttachListener(RepositoryManager);
273+
repositoryManagerListener.AttachListener(RepositoryManager, managerAutoResetEvent);
266274

267275
Logger.Trace("Issuing Command");
268276

269277
RepositoryManager.RemoteRemove(new TaskResultDispatcher<string>(s => { }), "origin");
270278

271-
Thread.Sleep(2000);
279+
managerAutoResetEvent.OnActiveBranchChanged.WaitOne(TimeSpan.FromSeconds(2)).Should().BeTrue();
280+
managerAutoResetEvent.OnActiveRemoteChanged.WaitOne(TimeSpan.FromSeconds(2)).Should().BeTrue();
281+
managerAutoResetEvent.OnRemoteOrTrackingChanged.WaitOne(TimeSpan.FromSeconds(2)).Should().BeTrue();
272282

273283
Logger.Trace("Continue test");
274284

@@ -289,7 +299,8 @@ public void ShouldDetectChangesToRemotes()
289299
RepositoryManager.RemoteAdd(new TaskResultDispatcher<string>(s => { }), "origin",
290300
"https://github.com/EvilStanleyGoldman/IOTestsRepo.git");
291301

292-
Thread.Sleep(2000);
302+
managerAutoResetEvent.OnActiveRemoteChanged.WaitOne(TimeSpan.FromSeconds(2)).Should().BeTrue();
303+
managerAutoResetEvent.OnRemoteOrTrackingChanged.WaitOne(TimeSpan.FromSeconds(2)).Should().BeTrue();
293304

294305
Logger.Trace("Continue test");
295306

@@ -309,8 +320,10 @@ public void ShouldDetectGitPull()
309320
{
310321
InitializeEnvironment(TestRepoMasterCleanSynchronized);
311322

323+
var managerAutoResetEvent = new RepositoryManagerAutoResetEvent();
324+
312325
var repositoryManagerListener = Substitute.For<IRepositoryManagerListener>();
313-
repositoryManagerListener.AttachListener(RepositoryManager);
326+
repositoryManagerListener.AttachListener(RepositoryManager, managerAutoResetEvent);
314327

315328
var expected = new GitStatus {
316329
LocalBranch = "master",
@@ -325,7 +338,8 @@ public void ShouldDetectGitPull()
325338

326339
RepositoryManager.Pull(new TaskResultDispatcher<string>(s => { }), "origin", "master");
327340

328-
Thread.Sleep(7000);
341+
managerAutoResetEvent.OnRepositoryChanged.WaitOne(TimeSpan.FromSeconds(7)).Should().BeTrue();
342+
managerAutoResetEvent.OnActiveBranchChanged.WaitOne(TimeSpan.FromSeconds(7)).Should().BeTrue();
329343

330344
Logger.Trace("Continue test");
331345

@@ -349,14 +363,17 @@ public void ShouldDetectGitFetch()
349363
{
350364
InitializeEnvironment(TestRepoMasterCleanUnsynchronized);
351365

366+
var managerAutoResetEvent = new RepositoryManagerAutoResetEvent();
367+
352368
var repositoryManagerListener = Substitute.For<IRepositoryManagerListener>();
353-
repositoryManagerListener.AttachListener(RepositoryManager);
369+
repositoryManagerListener.AttachListener(RepositoryManager, managerAutoResetEvent);
354370

355371
Logger.Trace("Issuing Command");
356372

357373
RepositoryManager.Fetch(new TaskResultDispatcher<string>(s => { }), "origin");
358374

359-
Thread.Sleep(3000);
375+
managerAutoResetEvent.OnRemoteBranchListChanged.WaitOne(TimeSpan.FromSeconds(3)).Should().BeTrue();
376+
managerAutoResetEvent.OnRemoteBranchListChanged.WaitOne(TimeSpan.FromSeconds(3)).Should().BeTrue();
360377

361378
Logger.Trace("Continue test");
362379

src/IntegrationTests/Events/RepositoryWatcherTests.cs

Lines changed: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -32,8 +32,8 @@ public void ShouldDetectFileChanges()
3232
var foobarTxt = TestRepoMasterCleanSynchronized.Combine("foobar.txt");
3333
foobarTxt.WriteAllText("foobar");
3434

35-
watcherAutoResetEvent.IndexChanged.WaitOne(TimeSpan.FromSeconds(2));
36-
watcherAutoResetEvent.RepositoryChanged.WaitOne(TimeSpan.FromSeconds(2));
35+
watcherAutoResetEvent.IndexChanged.WaitOne(TimeSpan.FromSeconds(2)).Should().BeTrue();
36+
watcherAutoResetEvent.RepositoryChanged.WaitOne(TimeSpan.FromSeconds(2)).Should().BeTrue();
3737

3838
repositoryWatcherListener.DidNotReceive().ConfigChanged();
3939
repositoryWatcherListener.DidNotReceive().HeadChanged(Args.String);
@@ -71,9 +71,9 @@ public void ShouldDetectBranchChange()
7171
{
7272
SwitchBranch("feature/document");
7373

74-
watcherAutoResetEvent.HeadChanged.WaitOne(TimeSpan.FromSeconds(2));
75-
watcherAutoResetEvent.IndexChanged.WaitOne(TimeSpan.FromSeconds(2));
76-
watcherAutoResetEvent.RepositoryChanged.WaitOne(TimeSpan.FromSeconds(2));
74+
watcherAutoResetEvent.HeadChanged.WaitOne(TimeSpan.FromSeconds(2)).Should().BeTrue();
75+
watcherAutoResetEvent.IndexChanged.WaitOne(TimeSpan.FromSeconds(2)).Should().BeTrue();
76+
watcherAutoResetEvent.RepositoryChanged.WaitOne(TimeSpan.FromSeconds(2)).Should().BeTrue();
7777

7878
repositoryWatcherListener.DidNotReceive().ConfigChanged();
7979
repositoryWatcherListener.Received(1).HeadChanged("ref: refs/heads/feature/document");
@@ -111,8 +111,8 @@ public void ShouldDetectBranchDelete()
111111
{
112112
DeleteBranch("feature/document");
113113

114-
watcherAutoResetEvent.ConfigChanged.WaitOne(TimeSpan.FromSeconds(2));
115-
watcherAutoResetEvent.LocalBranchDeleted.WaitOne(TimeSpan.FromSeconds(2));
114+
watcherAutoResetEvent.ConfigChanged.WaitOne(TimeSpan.FromSeconds(2)).Should().BeTrue();
115+
watcherAutoResetEvent.LocalBranchDeleted.WaitOne(TimeSpan.FromSeconds(2)).Should().BeTrue();
116116

117117
repositoryWatcherListener.Received(1).ConfigChanged();
118118
repositoryWatcherListener.DidNotReceive().HeadChanged(Args.String);
@@ -150,7 +150,7 @@ public void ShouldDetectBranchCreate()
150150
{
151151
CreateBranch("feature/document2", "feature/document");
152152

153-
watcherAutoResetEvent.LocalBranchCreated.WaitOne(TimeSpan.FromSeconds(2));
153+
watcherAutoResetEvent.LocalBranchCreated.WaitOne(TimeSpan.FromSeconds(2)).Should().BeTrue();
154154

155155
repositoryWatcherListener.DidNotReceive().ConfigChanged();
156156
repositoryWatcherListener.DidNotReceive().HeadChanged(Args.String);
@@ -167,7 +167,7 @@ public void ShouldDetectBranchCreate()
167167

168168
CreateBranch("feature2/document2", "feature/document");
169169

170-
watcherAutoResetEvent.LocalBranchCreated.WaitOne(TimeSpan.FromSeconds(2));
170+
watcherAutoResetEvent.LocalBranchCreated.WaitOne(TimeSpan.FromSeconds(2)).Should().BeTrue();
171171

172172
repositoryWatcherListener.DidNotReceive().ConfigChanged();
173173
repositoryWatcherListener.DidNotReceive().HeadChanged(Args.String);
@@ -207,10 +207,10 @@ public void ShouldDetectChangesToRemotes()
207207
{
208208
GitRemoteRemove("origin");
209209

210-
watcherAutoResetEvent.ConfigChanged.WaitOne(TimeSpan.FromSeconds(2));
211-
watcherAutoResetEvent.RemoteBranchDeleted.WaitOne(TimeSpan.FromSeconds(2));
212-
watcherAutoResetEvent.RemoteBranchDeleted.WaitOne(TimeSpan.FromSeconds(2));
213-
watcherAutoResetEvent.RemoteBranchDeleted.WaitOne(TimeSpan.FromSeconds(2));
210+
watcherAutoResetEvent.ConfigChanged.WaitOne(TimeSpan.FromSeconds(2)).Should().BeTrue();
211+
watcherAutoResetEvent.RemoteBranchDeleted.WaitOne(TimeSpan.FromSeconds(2)).Should().BeTrue();
212+
watcherAutoResetEvent.RemoteBranchDeleted.WaitOne(TimeSpan.FromSeconds(2)).Should().BeTrue();
213+
watcherAutoResetEvent.RemoteBranchDeleted.WaitOne(TimeSpan.FromSeconds(2)).Should().BeTrue();
214214

215215
repositoryWatcherListener.Received().ConfigChanged();
216216
repositoryWatcherListener.DidNotReceive().HeadChanged(Args.String);
@@ -227,7 +227,7 @@ public void ShouldDetectChangesToRemotes()
227227

228228
GitRemoteAdd("origin", "https://github.com/EvilStanleyGoldman/IOTestsRepo.git");
229229

230-
watcherAutoResetEvent.ConfigChanged.WaitOne(TimeSpan.FromSeconds(2));
230+
watcherAutoResetEvent.ConfigChanged.WaitOne(TimeSpan.FromSeconds(2)).Should().BeTrue();
231231

232232
repositoryWatcherListener.Received().ConfigChanged();
233233
repositoryWatcherListener.DidNotReceive().HeadChanged(Args.String);
@@ -265,9 +265,9 @@ public void ShouldDetectGitPull()
265265
{
266266
GitPull("origin", "master");
267267

268-
watcherAutoResetEvent.IndexChanged.WaitOne(TimeSpan.FromSeconds(2));
269-
watcherAutoResetEvent.LocalBranchChanged.WaitOne(TimeSpan.FromSeconds(2));
270-
watcherAutoResetEvent.RepositoryChanged.WaitOne(TimeSpan.FromSeconds(2));
268+
watcherAutoResetEvent.IndexChanged.WaitOne(TimeSpan.FromSeconds(2)).Should().BeTrue();
269+
watcherAutoResetEvent.LocalBranchChanged.WaitOne(TimeSpan.FromSeconds(2)).Should().BeTrue();
270+
watcherAutoResetEvent.RepositoryChanged.WaitOne(TimeSpan.FromSeconds(2)).Should().BeTrue();
271271

272272
repositoryWatcherListener.DidNotReceive().ConfigChanged();
273273
repositoryWatcherListener.DidNotReceive().HeadChanged(Args.String);
@@ -305,8 +305,8 @@ public void ShouldDetectGitFetch()
305305
{
306306
GitFetch("origin");
307307

308-
watcherAutoResetEvent.RemoteBranchCreated.WaitOne(TimeSpan.FromSeconds(2));
309-
watcherAutoResetEvent.RemoteBranchCreated.WaitOne(TimeSpan.FromSeconds(2));
308+
watcherAutoResetEvent.RemoteBranchCreated.WaitOne(TimeSpan.FromSeconds(2)).Should().BeTrue();
309+
watcherAutoResetEvent.RemoteBranchCreated.WaitOne(TimeSpan.FromSeconds(2)).Should().BeTrue();
310310

311311
repositoryWatcherListener.DidNotReceive().ConfigChanged();
312312
repositoryWatcherListener.DidNotReceive().HeadChanged(Args.String);

0 commit comments

Comments
 (0)