Fix for Issue#55 Changing Template->RouteTemplate
This commit is contained in:
parent
20ec60f921
commit
5b849596bb
|
|
@ -71,7 +71,7 @@
|
||||||
<Compile Include="RouterMiddleware.cs" />
|
<Compile Include="RouterMiddleware.cs" />
|
||||||
<Compile Include="RouteValueDictionary.cs" />
|
<Compile Include="RouteValueDictionary.cs" />
|
||||||
<Compile Include="RoutingServices.cs" />
|
<Compile Include="RoutingServices.cs" />
|
||||||
<Compile Include="Template\Template.cs" />
|
<Compile Include="Template\RouteTemplate.cs" />
|
||||||
<Compile Include="Template\TemplateBinder.cs" />
|
<Compile Include="Template\TemplateBinder.cs" />
|
||||||
<Compile Include="Template\TemplateMatcher.cs" />
|
<Compile Include="Template\TemplateMatcher.cs" />
|
||||||
<Compile Include="Template\TemplateParser.cs" />
|
<Compile Include="Template\TemplateParser.cs" />
|
||||||
|
|
|
||||||
|
|
@ -9,11 +9,11 @@ using System.Linq;
|
||||||
namespace Microsoft.AspNet.Routing.Template
|
namespace Microsoft.AspNet.Routing.Template
|
||||||
{
|
{
|
||||||
[DebuggerDisplay("{DebuggerToString()}")]
|
[DebuggerDisplay("{DebuggerToString()}")]
|
||||||
public class Template
|
public class RouteTemplate
|
||||||
{
|
{
|
||||||
private const string SeparatorString = "/";
|
private const string SeparatorString = "/";
|
||||||
|
|
||||||
public Template(List<TemplateSegment> segments)
|
public RouteTemplate(List<TemplateSegment> segments)
|
||||||
{
|
{
|
||||||
if (segments == null)
|
if (segments == null)
|
||||||
{
|
{
|
||||||
|
|
@ -14,9 +14,9 @@ namespace Microsoft.AspNet.Routing.Template
|
||||||
public class TemplateBinder
|
public class TemplateBinder
|
||||||
{
|
{
|
||||||
private readonly IDictionary<string, object> _defaults;
|
private readonly IDictionary<string, object> _defaults;
|
||||||
private readonly Template _template;
|
private readonly RouteTemplate _template;
|
||||||
|
|
||||||
public TemplateBinder(Template template, IDictionary<string, object> defaults)
|
public TemplateBinder(RouteTemplate template, IDictionary<string, object> defaults)
|
||||||
{
|
{
|
||||||
if (template == null)
|
if (template == null)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -14,7 +14,7 @@ namespace Microsoft.AspNet.Routing.Template
|
||||||
|
|
||||||
private static readonly char[] Delimiters = new char[] { SeparatorChar };
|
private static readonly char[] Delimiters = new char[] { SeparatorChar };
|
||||||
|
|
||||||
public TemplateMatcher(Template template)
|
public TemplateMatcher(RouteTemplate template)
|
||||||
{
|
{
|
||||||
if (template == null)
|
if (template == null)
|
||||||
{
|
{
|
||||||
|
|
@ -24,7 +24,7 @@ namespace Microsoft.AspNet.Routing.Template
|
||||||
Template = template;
|
Template = template;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Template Template { get; private set; }
|
public RouteTemplate Template { get; private set; }
|
||||||
|
|
||||||
public IDictionary<string, object> Match(string requestPath, IDictionary<string, object> defaults)
|
public IDictionary<string, object> Match(string requestPath, IDictionary<string, object> defaults)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -16,7 +16,7 @@ namespace Microsoft.AspNet.Routing.Template
|
||||||
private const char EqualsSign = '=';
|
private const char EqualsSign = '=';
|
||||||
private const char QuestionMark = '?';
|
private const char QuestionMark = '?';
|
||||||
|
|
||||||
public static Template Parse(string routeTemplate, IInlineConstraintResolver constraintResolver)
|
public static RouteTemplate Parse(string routeTemplate, IInlineConstraintResolver constraintResolver)
|
||||||
{
|
{
|
||||||
if (routeTemplate == null)
|
if (routeTemplate == null)
|
||||||
{
|
{
|
||||||
|
|
@ -51,7 +51,7 @@ namespace Microsoft.AspNet.Routing.Template
|
||||||
|
|
||||||
if (IsAllValid(context, segments))
|
if (IsAllValid(context, segments))
|
||||||
{
|
{
|
||||||
return new Template(segments);
|
return new RouteTemplate(segments);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -16,7 +16,7 @@ namespace Microsoft.AspNet.Routing.Template
|
||||||
private readonly IDictionary<string, object> _defaults;
|
private readonly IDictionary<string, object> _defaults;
|
||||||
private readonly IDictionary<string, IRouteConstraint> _constraints;
|
private readonly IDictionary<string, IRouteConstraint> _constraints;
|
||||||
private readonly IRouter _target;
|
private readonly IRouter _target;
|
||||||
private readonly Template _parsedTemplate;
|
private readonly RouteTemplate _parsedTemplate;
|
||||||
private readonly string _routeTemplate;
|
private readonly string _routeTemplate;
|
||||||
private readonly TemplateMatcher _matcher;
|
private readonly TemplateMatcher _matcher;
|
||||||
private readonly TemplateBinder _binder;
|
private readonly TemplateBinder _binder;
|
||||||
|
|
|
||||||
|
|
@ -287,7 +287,7 @@ namespace Microsoft.AspNet.Routing.Tests
|
||||||
return templatePart;
|
return templatePart;
|
||||||
}
|
}
|
||||||
|
|
||||||
private static Template.Template ParseRouteTemplate(string template)
|
private static RouteTemplate ParseRouteTemplate(string template)
|
||||||
{
|
{
|
||||||
var _constraintResolver = GetConstraintResolver();
|
var _constraintResolver = GetConstraintResolver();
|
||||||
return TemplateParser.Parse(template, _constraintResolver);
|
return TemplateParser.Parse(template, _constraintResolver);
|
||||||
|
|
|
||||||
|
|
@ -23,7 +23,7 @@ namespace Microsoft.AspNet.Routing.Template.Tests
|
||||||
// Arrange
|
// Arrange
|
||||||
var template = "cool";
|
var template = "cool";
|
||||||
|
|
||||||
var expected = new Template(new List<TemplateSegment>());
|
var expected = new RouteTemplate(new List<TemplateSegment>());
|
||||||
expected.Segments.Add(new TemplateSegment());
|
expected.Segments.Add(new TemplateSegment());
|
||||||
expected.Segments[0].Parts.Add(TemplatePart.CreateLiteral("cool"));
|
expected.Segments[0].Parts.Add(TemplatePart.CreateLiteral("cool"));
|
||||||
|
|
||||||
|
|
@ -31,7 +31,7 @@ namespace Microsoft.AspNet.Routing.Template.Tests
|
||||||
var actual = TemplateParser.Parse(template, _inlineConstraintResolver);
|
var actual = TemplateParser.Parse(template, _inlineConstraintResolver);
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
Assert.Equal<Template>(expected, actual, new TemplateEqualityComparer());
|
Assert.Equal<RouteTemplate>(expected, actual, new TemplateEqualityComparer());
|
||||||
}
|
}
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
|
|
@ -40,7 +40,7 @@ namespace Microsoft.AspNet.Routing.Template.Tests
|
||||||
// Arrange
|
// Arrange
|
||||||
var template = "{p}";
|
var template = "{p}";
|
||||||
|
|
||||||
var expected = new Template(new List<TemplateSegment>());
|
var expected = new RouteTemplate(new List<TemplateSegment>());
|
||||||
expected.Segments.Add(new TemplateSegment());
|
expected.Segments.Add(new TemplateSegment());
|
||||||
expected.Segments[0].Parts.Add(TemplatePart.CreateParameter("p", false, false, defaultValue: null, inlineConstraint: null));
|
expected.Segments[0].Parts.Add(TemplatePart.CreateParameter("p", false, false, defaultValue: null, inlineConstraint: null));
|
||||||
expected.Parameters.Add(expected.Segments[0].Parts[0]);
|
expected.Parameters.Add(expected.Segments[0].Parts[0]);
|
||||||
|
|
@ -49,7 +49,7 @@ namespace Microsoft.AspNet.Routing.Template.Tests
|
||||||
var actual = TemplateParser.Parse(template, _inlineConstraintResolver);
|
var actual = TemplateParser.Parse(template, _inlineConstraintResolver);
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
Assert.Equal<Template>(expected, actual, new TemplateEqualityComparer());
|
Assert.Equal<RouteTemplate>(expected, actual, new TemplateEqualityComparer());
|
||||||
}
|
}
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
|
|
@ -58,7 +58,7 @@ namespace Microsoft.AspNet.Routing.Template.Tests
|
||||||
// Arrange
|
// Arrange
|
||||||
var template = "{p?}";
|
var template = "{p?}";
|
||||||
|
|
||||||
var expected = new Template(new List<TemplateSegment>());
|
var expected = new RouteTemplate(new List<TemplateSegment>());
|
||||||
expected.Segments.Add(new TemplateSegment());
|
expected.Segments.Add(new TemplateSegment());
|
||||||
expected.Segments[0].Parts.Add(TemplatePart.CreateParameter("p", false, true, defaultValue: null, inlineConstraint: null));
|
expected.Segments[0].Parts.Add(TemplatePart.CreateParameter("p", false, true, defaultValue: null, inlineConstraint: null));
|
||||||
expected.Parameters.Add(expected.Segments[0].Parts[0]);
|
expected.Parameters.Add(expected.Segments[0].Parts[0]);
|
||||||
|
|
@ -67,7 +67,7 @@ namespace Microsoft.AspNet.Routing.Template.Tests
|
||||||
var actual = TemplateParser.Parse(template, _inlineConstraintResolver);
|
var actual = TemplateParser.Parse(template, _inlineConstraintResolver);
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
Assert.Equal<Template>(expected, actual, new TemplateEqualityComparer());
|
Assert.Equal<RouteTemplate>(expected, actual, new TemplateEqualityComparer());
|
||||||
}
|
}
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
|
|
@ -76,7 +76,7 @@ namespace Microsoft.AspNet.Routing.Template.Tests
|
||||||
// Arrange
|
// Arrange
|
||||||
var template = "cool/awesome/super";
|
var template = "cool/awesome/super";
|
||||||
|
|
||||||
var expected = new Template(new List<TemplateSegment>());
|
var expected = new RouteTemplate(new List<TemplateSegment>());
|
||||||
expected.Segments.Add(new TemplateSegment());
|
expected.Segments.Add(new TemplateSegment());
|
||||||
expected.Segments[0].Parts.Add(TemplatePart.CreateLiteral("cool"));
|
expected.Segments[0].Parts.Add(TemplatePart.CreateLiteral("cool"));
|
||||||
expected.Segments.Add(new TemplateSegment());
|
expected.Segments.Add(new TemplateSegment());
|
||||||
|
|
@ -88,7 +88,7 @@ namespace Microsoft.AspNet.Routing.Template.Tests
|
||||||
var actual = TemplateParser.Parse(template, _inlineConstraintResolver);
|
var actual = TemplateParser.Parse(template, _inlineConstraintResolver);
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
Assert.Equal<Template>(expected, actual, new TemplateEqualityComparer());
|
Assert.Equal<RouteTemplate>(expected, actual, new TemplateEqualityComparer());
|
||||||
}
|
}
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
|
|
@ -97,7 +97,7 @@ namespace Microsoft.AspNet.Routing.Template.Tests
|
||||||
// Arrange
|
// Arrange
|
||||||
var template = "{p1}/{p2}/{*p3}";
|
var template = "{p1}/{p2}/{*p3}";
|
||||||
|
|
||||||
var expected = new Template(new List<TemplateSegment>());
|
var expected = new RouteTemplate(new List<TemplateSegment>());
|
||||||
|
|
||||||
expected.Segments.Add(new TemplateSegment());
|
expected.Segments.Add(new TemplateSegment());
|
||||||
expected.Segments[0].Parts.Add(TemplatePart.CreateParameter("p1",
|
expected.Segments[0].Parts.Add(TemplatePart.CreateParameter("p1",
|
||||||
|
|
@ -127,7 +127,7 @@ namespace Microsoft.AspNet.Routing.Template.Tests
|
||||||
var actual = TemplateParser.Parse(template, _inlineConstraintResolver);
|
var actual = TemplateParser.Parse(template, _inlineConstraintResolver);
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
Assert.Equal<Template>(expected, actual, new TemplateEqualityComparer());
|
Assert.Equal<RouteTemplate>(expected, actual, new TemplateEqualityComparer());
|
||||||
}
|
}
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
|
|
@ -136,7 +136,7 @@ namespace Microsoft.AspNet.Routing.Template.Tests
|
||||||
// Arrange
|
// Arrange
|
||||||
var template = "cool-{p1}";
|
var template = "cool-{p1}";
|
||||||
|
|
||||||
var expected = new Template(new List<TemplateSegment>());
|
var expected = new RouteTemplate(new List<TemplateSegment>());
|
||||||
expected.Segments.Add(new TemplateSegment());
|
expected.Segments.Add(new TemplateSegment());
|
||||||
expected.Segments[0].Parts.Add(TemplatePart.CreateLiteral("cool-"));
|
expected.Segments[0].Parts.Add(TemplatePart.CreateLiteral("cool-"));
|
||||||
expected.Segments[0].Parts.Add(TemplatePart.CreateParameter("p1",
|
expected.Segments[0].Parts.Add(TemplatePart.CreateParameter("p1",
|
||||||
|
|
@ -150,7 +150,7 @@ namespace Microsoft.AspNet.Routing.Template.Tests
|
||||||
var actual = TemplateParser.Parse(template, _inlineConstraintResolver);
|
var actual = TemplateParser.Parse(template, _inlineConstraintResolver);
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
Assert.Equal<Template>(expected, actual, new TemplateEqualityComparer());
|
Assert.Equal<RouteTemplate>(expected, actual, new TemplateEqualityComparer());
|
||||||
}
|
}
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
|
|
@ -159,7 +159,7 @@ namespace Microsoft.AspNet.Routing.Template.Tests
|
||||||
// Arrange
|
// Arrange
|
||||||
var template = "{p1}-cool";
|
var template = "{p1}-cool";
|
||||||
|
|
||||||
var expected = new Template(new List<TemplateSegment>());
|
var expected = new RouteTemplate(new List<TemplateSegment>());
|
||||||
expected.Segments.Add(new TemplateSegment());
|
expected.Segments.Add(new TemplateSegment());
|
||||||
expected.Segments[0].Parts.Add(TemplatePart.CreateParameter("p1",
|
expected.Segments[0].Parts.Add(TemplatePart.CreateParameter("p1",
|
||||||
false,
|
false,
|
||||||
|
|
@ -173,7 +173,7 @@ namespace Microsoft.AspNet.Routing.Template.Tests
|
||||||
var actual = TemplateParser.Parse(template, _inlineConstraintResolver);
|
var actual = TemplateParser.Parse(template, _inlineConstraintResolver);
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
Assert.Equal<Template>(expected, actual, new TemplateEqualityComparer());
|
Assert.Equal<RouteTemplate>(expected, actual, new TemplateEqualityComparer());
|
||||||
}
|
}
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
|
|
@ -182,7 +182,7 @@ namespace Microsoft.AspNet.Routing.Template.Tests
|
||||||
// Arrange
|
// Arrange
|
||||||
var template = "{p1}-cool-{p2}";
|
var template = "{p1}-cool-{p2}";
|
||||||
|
|
||||||
var expected = new Template(new List<TemplateSegment>());
|
var expected = new RouteTemplate(new List<TemplateSegment>());
|
||||||
expected.Segments.Add(new TemplateSegment());
|
expected.Segments.Add(new TemplateSegment());
|
||||||
expected.Segments[0].Parts.Add(TemplatePart.CreateParameter("p1",
|
expected.Segments[0].Parts.Add(TemplatePart.CreateParameter("p1",
|
||||||
false,
|
false,
|
||||||
|
|
@ -202,7 +202,7 @@ namespace Microsoft.AspNet.Routing.Template.Tests
|
||||||
var actual = TemplateParser.Parse(template, _inlineConstraintResolver);
|
var actual = TemplateParser.Parse(template, _inlineConstraintResolver);
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
Assert.Equal<Template>(expected, actual, new TemplateEqualityComparer());
|
Assert.Equal<RouteTemplate>(expected, actual, new TemplateEqualityComparer());
|
||||||
}
|
}
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
|
|
@ -211,7 +211,7 @@ namespace Microsoft.AspNet.Routing.Template.Tests
|
||||||
// Arrange
|
// Arrange
|
||||||
var template = "cool-{p1}-awesome";
|
var template = "cool-{p1}-awesome";
|
||||||
|
|
||||||
var expected = new Template(new List<TemplateSegment>());
|
var expected = new RouteTemplate(new List<TemplateSegment>());
|
||||||
expected.Segments.Add(new TemplateSegment());
|
expected.Segments.Add(new TemplateSegment());
|
||||||
expected.Segments[0].Parts.Add(TemplatePart.CreateLiteral("cool-"));
|
expected.Segments[0].Parts.Add(TemplatePart.CreateLiteral("cool-"));
|
||||||
expected.Segments[0].Parts.Add(TemplatePart.CreateParameter("p1",
|
expected.Segments[0].Parts.Add(TemplatePart.CreateParameter("p1",
|
||||||
|
|
@ -226,7 +226,7 @@ namespace Microsoft.AspNet.Routing.Template.Tests
|
||||||
var actual = TemplateParser.Parse(template, _inlineConstraintResolver);
|
var actual = TemplateParser.Parse(template, _inlineConstraintResolver);
|
||||||
|
|
||||||
// Assert
|
// Assert
|
||||||
Assert.Equal<Template>(expected, actual, new TemplateEqualityComparer());
|
Assert.Equal<RouteTemplate>(expected, actual, new TemplateEqualityComparer());
|
||||||
}
|
}
|
||||||
|
|
||||||
[Fact]
|
[Fact]
|
||||||
|
|
@ -454,9 +454,9 @@ namespace Microsoft.AspNet.Routing.Template.Tests
|
||||||
return new DefaultInlineConstraintResolver(serviceProvider, accessor);
|
return new DefaultInlineConstraintResolver(serviceProvider, accessor);
|
||||||
}
|
}
|
||||||
|
|
||||||
private class TemplateEqualityComparer : IEqualityComparer<Template>
|
private class TemplateEqualityComparer : IEqualityComparer<RouteTemplate>
|
||||||
{
|
{
|
||||||
public bool Equals(Template x, Template y)
|
public bool Equals(RouteTemplate x, RouteTemplate y)
|
||||||
{
|
{
|
||||||
if (x == null && y == null)
|
if (x == null && y == null)
|
||||||
{
|
{
|
||||||
|
|
@ -522,7 +522,7 @@ namespace Microsoft.AspNet.Routing.Template.Tests
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
public int GetHashCode(Template obj)
|
public int GetHashCode(RouteTemplate obj)
|
||||||
{
|
{
|
||||||
throw new NotImplementedException();
|
throw new NotImplementedException();
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue