Skip to content
This repository was archived by the owner on Jun 21, 2023. It is now read-only.

Commit 9f3828f

Browse files
committed
Set timeouts on observable awaits
1 parent 4142b98 commit 9f3828f

File tree

3 files changed

+18
-11
lines changed

3 files changed

+18
-11
lines changed

test/TrackingCollectionTests/TrackingCollectionTests.cs

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,8 @@
1818
[TestFixture]
1919
public class TrackingTests : TestBase
2020
{
21+
const int Timeout = 2000;
22+
2123
#if !DISABLE_REACTIVE_UI
2224
[OneTimeSetUp]
2325
public void Setup()
@@ -1907,7 +1909,7 @@ public async Task MultipleSortingAndFiltering()
19071909
col.NewerComparer = OrderedComparer<Thing>.OrderByDescending(x => x.UpdatedAt).Compare;
19081910
col.Subscribe();
19091911

1910-
await col.OriginalCompleted;
1912+
await col.OriginalCompleted.Timeout(TimeSpan.FromMilliseconds(Timeout));
19111913

19121914
// it's initially sorted by date, so id list should not match
19131915
CollectionAssert.AreNotEqual(list1.Select(x => x.Number).ToEnumerable(), list2.Select(x => x.Number).ToEnumerable());
@@ -1944,7 +1946,7 @@ public async Task MultipleSortingAndFiltering()
19441946
}
19451947

19461948
[Test]
1947-
public void ListeningTwiceWorks()
1949+
public async Task ListeningTwiceWorks()
19481950
{
19491951
var count = 10;
19501952
ITrackingCollection<Thing> col = new TrackingCollection<Thing>();
@@ -1954,13 +1956,15 @@ public void ListeningTwiceWorks()
19541956
var list1 = new List<Thing>(Enumerable.Range(1, count).Select(i => GetThing(i, i, count - i, "Run 1")).ToList());
19551957
var list2 = new List<Thing>(Enumerable.Range(1, count).Select(i => GetThing(i, i, i + count, "Run 2")).ToList());
19561958

1959+
#pragma warning disable 4014
19571960
col.Listen(list1.ToObservable());
19581961
col.Subscribe();
1959-
col.OriginalCompleted.Wait();
1962+
await col.OriginalCompleted.Timeout(TimeSpan.FromMilliseconds(Timeout));
19601963

19611964
col.Listen(list2.ToObservable());
19621965
col.Subscribe();
1963-
col.OriginalCompleted.Wait();
1966+
await col.OriginalCompleted.Timeout(TimeSpan.FromMilliseconds(Timeout));
1967+
#pragma warning restore 4014
19641968

19651969
CollectionAssert.AreEqual(list2, col);
19661970
}
@@ -1980,7 +1984,7 @@ public void RemovingWithNoObservableSetThrows()
19801984
}
19811985

19821986
[Test]
1983-
public async void AddingBeforeSubscribingWorks()
1987+
public async Task AddingBeforeSubscribingWorks()
19841988
{
19851989
ITrackingCollection<Thing> col = new TrackingCollection<Thing>(Observable.Empty<Thing>());
19861990
ReplaySubject<Thing> done = new ReplaySubject<Thing>();
@@ -1995,7 +1999,7 @@ public async void AddingBeforeSubscribingWorks()
19951999
done.OnCompleted();
19962000
}, () => {});
19972001

1998-
await Observable.Timeout(done, TimeSpan.FromMilliseconds(500));
2002+
await done.Timeout(TimeSpan.FromMilliseconds(500));
19992003
Assert.AreEqual(2, col.Count);
20002004
}
20012005

test/UnitTests/GitHub.App/Models/ModelServiceTests.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323

2424
public class ModelServiceTests
2525
{
26+
const int Timeout = 2000;
2627
public class TheGetCurrentUserMethod : TestBaseClass
2728
{
2829
[Test]
@@ -421,7 +422,7 @@ public async Task NonExpiredIndexReturnsCache()
421422
col.ProcessingDelay = TimeSpan.Zero;
422423

423424
col.Subscribe();
424-
await col.OriginalCompleted;
425+
await col.OriginalCompleted.Timeout(TimeSpan.FromMilliseconds(Timeout));;
425426

426427
Assert.That(expected, Is.EqualTo(col.Count));
427428
//Assert.Collection(col, col.Select(x => new Action<IPullRequestModel>(t => Assert.That("Cache", StartsWith(x.Title)))).ToArray());

test/UnitTests/GitHub.App/ViewModels/Dialog/RepositoryCloneViewModelTests.cs

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,8 @@
1717

1818
public class RepositoryCloneViewModelTests
1919
{
20+
const int Timeout = 2000;
21+
2022
static RepositoryCloneViewModel GetVM(IModelService modelService, IRepositoryCloneService cloneService, IOperatingSystem os)
2123
{
2224
var connection = Substitute.For<IConnection>();
@@ -70,7 +72,7 @@ public async Task LoadsRepositories()
7072
Substitute.For<IOperatingSystem>());
7173

7274
var col = (ITrackingCollection<IRemoteRepositoryModel>)vm.Repositories;
73-
await col.OriginalCompleted;
75+
await col.OriginalCompleted.Timeout(TimeSpan.FromMilliseconds(Timeout));
7476
Assert.That(3, Is.EqualTo(vm.Repositories.Count));
7577
}
7678
}
@@ -102,14 +104,14 @@ public async Task StartsTrueBecomesFalseWhenCompleted()
102104
repoSubject.OnNext(Substitute.For<IRemoteRepositoryModel>());
103105
repoSubject.OnNext(Substitute.For<IRemoteRepositoryModel>());
104106

105-
await done;
107+
await done.Timeout(TimeSpan.FromMilliseconds(500));
106108
done = null;
107109

108110
Assert.True(vm.IsBusy);
109111

110112
repoSubject.OnCompleted();
111113

112-
await col.OriginalCompleted;
114+
await col.OriginalCompleted.Timeout(TimeSpan.FromMilliseconds(Timeout));;
113115

114116
// we need to wait slightly because the subscription OnComplete in the model
115117
// runs right after the above await finishes, which means the assert
@@ -185,7 +187,7 @@ public async Task IsFalseWhenLoadingAndCompletedWithRepository()
185187
repoSubject.OnCompleted();
186188

187189
var col = (ITrackingCollection<IRemoteRepositoryModel>)vm.Repositories;
188-
await col.OriginalCompleted;
190+
await col.OriginalCompleted.Timeout(TimeSpan.FromMilliseconds(Timeout));
189191
//Assert.Single(vm.Repositories);
190192
Assert.False(vm.NoRepositoriesFound);
191193
}

0 commit comments

Comments
 (0)