Added tests for verifying the effects of change made to empty string hashcode from netcoreapp2.0 to 2.1

This commit is contained in:
Kiran Challa 2018-07-09 12:05:04 -07:00
parent ebab62c766
commit 9c23ffb215
1 changed files with 88 additions and 1 deletions

View File

@ -1399,7 +1399,6 @@ namespace Microsoft.AspNetCore.Routing.Tree
Assert.Empty(pathData.DataTokens);
}
[Fact]
public void TreeRouter_GenerateLink_Match_WithParameters()
{
@ -1965,6 +1964,94 @@ namespace Microsoft.AspNetCore.Routing.Tree
Assert.DoesNotContain(nestedValues, kvp => kvp.Key == "category1");
}
[Fact]
public void TreeRouter_GenerateLink_MatchesNullRequiredValue_WithNullRequestValueString()
{
// Arrange
var builder = CreateBuilder();
var entry = MapOutboundEntry(
builder,
"Help/Store",
requiredValues: new { area = (string)null, action = "Edit", controller = "Store" });
var route = builder.Build();
var context = CreateVirtualPathContext(new { area = (string)null, action = "Edit", controller = "Store" });
// Act
var pathData = route.GetVirtualPath(context);
// Assert
Assert.NotNull(pathData);
Assert.Equal("/Help/Store", pathData.VirtualPath);
Assert.Same(route, pathData.Router);
Assert.Empty(pathData.DataTokens);
}
[Fact]
public void TreeRouter_GenerateLink_MatchesNullRequiredValue_WithEmptyRequestValueString()
{
// Arrange
var builder = CreateBuilder();
var entry = MapOutboundEntry(
builder,
"Help/Store",
requiredValues: new { area = (string)null, action = "Edit", controller = "Store" });
var route = builder.Build();
var context = CreateVirtualPathContext(new { area = "", action = "Edit", controller = "Store" });
// Act
var pathData = route.GetVirtualPath(context);
// Assert
Assert.NotNull(pathData);
Assert.Equal("/Help/Store", pathData.VirtualPath);
Assert.Same(route, pathData.Router);
Assert.Empty(pathData.DataTokens);
}
[Fact]
public void TreeRouter_GenerateLink_MatchesEmptyStringRequiredValue_WithNullRequestValueString()
{
// Arrange
var builder = CreateBuilder();
var entry = MapOutboundEntry(
builder,
"Help/Store",
requiredValues: new { foo = "", action = "Edit", controller = "Store" });
var route = builder.Build();
var context = CreateVirtualPathContext(new { foo = (string)null, action = "Edit", controller = "Store" });
// Act
var pathData = route.GetVirtualPath(context);
// Assert
Assert.NotNull(pathData);
Assert.Equal("/Help/Store", pathData.VirtualPath);
Assert.Same(route, pathData.Router);
Assert.Empty(pathData.DataTokens);
}
[Fact]
public void TreeRouter_GenerateLink_MatchesEmptyStringRequiredValue_WithEmptyRequestValueString()
{
// Arrange
var builder = CreateBuilder();
var entry = MapOutboundEntry(
builder,
"Help/Store",
requiredValues: new { foo = "", action = "Edit", controller = "Store" });
var route = builder.Build();
var context = CreateVirtualPathContext(new { foo = "", action = "Edit", controller = "Store" });
// Act
var pathData = route.GetVirtualPath(context);
// Assert
Assert.NotNull(pathData);
Assert.Equal("/Help/Store", pathData.VirtualPath);
Assert.Same(route, pathData.Router);
Assert.Empty(pathData.DataTokens);
}
private static RouteContext CreateRouteContext(string requestPath)
{
var request = new Mock<HttpRequest>(MockBehavior.Strict);