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);
    }
Esempio n. 3
0
    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();
    }