public async Task BindAsync_NoFeatures_Error() { // Arrange var quicTransportOptions = new QuicTransportOptions(); var quicTransportFactory = new QuicTransportFactory(NullLoggerFactory.Instance, Options.Create(quicTransportOptions)); // Act var ex = await Assert.ThrowsAsync <InvalidOperationException>(() => quicTransportFactory.BindAsync(new IPEndPoint(0, 0), features : null, cancellationToken : CancellationToken.None).AsTask()).DefaultTimeout(); // Assert Assert.Equal("Couldn't find HTTPS configuration for QUIC transport.", ex.Message); }
public async Task BindAsync_NoApplicationProtocols_Error() { // Arrange var quicTransportOptions = new QuicTransportOptions(); var quicTransportFactory = new QuicTransportFactory(NullLoggerFactory.Instance, Options.Create(quicTransportOptions)); var features = new FeatureCollection(); features.Set(new TlsConnectionCallbackOptions()); // Act var ex = await Assert.ThrowsAsync <InvalidOperationException>(() => quicTransportFactory.BindAsync(new IPEndPoint(0, 0), features : features, cancellationToken : CancellationToken.None).AsTask()).DefaultTimeout(); // Assert Assert.Equal("No application protocols specified for QUIC transport.", ex.Message); }
public async Task BindAsync_NoServerCertificate_Error() { // Arrange var quicTransportOptions = new QuicTransportOptions(); var quicTransportFactory = new QuicTransportFactory(NullLoggerFactory.Instance, Options.Create(quicTransportOptions)); var features = new FeatureCollection(); features.Set(new SslServerAuthenticationOptions()); // Act var ex = await Assert.ThrowsAsync <InvalidOperationException>(() => quicTransportFactory.BindAsync(new IPEndPoint(0, 0), features : features, cancellationToken : CancellationToken.None).AsTask()).DefaultTimeout(); // Assert Assert.Equal("SslServerAuthenticationOptions must provide a server certificate using ServerCertificate, ServerCertificateContext, or ServerCertificateSelectionCallback.", ex.Message); }
public async Task BindAsync_SslServerAuthenticationOptions_Success() { // Arrange var quicTransportOptions = new QuicTransportOptions(); var quicTransportFactory = new QuicTransportFactory(NullLoggerFactory.Instance, Options.Create(quicTransportOptions)); var features = new FeatureCollection(); features.Set(new TlsConnectionCallbackOptions { ApplicationProtocols = new List <SslApplicationProtocol> { SslApplicationProtocol.Http3 } }); // Act & Assert await quicTransportFactory.BindAsync(new IPEndPoint(0, 0), features : features, cancellationToken : CancellationToken.None).AsTask().DefaultTimeout(); }