Npgsql.Tests.CommandTests.Prepare C# (CSharp) Method

Prepare() private method

private Prepare ( ) : void
return void
        public void Prepare()
        {
            using (var conn = OpenConnection())
            {
                conn.ExecuteNonQuery("CREATE TEMP TABLE data (name TEXT)");
                Assert.That(conn.ExecuteScalar("SELECT COUNT(*) FROM pg_prepared_statements"), Is.EqualTo(0));

                using (var cmd = new NpgsqlCommand("INSERT INTO data (name) VALUES (:p0);", conn))
                {
                    cmd.Parameters.Add(new NpgsqlParameter("p0", NpgsqlDbType.Text));
                    cmd.Prepare();
                    Assert.That(cmd.IsPrepared, Is.True);
                    cmd.Parameters["p0"].Value = "test";
                    using (var dr = cmd.ExecuteReader())
                    {
                        dr.Close();
                        Assert.That(dr.RecordsAffected, Is.EqualTo(1));
                    }
                    Assert.That(conn.ExecuteScalar("SELECT COUNT(*) FROM pg_prepared_statements"), Is.EqualTo(1));
                }
                Assert.That(conn.ExecuteScalar("SELECT COUNT(*) FROM data WHERE name = 'test'"), Is.EqualTo(1));
                Assert.That(conn.ExecuteScalar("SELECT COUNT(*) FROM pg_prepared_statements"), Is.EqualTo(0), "Prepared statements are being leaked");

                // Another prepared statement, this time with a resultset
                using (var cmd = new NpgsqlCommand("SELECT 8", conn))
                {
                    cmd.Prepare();
                    using (var dr = cmd.ExecuteReader())
                    {
                        dr.Read();
                        Assert.That(dr.GetInt32(0), Is.EqualTo(8));
                    }
                }
            }
        }