@@ -97,7 +97,7 @@ public void Commit_WhenEmptyYdbCommand_DoNothing()
9797 }
9898
9999 [ Fact ]
100- public void Commit_WhenDoubleCommit_ThrowException ( )
100+ public void CommitAndRollback_WhenDoubleCommit_ThrowException ( )
101101 {
102102 using var connection = new YdbConnection ( ) ;
103103 connection . Open ( ) ;
@@ -165,7 +165,7 @@ public void CommitAndRollback_WhenConnectionIsClosed_ThrowException()
165165 }
166166
167167 [ Fact ]
168- public void Commit_WhenConnectionIsClosedAndTxDoesNotStarted_ThrowException ( )
168+ public void CommitAndRollback_WhenConnectionIsClosedAndTxDoesNotStarted_ThrowException ( )
169169 {
170170 using var connection = new YdbConnection ( ) ;
171171 connection . Open ( ) ;
@@ -179,6 +179,27 @@ public void Commit_WhenConnectionIsClosedAndTxDoesNotStarted_ThrowException()
179179 Assert . Throws < InvalidOperationException > ( ( ) => ydbTransaction . Rollback ( ) ) . Message ) ;
180180 }
181181
182+ [ Fact ]
183+ public void CommitAndRollback_WhenTransactionIsFailed_ThrowException ( )
184+ {
185+ using var connection = new YdbConnection ( ) ;
186+ connection . Open ( ) ;
187+
188+ var ydbCommand = connection . CreateCommand ( ) ;
189+ ydbCommand . Transaction = connection . BeginTransaction ( ) ;
190+ ydbCommand . Transaction . Failed = true ;
191+ ydbCommand . Transaction . TxId = "no_tx" ;
192+
193+ Assert . Equal ( "This YdbTransaction has completed; it is no longer usable" ,
194+ Assert . Throws < InvalidOperationException > ( ( ) => ydbCommand . Transaction . Commit ( ) ) . Message ) ;
195+
196+ ydbCommand . Transaction . Rollback ( ) ; // Make completed
197+ Assert . Equal ( "This YdbTransaction has completed; it is no longer usable" ,
198+ Assert . Throws < InvalidOperationException > ( ( ) => ydbCommand . Transaction . Commit ( ) ) . Message ) ;
199+ Assert . Equal ( "This YdbTransaction has completed; it is no longer usable" ,
200+ Assert . Throws < InvalidOperationException > ( ( ) => ydbCommand . Transaction . Rollback ( ) ) . Message ) ;
201+ }
202+
182203 public async Task InitializeAsync ( )
183204 {
184205 await using var connection = new YdbConnection ( ) ;
0 commit comments