mirror of
				https://github.com/nsnail/Ocelot.git
				synced 2025-11-04 08:55:28 +08:00 
			
		
		
		
	fixes issue #117
This commit is contained in:
		@@ -36,7 +36,7 @@ namespace Ocelot.UnitTests.DownstreamRouteFinder
 | 
			
		||||
        [Fact]
 | 
			
		||||
        public void should_return_route()
 | 
			
		||||
        {
 | 
			
		||||
            this.Given(x => x.GivenThereIsAnUpstreamUrlPath("matchInUrlMatcher"))
 | 
			
		||||
            this.Given(x => x.GivenThereIsAnUpstreamUrlPath("matchInUrlMatcher/"))
 | 
			
		||||
                .And(x =>x.GivenTheTemplateVariableAndNameFinderReturns(
 | 
			
		||||
                        new OkResponse<List<UrlPathPlaceholderNameAndValue>>(
 | 
			
		||||
                            new List<UrlPathPlaceholderNameAndValue>())))
 | 
			
		||||
@@ -65,6 +65,39 @@ namespace Ocelot.UnitTests.DownstreamRouteFinder
 | 
			
		||||
                .BDDfy();
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
        [Fact]
 | 
			
		||||
        public void should_append_slash_to_upstream_url_path()
 | 
			
		||||
        {
 | 
			
		||||
            this.Given(x => x.GivenThereIsAnUpstreamUrlPath("matchInUrlMatcher"))
 | 
			
		||||
                .And(x =>x.GivenTheTemplateVariableAndNameFinderReturns(
 | 
			
		||||
                        new OkResponse<List<UrlPathPlaceholderNameAndValue>>(
 | 
			
		||||
                            new List<UrlPathPlaceholderNameAndValue>())))
 | 
			
		||||
                .And(x => x.GivenTheConfigurationIs(new List<ReRoute>
 | 
			
		||||
                {
 | 
			
		||||
                    new ReRouteBuilder()
 | 
			
		||||
                        .WithDownstreamPathTemplate("someDownstreamPath")
 | 
			
		||||
                        .WithUpstreamPathTemplate("someUpstreamPath")
 | 
			
		||||
                        .WithUpstreamHttpMethod(new List<string> { "Get" })
 | 
			
		||||
                        .WithUpstreamTemplatePattern("someUpstreamPath")
 | 
			
		||||
                        .Build()
 | 
			
		||||
                }, string.Empty
 | 
			
		||||
                ))
 | 
			
		||||
                .And(x => x.GivenTheUrlMatcherReturns(new OkResponse<UrlMatch>(new UrlMatch(true))))
 | 
			
		||||
                .And(x => x.GivenTheUpstreamHttpMethodIs("Get"))
 | 
			
		||||
                .When(x => x.WhenICallTheFinder())
 | 
			
		||||
                .Then(
 | 
			
		||||
                    x => x.ThenTheFollowingIsReturned(new DownstreamRoute(
 | 
			
		||||
                            new List<UrlPathPlaceholderNameAndValue>(),
 | 
			
		||||
                            new ReRouteBuilder()
 | 
			
		||||
                                .WithDownstreamPathTemplate("someDownstreamPath")
 | 
			
		||||
                                .WithUpstreamHttpMethod(new List<string> { "Get" })
 | 
			
		||||
                                .Build()
 | 
			
		||||
                )))
 | 
			
		||||
                .And(x => x.ThenTheUrlMatcherIsCalledCorrectly("matchInUrlMatcher/"))
 | 
			
		||||
                .BDDfy();
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        [Fact]
 | 
			
		||||
        public void should_return_route_if_upstream_path_and_upstream_template_are_the_same()
 | 
			
		||||
        {
 | 
			
		||||
@@ -137,7 +170,7 @@ namespace Ocelot.UnitTests.DownstreamRouteFinder
 | 
			
		||||
        [Fact]
 | 
			
		||||
        public void should_not_return_route()
 | 
			
		||||
        {
 | 
			
		||||
            this.Given(x => x.GivenThereIsAnUpstreamUrlPath("dontMatchPath"))
 | 
			
		||||
            this.Given(x => x.GivenThereIsAnUpstreamUrlPath("dontMatchPath/"))
 | 
			
		||||
                 .And(x => x.GivenTheConfigurationIs(new List<ReRoute>
 | 
			
		||||
                     {
 | 
			
		||||
                        new ReRouteBuilder()
 | 
			
		||||
@@ -269,6 +302,12 @@ namespace Ocelot.UnitTests.DownstreamRouteFinder
 | 
			
		||||
                .Verify(x => x.Match(_upstreamUrlPath, _reRoutesConfig[0].UpstreamPathTemplate.Value), Times.Once);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        private void ThenTheUrlMatcherIsCalledCorrectly(string expectedUpstreamUrlPath)
 | 
			
		||||
        {
 | 
			
		||||
            _mockMatcher
 | 
			
		||||
                .Verify(x => x.Match(expectedUpstreamUrlPath, _reRoutesConfig[0].UpstreamPathTemplate.Value), Times.Once);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        private void ThenTheUrlMatcherIsNotCalled()
 | 
			
		||||
        {
 | 
			
		||||
            _mockMatcher
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user