public void Dispose_MultipleCallsDoNothing() { var conn = new TestDbConnection(); var target = new DataTransaction(conn.BeginTransaction()); //Act target.Dispose(); target.Dispose(); }
public void Dispose_IsolationLevelReset() { var conn = new TestDbConnection(); var target = new DataTransaction(conn.BeginTransaction()); //Act target.Dispose(); //Assert target.IsolationLevel.Should().Be(IsolationLevel.Unspecified); }
public void Dispose_DoesNotCloseConnection() { var conn = new TestDbConnection(); var target = new DataTransaction(conn.BeginTransaction(), false); //Act target.Dispose(); //Assert conn.State.Should().Be(ConnectionState.Open); }
public void Dispose_ClosesConnection() { var conn = new TestDbConnection(); var target = new DataTransaction(conn.BeginTransaction(), true); //Act target.Dispose(); //Assert conn.State.Should().Be(ConnectionState.Closed); }
public void Dispose_RaisesRolledbackEvent() { var conn = new TestDbConnection(); var target = new DataTransaction(conn.BeginTransaction()); bool wasCommitted = false, wasRolledBack = false; //Act target.Committed += (o, e) => wasCommitted = true; target.RolledBack += (o, e) => wasRolledBack = true; target.Dispose(); //Assert wasRolledBack.Should().BeTrue(); wasCommitted.Should().BeFalse(); }
private void Dispose(bool disposing) { if (!disposed) { if (disposing) { lock (_locker.Locker) { _locker.Decrement(); if (_locker.Version == 0) { _trans.Dispose(); _conn.Dispose(); _conn = null; } } } disposed = true; } }