39 lines
1.5 KiB
C#
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));
|
|
}
|
|
}
|
|
} |