public void Dispose_closes_connection()
        {
            var connection = new SQLiteConnection("Filename=:memory:");
            connection.Open();

            var raised = false;
            StateChangeEventHandler handler = (sender, e) =>
                {
                    raised = true;

                    Assert.Equal(connection, sender);
                    Assert.Equal(ConnectionState.Open, e.OriginalState);
                    Assert.Equal(ConnectionState.Closed, e.CurrentState);
                };

            connection.StateChange += handler;
            try
            {
                connection.Dispose();

                Assert.True(raised);
                Assert.Equal(ConnectionState.Closed, connection.State);
            }
            finally
            {
                connection.StateChange -= handler;
            }
        }
        public void Dispose_can_be_called_more_than_once()
        {
            var connection = new SQLiteConnection("Filename=:memory:");
            connection.Open();

            connection.Dispose();
            connection.Dispose();
        }
        public void Open_can_be_called_when_disposed()
        {
            using (var connection = new SQLiteConnection("Filename=:memory:"))
            {
                connection.Dispose();

                connection.Open();
            }
        }