public void RollbackOnClose()
{
// Npgsql 3.0.0 to 3.0.4 prepended a rollback for the next time the connector is used, as an optimization.
// This caused some issues (#927) and was removed.
// Clear connections in pool as we're going to need to reopen the same connection
var dummyConn = new NpgsqlConnection(ConnectionString);
NpgsqlConnection.ClearPool(dummyConn);
int processId;
using (var conn = OpenConnection())
{
processId = conn.Connector.BackendProcessId;
conn.BeginTransaction();
conn.ExecuteNonQuery("SELECT 1");
Assert.That(conn.Connector.TransactionStatus, Is.EqualTo(TransactionStatus.InTransactionBlock));
}
using (var conn = OpenConnection())
{
Assert.That(conn.Connector.BackendProcessId, Is.EqualTo(processId));
Assert.That(conn.Connector.TransactionStatus, Is.EqualTo(TransactionStatus.Idle));
}
}