public void Clone()
{
var connString = new NpgsqlConnectionStringBuilder(ConnectionString) { Pooling = false };
using (var conn = new NpgsqlConnection(connString))
{
ProvideClientCertificatesCallback callback1 = certificates => { };
conn.ProvideClientCertificatesCallback = callback1;
RemoteCertificateValidationCallback callback2 = (sender, certificate, chain, errors) => true;
conn.UserCertificateValidationCallback = callback2;
conn.Open();
#if NET451
using (var conn2 = (NpgsqlConnection)((ICloneable)conn).Clone())
#else
using (var conn2 = conn.Clone())
#endif
{
Assert.That(conn2.ConnectionString, Is.EqualTo(conn.ConnectionString));
Assert.That(conn2.ProvideClientCertificatesCallback, Is.SameAs(callback1));
Assert.That(conn2.UserCertificateValidationCallback, Is.SameAs(callback2));
conn2.Open();
}
}
}