aspnetcore/test/Microsoft.AspNetCore.Routin.../EndpointFeatureTest.cs

60 lines
1.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 System.Linq;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Routing.Matching;
using Microsoft.AspNetCore.Routing.Patterns;
using Xunit;
namespace Microsoft.AspNetCore.Routing
{
public class EndpointFeatureTest
{
[Fact]
public void RouteData_CanIntializeDataTokens_WithMetadata()
{
// Arrange
var expected = new RouteValueDictionary(new { foo = 17, bar = "hello", });
var feature = new EndpointFeature()
{
Endpoint = new RouteEndpoint(
TestConstants.EmptyRequestDelegate,
RoutePatternFactory.Parse("/"),
0,
new EndpointMetadataCollection(new DataTokensMetadata(expected)),
"test"),
};
// Act
var routeData = ((IRoutingFeature)feature).RouteData;
// Assert
Assert.NotSame(expected, routeData.DataTokens);
Assert.Equal(expected.OrderBy(kvp => kvp.Key), routeData.DataTokens.OrderBy(kvp => kvp.Key));
}
[Fact]
public void RouteData_DataTokensIsEmpty_WithoutMetadata()
{
// Arrange
var feature = new EndpointFeature()
{
Endpoint = new RouteEndpoint(
TestConstants.EmptyRequestDelegate,
RoutePatternFactory.Parse("/"),
0,
new EndpointMetadataCollection(),
"test"),
};
// Act
var routeData = ((IRoutingFeature)feature).RouteData;
// Assert
Assert.Empty(routeData.DataTokens);
}
}
}