Skip to content

Commit 1c4c52b

Browse files
CSHARP-4326: Fix serverless tests. (#882)
1 parent bf18fa9 commit 1c4c52b

File tree

2 files changed

+18
-0
lines changed

2 files changed

+18
-0
lines changed

src/MongoDB.Driver.Core/Core/Bindings/CoreSession.cs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -513,6 +513,12 @@ private void EnsureStartTransactionCanBeCalled()
513513

514514
private void EnsureTransactionsAreSupported()
515515
{
516+
if (_cluster.Description.Type == ClusterType.LoadBalanced)
517+
{
518+
// LB always supports transactions
519+
return;
520+
}
521+
516522
var connectedDataBearingServers = _cluster.Description.Servers.Where(s => s.State == ServerState.Connected && s.IsDataBearing).ToList();
517523

518524
if (connectedDataBearingServers.Count == 0)

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

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -264,6 +264,18 @@ public void EnsureTransactionsAreSupported_should_throw_when_there_are_no_connec
264264
e.Message.Should().Be("StartTransaction cannot determine if transactions are supported because there are no connected servers.");
265265
}
266266

267+
[Theory]
268+
[ParameterAttributeData]
269+
public void EnsureTransactionsAreSupported_should_not_throw_when_there_are_no_connected_servers_with_LB(
270+
[Values(0, 1, 2, 3)] int numberOfDisconnectedServers) // 0 - no servers at all
271+
{
272+
var clusterDescription = CreateClusterDescriptionWithDisconnectedServers(numberOfDisconnectedServers);
273+
clusterDescription = clusterDescription.WithType(ClusterType.LoadBalanced);
274+
var subject = CreateSubject(clusterDescription);
275+
276+
subject.EnsureTransactionsAreSupported();
277+
}
278+
267279
// EnsureTransactionsAreSupported scenario codes
268280
// C = Connected, D = Disconnected
269281
// P = Primary, S = Secondary, A = Arbiter, R = ShardRouter, U = Unknown

0 commit comments

Comments
 (0)