@@ -96,6 +96,32 @@ public void GetReadConcernForFirstCommandInTransaction_should_return_expected_re
9696 result . Should ( ) . Be ( expectedResult ) ;
9797 }
9898
99+ [ Theory ]
100+ [ InlineData ( false , false , null , null ) ]
101+ [ InlineData ( false , false , 1234 , null ) ]
102+ [ InlineData ( false , true , null , null ) ]
103+ [ InlineData ( false , true , 1234 , "{ afterClusterTime : Timestamp(0, 1234) }" ) ]
104+ [ InlineData ( true , false , null , null ) ]
105+ [ InlineData ( true , false , 1234 , null ) ]
106+ [ InlineData ( true , true , null , null ) ]
107+ [ InlineData ( true , true , 1234 , null ) ]
108+ public void GetReadConcernForWriteCommand_should_return_expected_result (
109+ bool isInTransaction ,
110+ bool isCausallyConsistent ,
111+ int ? operationTime ,
112+ string expectedResult )
113+ {
114+ var session = CreateSession (
115+ isInTransaction : isInTransaction ,
116+ isCausallyConsistent : isCausallyConsistent ,
117+ operationTime : operationTime . HasValue ? new BsonTimestamp ( operationTime . Value ) : null ) ;
118+ var connectionDescription = CreateConnectionDescription ( logicalSessionTimeoutMinutes : true ) ;
119+
120+ var result = ReadConcernHelper . GetReadConcernForWriteCommand ( session , connectionDescription ) ;
121+
122+ result . Should ( ) . Be ( expectedResult ) ;
123+ }
124+
99125 // private methods
100126 private ConnectionDescription CreateConnectionDescription (
101127 bool logicalSessionTimeoutMinutes = false ,
0 commit comments