Skip to content

Commit 9c23ffb

Browse files
committed
Added tests for verifying the effects of change made to empty string hashcode from netcoreapp2.0 to 2.1
1 parent ebab62c commit 9c23ffb

File tree

1 file changed

+88
-1
lines changed

1 file changed

+88
-1
lines changed

test/Microsoft.AspNetCore.Routing.Tests/Tree/TreeRouterTest.cs

Lines changed: 88 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1399,7 +1399,6 @@ public void TreeRouter_GenerateLink_Match_HasTwoOptionalParametersWithoutValues(
13991399
Assert.Empty(pathData.DataTokens);
14001400
}
14011401

1402-
14031402
[Fact]
14041403
public void TreeRouter_GenerateLink_Match_WithParameters()
14051404
{
@@ -1965,6 +1964,94 @@ public async Task TreeRouter_SnapshotsRouteData_ResetsBeforeMatchingEachRouteEnt
19651964
Assert.DoesNotContain(nestedValues, kvp => kvp.Key == "category1");
19661965
}
19671966

1967+
[Fact]
1968+
public void TreeRouter_GenerateLink_MatchesNullRequiredValue_WithNullRequestValueString()
1969+
{
1970+
// Arrange
1971+
var builder = CreateBuilder();
1972+
var entry = MapOutboundEntry(
1973+
builder,
1974+
"Help/Store",
1975+
requiredValues: new { area = (string)null, action = "Edit", controller = "Store" });
1976+
var route = builder.Build();
1977+
var context = CreateVirtualPathContext(new { area = (string)null, action = "Edit", controller = "Store" });
1978+
1979+
// Act
1980+
var pathData = route.GetVirtualPath(context);
1981+
1982+
// Assert
1983+
Assert.NotNull(pathData);
1984+
Assert.Equal("/Help/Store", pathData.VirtualPath);
1985+
Assert.Same(route, pathData.Router);
1986+
Assert.Empty(pathData.DataTokens);
1987+
}
1988+
1989+
[Fact]
1990+
public void TreeRouter_GenerateLink_MatchesNullRequiredValue_WithEmptyRequestValueString()
1991+
{
1992+
// Arrange
1993+
var builder = CreateBuilder();
1994+
var entry = MapOutboundEntry(
1995+
builder,
1996+
"Help/Store",
1997+
requiredValues: new { area = (string)null, action = "Edit", controller = "Store" });
1998+
var route = builder.Build();
1999+
var context = CreateVirtualPathContext(new { area = "", action = "Edit", controller = "Store" });
2000+
2001+
// Act
2002+
var pathData = route.GetVirtualPath(context);
2003+
2004+
// Assert
2005+
Assert.NotNull(pathData);
2006+
Assert.Equal("/Help/Store", pathData.VirtualPath);
2007+
Assert.Same(route, pathData.Router);
2008+
Assert.Empty(pathData.DataTokens);
2009+
}
2010+
2011+
[Fact]
2012+
public void TreeRouter_GenerateLink_MatchesEmptyStringRequiredValue_WithNullRequestValueString()
2013+
{
2014+
// Arrange
2015+
var builder = CreateBuilder();
2016+
var entry = MapOutboundEntry(
2017+
builder,
2018+
"Help/Store",
2019+
requiredValues: new { foo = "", action = "Edit", controller = "Store" });
2020+
var route = builder.Build();
2021+
var context = CreateVirtualPathContext(new { foo = (string)null, action = "Edit", controller = "Store" });
2022+
2023+
// Act
2024+
var pathData = route.GetVirtualPath(context);
2025+
2026+
// Assert
2027+
Assert.NotNull(pathData);
2028+
Assert.Equal("/Help/Store", pathData.VirtualPath);
2029+
Assert.Same(route, pathData.Router);
2030+
Assert.Empty(pathData.DataTokens);
2031+
}
2032+
2033+
[Fact]
2034+
public void TreeRouter_GenerateLink_MatchesEmptyStringRequiredValue_WithEmptyRequestValueString()
2035+
{
2036+
// Arrange
2037+
var builder = CreateBuilder();
2038+
var entry = MapOutboundEntry(
2039+
builder,
2040+
"Help/Store",
2041+
requiredValues: new { foo = "", action = "Edit", controller = "Store" });
2042+
var route = builder.Build();
2043+
var context = CreateVirtualPathContext(new { foo = "", action = "Edit", controller = "Store" });
2044+
2045+
// Act
2046+
var pathData = route.GetVirtualPath(context);
2047+
2048+
// Assert
2049+
Assert.NotNull(pathData);
2050+
Assert.Equal("/Help/Store", pathData.VirtualPath);
2051+
Assert.Same(route, pathData.Router);
2052+
Assert.Empty(pathData.DataTokens);
2053+
}
2054+
19682055
private static RouteContext CreateRouteContext(string requestPath)
19692056
{
19702057
var request = new Mock<HttpRequest>(MockBehavior.Strict);

0 commit comments

Comments
 (0)