public void Disposed_EagerInternalConnection_created_with_existing_connection_can_be_reused() { var disposed = false; using (var connection = new SqlConnection()) { connection.Disposed += (_, __) => disposed = true; var internalConnection = new EagerInternalConnection(connection, connectionOwned: false); try { Assert.Same(connection, internalConnection.Connection); internalConnection.Dispose(); Assert.False(disposed); Assert.Same(connection, internalConnection.Connection); internalConnection.Dispose(); Assert.False(disposed); } finally { internalConnection.Dispose(); } } Assert.True(disposed); }
public void Existing_connection_provided_is_returned() { using (var connection = new SqlConnection()) { using (var internalConnection = new EagerInternalConnection(connection, connectionOwned: false)) { Assert.Same(connection, internalConnection.Connection); } } }
public void Exception_replacing_DbConnection_with_EntityConnection() { using (var context = new ReplaceConnectionContext()) { using (var newConnection = new EagerInternalConnection(context, new EntityConnection(), connectionOwned: true)) { Assert.Equal( Strings.LazyInternalContext_CannotReplaceDbConnectionWithEfConnection, Assert.Throws <InvalidOperationException>(() => context.InternalContext.OverrideConnection(newConnection)).Message); } } }
public void Existing_connection_is_disposed_after_use_if_it_is_owned_by_the_connection_object() { var disposed = false; var connection = new SqlConnection(); connection.Disposed += (_, __) => disposed = true; using (var internalConnection = new EagerInternalConnection(connection, connectionOwned: true)) { var _ = internalConnection.Connection; } Assert.True(disposed); }
public void Existing_connection_is_not_disposed_after_use() { var disposed = false; using (var connection = new SqlConnection()) { connection.Disposed += (_, __) => disposed = true; using (var internalConnection = new EagerInternalConnection(connection, connectionOwned: false)) { var _ = internalConnection.Connection; } Assert.False(disposed); } Assert.True(disposed); }