Skip to content

Commit 5ff59aa

Browse files
committed
add tests to cover isexpired new logic
1 parent 360ad04 commit 5ff59aa

1 file changed

Lines changed: 39 additions & 0 deletions

File tree

tests/MongoDB.Driver.Tests/Core/Connections/BinaryConnectionTests.cs

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -713,6 +713,45 @@ public async Task SendMessage_should_put_the_message_on_the_stream_and_raise_the
713713
}
714714
}
715715

716+
[Fact]
717+
public void IsExpired_should_return_false_when_maxIdleTime_has_no_limit()
718+
{
719+
var subject = new BinaryConnection(
720+
serverId: _serverId,
721+
endPoint: _endPoint,
722+
settings: new ConnectionSettings(maxIdleTime: TimeSpan.FromMilliseconds(0)),
723+
streamFactory: _mockStreamFactory.Object,
724+
connectionInitializer: _mockConnectionInitializer.Object,
725+
eventSubscriber: _capturedEvents,
726+
loggerFactory: LoggerFactory,
727+
tracingOptions: null,
728+
socketReadTimeout: TimeSpan.FromMilliseconds(1000),
729+
socketWriteTimeout: TimeSpan.FromMilliseconds(1000));
730+
731+
subject.Open(OperationContext.NoTimeout);
732+
subject.IsExpired.Should().BeFalse();
733+
}
734+
735+
[Fact]
736+
public void IsExpired_should_return_true_when_maxIdleTime_is_exceeded()
737+
{
738+
var subject = new BinaryConnection(
739+
serverId: _serverId,
740+
endPoint: _endPoint,
741+
settings: new ConnectionSettings(maxIdleTime: TimeSpan.FromMilliseconds(10)),
742+
streamFactory: _mockStreamFactory.Object,
743+
connectionInitializer: _mockConnectionInitializer.Object,
744+
eventSubscriber: _capturedEvents,
745+
loggerFactory: LoggerFactory,
746+
tracingOptions: null,
747+
socketReadTimeout: TimeSpan.FromMilliseconds(1000),
748+
socketWriteTimeout: TimeSpan.FromMilliseconds(1000));
749+
750+
subject.Open(OperationContext.NoTimeout);
751+
Thread.Sleep(20);
752+
subject.IsExpired.Should().BeTrue();
753+
}
754+
716755
private void SetupStreamRead(Mock<Stream> streamMock, TaskCompletionSource<int> tcs)
717756
{
718757
streamMock.Setup(s => s.Read(It.IsAny<byte[]>(), It.IsAny<int>(), It.IsAny<int>()))

0 commit comments

Comments
 (0)