Skip to content

Commit 50db4b7

Browse files
authored
CSHARP-4245: Dispose CancellationTokenSource in tests (#846)
* CSHARP-4245: Dispose CancellationTokenSource in tests
1 parent d0b8de5 commit 50db4b7

36 files changed

+345
-189
lines changed

tests/AstrolabeWorkloadExecutor/Program.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ public static void Main(string[] args)
3737
var connectionString = args[0];
3838
var driverWorkload = BsonDocument.Parse(args[1]);
3939

40-
var astrolabeCancellationTokenSource = new CancellationTokenSource();
40+
using var astrolabeCancellationTokenSource = new CancellationTokenSource();
4141
ConsoleCancelEventHandler cancelHandler = (o, e) => HandleCancel(e, astrolabeCancellationTokenSource);
4242

4343
var resultsDir = Environment.GetEnvironmentVariable("RESULTS_DIR") ?? "";

tests/MongoDB.Bson.Tests/IO/BsonStreamAdapterTests.cs

Lines changed: 16 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -305,7 +305,8 @@ public void CopyToAsync_should_call_wrapped_stream()
305305
var subject = new BsonStreamAdapter(mockStream.Object);
306306
var mockDestination = new Mock<Stream>();
307307
var bufferSize = 1;
308-
var cancellationToken = new CancellationTokenSource().Token;
308+
using var cancellationTokenSource = new CancellationTokenSource();
309+
var cancellationToken = cancellationTokenSource.Token;
309310
var task = new TaskCompletionSource<object>().Task;
310311
mockStream.Setup(s => s.CopyToAsync(mockDestination.Object, bufferSize, cancellationToken)).Returns(task);
311312

@@ -322,7 +323,8 @@ public void CopyToAsync_should_throw_when_subject_is_disposed()
322323
var subject = new BsonStreamAdapter(mockStream.Object);
323324
var mockDestination = new Mock<Stream>();
324325
var bufferSize = 1;
325-
var cancellationToken = new CancellationTokenSource().Token;
326+
using var cancellationTokenSource = new CancellationTokenSource();
327+
var cancellationToken = cancellationTokenSource.Token;
326328
subject.Dispose();
327329

328330
Action action = () => subject.CopyToAsync(mockDestination.Object, bufferSize, cancellationToken);
@@ -463,7 +465,8 @@ public void FlushAsync_should_call_wrapped_stream()
463465
var mockStream = new Mock<Stream>();
464466
var subject = new BsonStreamAdapter(mockStream.Object);
465467
var task = new TaskCompletionSource<object>().Task;
466-
var cancellationToken = new CancellationTokenSource().Token;
468+
using var cancellationTokenSource = new CancellationTokenSource();
469+
var cancellationToken = cancellationTokenSource.Token;
467470
mockStream.Setup(s => s.FlushAsync(cancellationToken)).Returns(task);
468471

469472
var result = subject.FlushAsync(cancellationToken);
@@ -477,7 +480,8 @@ public void FlushAsync_should_throw_when_subject_is_disposed()
477480
{
478481
var mockStream = new Mock<Stream>();
479482
var subject = new BsonStreamAdapter(mockStream.Object);
480-
var cancellationToken = new CancellationTokenSource().Token;
483+
using var cancellationTokenSource = new CancellationTokenSource();
484+
var cancellationToken = cancellationTokenSource.Token;
481485
subject.Dispose();
482486

483487
Action action = () => subject.FlushAsync(cancellationToken);
@@ -608,7 +612,8 @@ public void ReadAsync_should_call_wrapped_stream()
608612
var buffer = new byte[3];
609613
var offset = 1;
610614
var count = 2;
611-
var cancellationToken = new CancellationTokenSource().Token;
615+
using var cancellationTokenSource = new CancellationTokenSource();
616+
var cancellationToken = cancellationTokenSource.Token;
612617
mockStream.Setup(s => s.ReadAsync(buffer, offset, count, cancellationToken)).Returns(task);
613618

614619
var result = subject.ReadAsync(buffer, offset, count, cancellationToken);
@@ -625,7 +630,8 @@ public void ReadAsync_should_throw_when_subject_is_disposed()
625630
var buffer = new byte[3];
626631
var offset = 1;
627632
var count = 2;
628-
var cancellationToken = new CancellationTokenSource().Token;
633+
using var cancellationTokenSource = new CancellationTokenSource();
634+
var cancellationToken = cancellationTokenSource.Token;
629635
subject.Dispose();
630636

631637
Action action = () => subject.ReadAsync(buffer, offset, count, cancellationToken);
@@ -1185,7 +1191,8 @@ public void WriteAsync_should_call_wrapped_stream()
11851191
var buffer = new byte[0];
11861192
var offset = 1;
11871193
var count = 2;
1188-
var cancellationToken = new CancellationTokenSource().Token;
1194+
using var cancellationTokenSource = new CancellationTokenSource();
1195+
var cancellationToken = cancellationTokenSource.Token;
11891196
mockStream.Setup(s => s.WriteAsync(buffer, offset, count, cancellationToken)).Returns(task);
11901197

11911198
var result = subject.WriteAsync(buffer, offset, count, cancellationToken);
@@ -1203,7 +1210,8 @@ public void WriteAsync_should_throw_when_subject_is_disposed()
12031210
var buffer = new byte[0];
12041211
var offset = 1;
12051212
var count = 2;
1206-
var cancellationToken = new CancellationTokenSource().Token;
1213+
using var cancellationTokenSource = new CancellationTokenSource();
1214+
var cancellationToken = cancellationTokenSource.Token;
12071215
subject.Dispose();
12081216

12091217
Action action = () => subject.WriteAsync(buffer, offset, count, cancellationToken);

tests/MongoDB.Driver.Core.Tests/Core/Async/AsyncQueueTests.cs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@
1717
using System.Threading;
1818
using System.Threading.Tasks;
1919
using FluentAssertions;
20-
using MongoDB.Driver.Core.Async;
2120
using Xunit;
2221

2322
namespace MongoDB.Driver.Core.Async
@@ -88,7 +87,7 @@ public void Dequeue_should_complete_when_an_item_is_added_to_the_queue()
8887
[Fact]
8988
public void Dequeue_should_cancel_when_cancellation_is_requested()
9089
{
91-
var cancellationTokenSource = new CancellationTokenSource();
90+
using var cancellationTokenSource = new CancellationTokenSource();
9291
var subject = new AsyncQueue<int>();
9392
var result = subject.DequeueAsync(cancellationTokenSource.Token);
9493
cancellationTokenSource.Cancel();

tests/MongoDB.Driver.Core.Tests/Core/Bindings/ChannelChannelSourceTests.cs

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -145,7 +145,8 @@ public void GetChannel_should_return_expected_result(
145145
{
146146
var mockChannel = new Mock<IChannelHandle>();
147147
var subject = CreateSubject(channel: mockChannel.Object);
148-
var cancellationToken = new CancellationTokenSource().Token;
148+
using var cancellationTokenSource = new CancellationTokenSource();
149+
var cancellationToken = cancellationTokenSource.Token;
149150
var expectedResult = new Mock<IChannelHandle>().Object;
150151
mockChannel.Setup(m => m.Fork()).Returns(expectedResult);
151152

@@ -169,7 +170,8 @@ public void GetChannel_should_throw_when_disposed(
169170
[Values(false, true)] bool async)
170171
{
171172
var subject = CreateDisposedSubject();
172-
var cancellationToken = new CancellationTokenSource().Token;
173+
using var cancellationTokenSource = new CancellationTokenSource();
174+
var cancellationToken = cancellationTokenSource.Token;
173175

174176
var exception = Record.Exception(() =>
175177
{

tests/MongoDB.Driver.Core.Tests/Core/Bindings/ChannelReadBindingTests.cs

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -157,7 +157,8 @@ public void GetReadChannelSource_should_return_expected_result(
157157
var mockChannel = new Mock<IChannelHandle>();
158158
var mockSession = new Mock<ICoreSessionHandle>();
159159
var subject = CreateSubject(channel: mockChannel.Object, session: mockSession.Object);
160-
var cancellationToken = new CancellationTokenSource().Token;
160+
using var cancellationTokenSource = new CancellationTokenSource();
161+
var cancellationToken = cancellationTokenSource.Token;
161162

162163
var forkedChannel = new Mock<IChannelHandle>().Object;
163164
var forkedSession = new Mock<ICoreSessionHandle>().Object;
@@ -187,7 +188,8 @@ public void GetReadChannelSource_should_throw_when_disposed(
187188
[Values(false, true)] bool async)
188189
{
189190
var subject = CreateDisposedSubject();
190-
var cancellationToken = new CancellationTokenSource().Token;
191+
using var cancellationTokenSource = new CancellationTokenSource();
192+
var cancellationToken = cancellationTokenSource.Token;
191193

192194
var exception = Record.Exception(() =>
193195
{

tests/MongoDB.Driver.Core.Tests/Core/Bindings/ChannelReadWriteBindingTests.cs

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -138,7 +138,8 @@ public void GetReadChannelSource_should_return_expected_result(
138138
var mockChannel = new Mock<IChannelHandle>();
139139
var mockSession = new Mock<ICoreSessionHandle>();
140140
var subject = CreateSubject(channel: mockChannel.Object, session: mockSession.Object);
141-
var cancellationToken = new CancellationTokenSource().Token;
141+
using var cancellationTokenSource = new CancellationTokenSource();
142+
var cancellationToken = cancellationTokenSource.Token;
142143

143144
var forkedChannel = new Mock<IChannelHandle>().Object;
144145
var forkedSession = new Mock<ICoreSessionHandle>().Object;
@@ -170,7 +171,8 @@ public void GetWriteChannelSource_should_return_expected_result(
170171
var mockChannel = new Mock<IChannelHandle>();
171172
var mockSession = new Mock<ICoreSessionHandle>();
172173
var subject = CreateSubject(channel: mockChannel.Object, session: mockSession.Object);
173-
var cancellationToken = new CancellationTokenSource().Token;
174+
using var cancellationTokenSource = new CancellationTokenSource();
175+
var cancellationToken = cancellationTokenSource.Token;
174176

175177
var forkedChannel = new Mock<IChannelHandle>().Object;
176178
var forkedSession = new Mock<ICoreSessionHandle>().Object;
@@ -200,7 +202,8 @@ public void GetReadChannelSource_should_throw_when_disposed(
200202
[Values(false, true)] bool async)
201203
{
202204
var subject = CreateDisposedSubject();
203-
var cancellationToken = new CancellationTokenSource().Token;
205+
using var cancellationTokenSource = new CancellationTokenSource();
206+
var cancellationToken = cancellationTokenSource.Token;
204207

205208
var exception = Record.Exception(() =>
206209
{
@@ -224,7 +227,8 @@ public void GetWriteChannelSource_should_throw_when_disposed(
224227
[Values(false, true)] bool async)
225228
{
226229
var subject = CreateDisposedSubject();
227-
var cancellationToken = new CancellationTokenSource().Token;
230+
using var cancellationTokenSource = new CancellationTokenSource();
231+
var cancellationToken = cancellationTokenSource.Token;
228232

229233
var exception = Record.Exception(() =>
230234
{

tests/MongoDB.Driver.Core.Tests/Core/Bindings/ReadPreferenceBindingTests.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -142,7 +142,8 @@ public void GetReadChannelSource_should_fork_the_session(
142142
{
143143
var mockSession = new Mock<ICoreSessionHandle>();
144144
var subject = new ReadPreferenceBinding(_mockCluster.Object, ReadPreference.Primary, mockSession.Object);
145-
var cancellationToken = new CancellationTokenSource().Token;
145+
using var cancellationTokenSource = new CancellationTokenSource();
146+
var cancellationToken = cancellationTokenSource.Token;
146147

147148
var selectedServer = new Mock<IServer>().Object;
148149
_mockCluster.Setup(m => m.SelectServer(It.IsAny<IServerSelector>(), cancellationToken)).Returns(selectedServer);

tests/MongoDB.Driver.Core.Tests/Core/Bindings/SingleServerReadBindingTests.cs

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -131,7 +131,8 @@ public void GetReadChannelSource_should_return_expected_result(
131131
{
132132
var mockSession = new Mock<ICoreSessionHandle>();
133133
var subject = CreateSubject(session: mockSession.Object);
134-
var cancellationToken = new CancellationTokenSource().Token;
134+
using var cancellationTokenSource = new CancellationTokenSource();
135+
var cancellationToken = cancellationTokenSource.Token;
135136

136137
var forkedSession = new Mock<ICoreSessionHandle>().Object;
137138
mockSession.Setup(m => m.Fork()).Returns(forkedSession);
@@ -158,7 +159,8 @@ public void GetReadChannelSource_should_throw_when_disposed(
158159
[Values(false, true)] bool async)
159160
{
160161
var subject = CreateDisposedSubject();
161-
var cancellationToken = new CancellationTokenSource().Token;
162+
using var cancellationTokenSource = new CancellationTokenSource();
163+
var cancellationToken = cancellationTokenSource.Token;
162164

163165
var exception = Record.Exception(() =>
164166
{

tests/MongoDB.Driver.Core.Tests/Core/Bindings/SingleServerReadWriteBindingTests.cs

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -117,7 +117,8 @@ public void GetReadChannelSource_should_return_expected_result(
117117
{
118118
var mockSession = new Mock<ICoreSessionHandle>();
119119
var subject = CreateSubject(session: mockSession.Object);
120-
var cancellationToken = new CancellationTokenSource().Token;
120+
using var cancellationTokenSource = new CancellationTokenSource();
121+
var cancellationToken = cancellationTokenSource.Token;
121122

122123
var forkedSession = new Mock<ICoreSessionHandle>().Object;
123124
mockSession.Setup(m => m.Fork()).Returns(forkedSession);
@@ -144,7 +145,8 @@ public void GetReadChannelSource_should_throw_when_disposed(
144145
[Values(false, true)] bool async)
145146
{
146147
var subject = CreateDisposedSubject();
147-
var cancellationToken = new CancellationTokenSource().Token;
148+
using var cancellationTokenSource = new CancellationTokenSource();
149+
var cancellationToken = cancellationTokenSource.Token;
148150

149151
var exception = Record.Exception(() =>
150152
{
@@ -169,7 +171,8 @@ public void GetWriteChannelSource_should_return_expected_result(
169171
{
170172
var mockSession = new Mock<ICoreSessionHandle>();
171173
var subject = CreateSubject(session: mockSession.Object);
172-
var cancellationToken = new CancellationTokenSource().Token;
174+
using var cancellationTokenSource = new CancellationTokenSource();
175+
var cancellationToken = cancellationTokenSource.Token;
173176

174177
var forkedSession = new Mock<ICoreSessionHandle>().Object;
175178
mockSession.Setup(m => m.Fork()).Returns(forkedSession);
@@ -196,7 +199,8 @@ public void GetWriteChannelSource_should_throw_when_disposed(
196199
[Values(false, true)] bool async)
197200
{
198201
var subject = CreateDisposedSubject();
199-
var cancellationToken = new CancellationTokenSource().Token;
202+
using var cancellationTokenSource = new CancellationTokenSource();
203+
var cancellationToken = cancellationTokenSource.Token;
200204

201205
var exception = Record.Exception(() =>
202206
{

tests/MongoDB.Driver.Core.Tests/Core/Clusters/DnsClientWrapperTests.cs

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -93,17 +93,17 @@ public void ResolveSrvRecords_should_throw_when_cancellation_is_already_requeste
9393
{
9494
var subject = CreateSubject();
9595
var service = "_mongodb._tcp.test5.test.build.10gen.cc";
96-
var cts = new CancellationTokenSource();
97-
cts.Cancel();
96+
using var cancellationTokenSource = new CancellationTokenSource();
97+
cancellationTokenSource.Cancel();
9898

9999
Exception exception;
100100
if (async)
101101
{
102-
exception = Record.Exception(() => subject.ResolveSrvRecordsAsync(service, cts.Token).GetAwaiter().GetResult());
102+
exception = Record.Exception(() => subject.ResolveSrvRecordsAsync(service, cancellationTokenSource.Token).GetAwaiter().GetResult());
103103
}
104104
else
105105
{
106-
exception = Record.Exception(() => subject.ResolveSrvRecords(service, cts.Token));
106+
exception = Record.Exception(() => subject.ResolveSrvRecords(service, cancellationTokenSource.Token));
107107
}
108108

109109
exception.Should().Match<Exception>(e => e is OperationCanceledException || e.InnerException is OperationCanceledException);
@@ -159,17 +159,17 @@ public void ResolveTxtRecords_should_throw_when_cancellation_is_already_requeste
159159
{
160160
var subject = CreateSubject();
161161
var domainName = "test5.test.build.10gen.cc";
162-
var cts = new CancellationTokenSource();
163-
cts.Cancel();
162+
using var cancellationTokenSource = new CancellationTokenSource();
163+
cancellationTokenSource.Cancel();
164164

165165
Exception exception;
166166
if (async)
167167
{
168-
exception = Record.Exception(() => subject.ResolveTxtRecordsAsync(domainName, cts.Token).GetAwaiter().GetResult());
168+
exception = Record.Exception(() => subject.ResolveTxtRecordsAsync(domainName, cancellationTokenSource.Token).GetAwaiter().GetResult());
169169
}
170170
else
171171
{
172-
exception = Record.Exception(() => subject.ResolveTxtRecords(domainName, cts.Token));
172+
exception = Record.Exception(() => subject.ResolveTxtRecords(domainName, cancellationTokenSource.Token));
173173
}
174174

175175
exception.Should().Match<Exception>(e => e is OperationCanceledException || e.InnerException is OperationCanceledException);

0 commit comments

Comments
 (0)