Npgsql.Tests.ConnectionTests.NonUTF8Encoding C# (CSharp) Method

NonUTF8Encoding() private method

private NonUTF8Encoding ( ) : void
return void
        public void NonUTF8Encoding()
        {
            using (var adminConn = OpenConnection())
            {
                // Create the database with server encoding sql-ascii
                adminConn.ExecuteNonQuery("DROP DATABASE IF EXISTS sqlascii");
                adminConn.ExecuteNonQuery("CREATE DATABASE sqlascii ENCODING 'sql_ascii' TEMPLATE template0");
                try
                {
                    // Insert some win1252 data
                    var goodCsb = new NpgsqlConnectionStringBuilder(ConnectionString)
                    {
                        Database = "sqlascii",
                        Encoding = "windows-1252",
                        ClientEncoding = "sql-ascii",
                        Pooling = false
                    };
                    using (var conn = OpenConnection(goodCsb))
                    {
                        conn.ExecuteNonQuery("CREATE TABLE foo (bar TEXT)");
                        conn.ExecuteNonQuery("INSERT INTO foo (bar) VALUES ('ιθιθ')");
                        Assert.That(conn.ExecuteScalar("SELECT * FROM foo"), Is.EqualTo("ιθιθ"));
                    }

                    // A normal connection with the default UTF8 encoding and client_encoding should fail
                    var badCsb = new NpgsqlConnectionStringBuilder(ConnectionString)
                    {
                        Database = "sqlascii",
                        Pooling = false
                    };
                    using (var conn = OpenConnection(badCsb))
                    {
                        Assert.That(() => conn.ExecuteScalar("SELECT * FROM foo"),
                            Throws.Exception.TypeOf<PostgresException>()
                                .With.Property(nameof(PostgresException.SqlState)).EqualTo("22021")
                                .Or.TypeOf<DecoderFallbackException>()
                        );
                    }
                }
                finally
                {
                    adminConn.ExecuteNonQuery("DROP DATABASE IF EXISTS sqlascii");
                }
            }
        }
    }