aspnetcore/test/Microsoft.AspNetCore.Mvc.Co.../Internal/PrefixContainerTest.cs

111 lines
2.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 Xunit;
namespace Microsoft.AspNetCore.Mvc.Internal
{
public class PrefixContainerTest
{
[Fact]
public void ContainsPrefix_EmptyCollection_EmptyString_False()
{
// Arrange
var keys = new string[] { };
var container = new PrefixContainer(keys);
// Act
var result = container.ContainsPrefix(string.Empty);
// Assert
Assert.False(result);
}
[Fact]
public void ContainsPrefix_HasEntries_EmptyString_True()
{
// Arrange
var keys = new string[] { "some.prefix" };
var container = new PrefixContainer(keys);
// Act
var result = container.ContainsPrefix(string.Empty);
// Assert
Assert.True(result);
}
[Theory]
[InlineData("a")]
[InlineData("b")]
[InlineData("c")]
[InlineData("d")]
public void ContainsPrefix_HasEntries_ExactMatch(string prefix)
{
// Arrange
var keys = new string[] { "a", "b", "c", "d" };
var container = new PrefixContainer(keys);
// Act
var result = container.ContainsPrefix(prefix);
// Assert
Assert.True(result);
}
[Theory]
[InlineData("a")]
[InlineData("b")]
[InlineData("c")]
[InlineData("d")]
public void ContainsPrefix_HasEntries_NoMatch(string prefix)
{
// Arrange
var keys = new string[] { "ax", "bx", "cx", "dx" };
var container = new PrefixContainer(keys);
// Act
var result = container.ContainsPrefix(prefix);
// Assert
Assert.False(result);
}
[Theory]
[InlineData("a")]
[InlineData("b")]
[InlineData("c")]
[InlineData("d")]
public void ContainsPrefix_HasEntries_PrefixMatch_WithDot(string prefix)
{
// Arrange
var keys = new string[] { "a.x", "b.x", "c.x", "d.x" };
var container = new PrefixContainer(keys);
// Act
var result = container.ContainsPrefix(prefix);
// Assert
Assert.True(result);
}
[Theory]
[InlineData("a")]
[InlineData("b")]
[InlineData("c")]
[InlineData("d")]
public void ContainsPrefix_HasEntries_PrefixMatch_WithSquareBrace(string prefix)
{
// Arrange
var keys = new string[] { "a[x", "b[x", "c[x", "d[x" };
var container = new PrefixContainer(keys);
// Act
var result = container.ContainsPrefix(prefix);
// Assert
Assert.True(result);
}
}
}