aspnetcore/test/Kestrel.Core.Tests/KestrelServerOptionsTests.cs

68 lines
1.9 KiB
C#

// Copyright (c) .NET Foundation. All rights reserved.
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
using System.Net;
using Xunit;
namespace Microsoft.AspNetCore.Server.Kestrel.Core.Tests
{
public class KestrelServerOptionsTests
{
[Fact]
public void NoDelayDefaultsToTrue()
{
var o1 = new KestrelServerOptions();
o1.Listen(IPAddress.Loopback, 0);
o1.Listen(IPAddress.Loopback, 0, d =>
{
d.NoDelay = false;
});
Assert.True(o1.ListenOptions[0].NoDelay);
Assert.False(o1.ListenOptions[1].NoDelay);
}
[Fact]
public void AllowSynchronousIODefaultsToTrue()
{
var options = new KestrelServerOptions();
Assert.True(options.AllowSynchronousIO);
}
[Fact]
public void ConfigureEndpointDefaultsAppliesToNewEndpoints()
{
var options = new KestrelServerOptions();
options.ListenLocalhost(5000);
Assert.True(options.ListenOptions[0].NoDelay);
options.ConfigureEndpointDefaults(opt =>
{
opt.NoDelay = false;
});
options.Listen(new IPEndPoint(IPAddress.Loopback, 5000), opt =>
{
// ConfigureEndpointDefaults runs before this callback
Assert.False(opt.NoDelay);
});
Assert.False(options.ListenOptions[1].NoDelay);
options.ListenLocalhost(5000, opt =>
{
Assert.False(opt.NoDelay);
opt.NoDelay = true; // Can be overriden
});
Assert.True(options.ListenOptions[2].NoDelay);
options.ListenAnyIP(5000, opt =>
{
Assert.False(opt.NoDelay);
});
Assert.False(options.ListenOptions[3].NoDelay);
}
}
}