aspnetcore/test/Microsoft.Net.Http.Headers..../HeaderUtilitiesTest.cs

49 lines
1.5 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;
using Xunit;
namespace Microsoft.Net.Http.Headers
{
public static class HeaderUtilitiesTest
{
private const string Rfc1123Format = "r";
[Theory]
[MemberData(nameof(TestValues))]
public static void ReturnsSameResultAsRfc1123String(DateTimeOffset dateTime, bool quoted)
{
var formatted = dateTime.ToString(Rfc1123Format);
var expected = quoted ? $"\"{formatted}\"" : formatted;
var actual = HeaderUtilities.FormatDate(dateTime, quoted);
Assert.Equal(expected, actual);
}
public static TheoryData<DateTimeOffset, bool> TestValues
{
get
{
var data = new TheoryData<DateTimeOffset, bool>();
var now = DateTimeOffset.Now;
foreach (var quoted in new[] { true, false })
{
for (var i = 0; i < 60; i++)
{
data.Add(now.AddSeconds(i), quoted);
data.Add(now.AddMinutes(i), quoted);
data.Add(now.AddDays(i), quoted);
data.Add(now.AddMonths(i), quoted);
data.Add(now.AddYears(i), quoted);
}
}
return data;
}
}
}
}