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

                using (connection.BeginTransaction(IsolationLevel.Serializable))
                {
                    Assert.Equal(0L, connection.ExecuteScalar<long>("PRAGMA read_uncommitted"));
                }
            }
        }
        public void Ctor_unsets_read_uncommitted_when_serializable()
        {
            using (var connection = new SQLiteConnection("Filename=:memory:"))
            {
                connection.Open();

                using (connection.BeginTransaction(IsolationLevel.Serializable))
                {
                    Assert.Equal(0L, connection.ExecuteScalar <long>("PRAGMA read_uncommitted"));
                }
            }
        }
        public void Dispose_works()
        {
            using (var connection = new SQLiteConnection("Filename=:memory:"))
            {
                CreateTestTable(connection);

                using (var transaction = connection.BeginTransaction())
                {
                    using (var command = connection.CreateCommand())
                    {
                        command.CommandText = "INSERT INTO TestTable VALUES (1)";
                        command.ExecuteNonQuery();

                        transaction.Dispose();

                        Assert.Null(connection.Transaction);
                        Assert.Null(transaction.Connection);
                    }
                }

                Assert.Equal(0L, connection.ExecuteScalar <long>("SELECT COUNT(*) FROM TestTable"));
            }
        }
        public void Dispose_works()
        {
            using (var connection = new SQLiteConnection("Filename=:memory:"))
            {
                CreateTestTable(connection);

                using (var transaction = connection.BeginTransaction())
                {
                    using (var command = connection.CreateCommand())
                    {
                        command.CommandText = "INSERT INTO TestTable VALUES (1)";
                        command.ExecuteNonQuery();

                        transaction.Dispose();

                        Assert.Null(connection.Transaction);
                        Assert.Null(transaction.Connection);
                    }
                }

                Assert.Equal(0L, connection.ExecuteScalar<long>("SELECT COUNT(*) FROM TestTable"));
            }
        }