2323 ******************************************************************************/
2424
2525
26+ using System . Security . Cryptography . X509Certificates ;
2627using System . Text ;
2728using dummy_http_server ;
2829using NUnit . Framework ;
@@ -1676,4 +1677,47 @@ await sender.Table("table name")
16761677 // ReSharper disable once DisposeOnUsingVariable
16771678 srv . Dispose ( ) ;
16781679 }
1679- }
1680+
1681+ [ Test ]
1682+ public async Task SendWithCert ( )
1683+ {
1684+ #if NET9_0_OR_GREATER
1685+ using var cert = X509CertificateLoader . LoadPkcs12FromFile ( "certificate.pfx" , null ) ;
1686+ #else
1687+ using var cert = new X509Certificate2 ( "certificate.pfx" , ( string ? ) null ) ;
1688+ #endif
1689+
1690+ Assert . NotNull ( cert ) ;
1691+
1692+ using var server = new DummyHttpServer ( requireClientCert : true ) ;
1693+ await server . StartAsync ( HttpsPort ) ;
1694+ using var sender = Sender . Configure ( $ "https::addr=localhost:{ HttpsPort } ;tls_verify=unsafe_off;")
1695+ . WithClientCert ( cert )
1696+ . Build ( ) ;
1697+
1698+ await sender . Table ( "metrics" )
1699+ . Symbol ( "tag" , "value" )
1700+ . Column ( "number" , 12.2 )
1701+ . AtAsync ( new DateTime ( 1970 , 01 , 01 , 0 , 0 , 1 ) ) ;
1702+
1703+ await sender . SendAsync ( ) ;
1704+ Assert . That (
1705+ server . PrintBuffer ( ) ,
1706+ Is . EqualTo ( "metrics,tag=value number=12.2 1000000000\n " ) ) ;
1707+ await server . StopAsync ( ) ;
1708+ }
1709+
1710+ [ Test ]
1711+ public async Task FailsWhenExpectingCert ( )
1712+ {
1713+ using var server = new DummyHttpServer ( requireClientCert : true ) ;
1714+ await server . StartAsync ( HttpsPort ) ;
1715+
1716+ Assert . That (
1717+ ( ) => Sender . Configure ( $ "https::addr=localhost:{ HttpsPort } ;tls_verify=unsafe_off;") . Build ( ) ,
1718+ Throws . TypeOf < IngressError > ( ) . With . Message . Contains ( "ServerFlushError" )
1719+ ) ;
1720+
1721+ await server . StopAsync ( ) ;
1722+ }
1723+ }
0 commit comments