aspnetcore/test/Microsoft.AspNetCore.Respon.../ParsingHelpersTests.cs

39 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 Microsoft.AspNetCore.ResponseCaching.Internal;
using Microsoft.Extensions.Primitives;
using Xunit;
namespace Microsoft.AspNetCore.ResponseCaching.Tests
{
public class ParsingHelpersTests
{
[Theory]
[InlineData("h=1", "h", 1)]
[InlineData("header1=3, header2=10", "header1", 3)]
[InlineData("header1 =45, header2=80", "header1", 45)]
[InlineData("header1= 89 , header2=22", "header1", 89)]
[InlineData("header1= 89 , header2= 42", "header2", 42)]
void TryGetHeaderValue_Succeeds(string headerValue, string headerName, int expectedValue)
{
TimeSpan? value;
Assert.True(HttpHeaderParsingHelpers.TryParseHeaderTimeSpan(new StringValues(headerValue), headerName, out value));
Assert.Equal(TimeSpan.FromSeconds(expectedValue), value);
}
[Theory]
[InlineData("h=", "h")]
[InlineData("header1=, header2=10", "header1")]
[InlineData("header1 , header2=80", "header1")]
[InlineData("h=10", "header")]
[InlineData("", "")]
[InlineData(null, null)]
void TryGetHeaderValue_Fails(string headerValue, string headerName)
{
TimeSpan? value;
Assert.False(HttpHeaderParsingHelpers.TryParseHeaderTimeSpan(new StringValues(headerValue), headerName, out value));
}
}
}