public void Lazy_connection_is_opened_and_closed_when_necessary() { using (var connection = new FakeRelationalConnection( CreateOptions(new FakeRelationalOptionsExtension { ConnectionString = "Database=FrodoLives" }))) { Assert.Equal(0, connection.DbConnections.Count); connection.Open(); Assert.Equal(1, connection.DbConnections.Count); var dbConnection = connection.DbConnections[0]; Assert.Equal(1, dbConnection.OpenCount); connection.Open(); connection.Open(); Assert.Equal(1, dbConnection.OpenCount); connection.Close(); connection.Close(); Assert.Equal(1, dbConnection.OpenCount); Assert.Equal(0, dbConnection.CloseCount); connection.Close(); Assert.Equal(1, dbConnection.OpenCount); Assert.Equal(1, dbConnection.CloseCount); connection.Open(); Assert.Equal(2, dbConnection.OpenCount); connection.Close(); Assert.Equal(2, dbConnection.OpenCount); Assert.Equal(2, dbConnection.CloseCount); } }
public async Task Lazy_connection_is_async_opened_and_closed_when_necessary() { using (var connection = new FakeRelationalConnection( CreateOptions(new FakeRelationalOptionsExtension { ConnectionString = "Database=FrodoLives" }))) { Assert.Equal(0, connection.DbConnections.Count); var cancellationToken = new CancellationTokenSource().Token; await connection.OpenAsync(cancellationToken); Assert.Equal(1, connection.DbConnections.Count); var dbConnection = connection.DbConnections[0]; Assert.Equal(1, dbConnection.OpenAsyncCount); await connection.OpenAsync(cancellationToken); await connection.OpenAsync(cancellationToken); Assert.Equal(1, dbConnection.OpenAsyncCount); connection.Close(); connection.Close(); Assert.Equal(1, dbConnection.OpenAsyncCount); Assert.Equal(0, dbConnection.CloseCount); connection.Close(); Assert.Equal(1, dbConnection.OpenAsyncCount); Assert.Equal(1, dbConnection.CloseCount); await connection.OpenAsync(cancellationToken); Assert.Equal(2, dbConnection.OpenAsyncCount); connection.Close(); Assert.Equal(2, dbConnection.OpenAsyncCount); Assert.Equal(2, dbConnection.CloseCount); } }
public void Existing_connection_is_not_disposed_even_after_being_opened_and_closed() { var dbConnection = new FakeDbConnection("Database=FrodoLives"); var connection = new FakeRelationalConnection( CreateOptions(new FakeRelationalOptionsExtension { Connection = dbConnection })); Assert.Equal(0, connection.DbConnections.Count); Assert.Same(dbConnection, connection.DbConnection); connection.Open(); connection.Close(); connection.Dispose(); Assert.Equal(1, dbConnection.OpenCount); Assert.Equal(1, dbConnection.CloseCount); Assert.Equal(0, dbConnection.DisposeCount); Assert.Equal(0, connection.DbConnections.Count); Assert.Same(dbConnection, connection.DbConnection); connection.Open(); connection.Close(); connection.Dispose(); Assert.Equal(2, dbConnection.OpenCount); Assert.Equal(2, dbConnection.CloseCount); Assert.Equal(0, dbConnection.DisposeCount); }
public void Existing_connection_can_be_opened_and_closed_externally() { var dbConnection = new FakeDbConnection( "Database=FrodoLives", state: ConnectionState.Closed); using (var connection = new FakeRelationalConnection( CreateOptions(new FakeRelationalOptionsExtension { Connection = dbConnection }))) { Assert.Equal(0, connection.DbConnections.Count); connection.Open(); Assert.Equal(0, connection.DbConnections.Count); Assert.Equal(1, dbConnection.OpenCount); connection.Close(); Assert.Equal(1, dbConnection.OpenCount); Assert.Equal(1, dbConnection.CloseCount); dbConnection.SetState(ConnectionState.Open); connection.Open(); Assert.Equal(1, dbConnection.OpenCount); Assert.Equal(1, dbConnection.CloseCount); connection.Close(); Assert.Equal(1, dbConnection.OpenCount); Assert.Equal(1, dbConnection.CloseCount); dbConnection.SetState(ConnectionState.Closed); connection.Open(); Assert.Equal(2, dbConnection.OpenCount); Assert.Equal(1, dbConnection.CloseCount); connection.Close(); Assert.Equal(2, dbConnection.OpenCount); Assert.Equal(2, dbConnection.CloseCount); } }
public void Existing_connection_can_start_in_opened_state() { var dbConnection = new FakeDbConnection( "Database=FrodoLives", state: ConnectionState.Open); using (var connection = new FakeRelationalConnection( CreateOptions(new FakeRelationalOptionsExtension { Connection = dbConnection }))) { Assert.Equal(0, connection.DbConnections.Count); connection.Open(); Assert.Equal(0, connection.DbConnections.Count); Assert.Equal(0, dbConnection.OpenCount); connection.Open(); connection.Open(); Assert.Equal(0, dbConnection.OpenCount); connection.Close(); connection.Close(); Assert.Equal(0, dbConnection.OpenCount); Assert.Equal(0, dbConnection.CloseCount); connection.Close(); Assert.Equal(0, dbConnection.OpenCount); Assert.Equal(0, dbConnection.CloseCount); connection.Open(); Assert.Equal(0, dbConnection.OpenCount); connection.Close(); Assert.Equal(0, dbConnection.OpenCount); Assert.Equal(0, dbConnection.CloseCount); } }
public void Existing_connection_is_opened_and_closed_when_necessary() { var dbConnection = new FakeDbConnection("Database=FrodoLives"); using (var connection = new FakeRelationalConnection( CreateOptions(new FakeRelationalOptionsExtension { Connection = dbConnection }))) { Assert.Equal(0, connection.DbConnections.Count); connection.Open(); Assert.Equal(0, connection.DbConnections.Count); Assert.Equal(1, dbConnection.OpenCount); connection.Open(); connection.Open(); Assert.Equal(1, dbConnection.OpenCount); connection.Close(); connection.Close(); Assert.Equal(1, dbConnection.OpenCount); Assert.Equal(0, dbConnection.CloseCount); connection.Close(); Assert.Equal(1, dbConnection.OpenCount); Assert.Equal(1, dbConnection.CloseCount); connection.Open(); Assert.Equal(2, dbConnection.OpenCount); connection.Close(); Assert.Equal(2, dbConnection.OpenCount); Assert.Equal(2, dbConnection.CloseCount); } }
public void Lazy_connection_is_recreated_if_used_again_after_being_disposed() { var connection = new FakeRelationalConnection( CreateOptions(new FakeRelationalOptionsExtension { ConnectionString = "Database=FrodoLives" })); Assert.Equal(0, connection.DbConnections.Count); var dbConnection = (FakeDbConnection)connection.DbConnection; Assert.Equal(1, connection.DbConnections.Count); connection.Open(); connection.Close(); connection.Dispose(); Assert.Equal(1, dbConnection.OpenCount); Assert.Equal(1, dbConnection.CloseCount); Assert.Equal(1, dbConnection.DisposeCount); Assert.Equal(1, connection.DbConnections.Count); dbConnection = (FakeDbConnection)connection.DbConnection; Assert.Equal(2, connection.DbConnections.Count); connection.Open(); connection.Close(); connection.Dispose(); Assert.Equal(1, dbConnection.OpenCount); Assert.Equal(1, dbConnection.CloseCount); Assert.Equal(1, dbConnection.DisposeCount); }