mirror of
				https://github.com/nsnail/Ocelot.git
				synced 2025-11-04 19:10:51 +08:00 
			
		
		
		
	Feature/#574 look at httpclient cache key (#589)
* #574 consolidate some code, man the config stuff is a mess! * #574 just use the downstream re route and the key for caching http clients * #574 added benchmark, i was suprised to learn using a complex type was faster than a string in benchmark .net dictionary tests, hey ho probably dont have enough data in the type...
This commit is contained in:
		@@ -211,7 +211,7 @@ namespace Ocelot.UnitTests.DownstreamRouteFinder
 | 
			
		||||
 | 
			
		||||
        private void ThenTheDownstreamRouteIsCreated()
 | 
			
		||||
        {
 | 
			
		||||
            _result.Data.ReRoute.DownstreamReRoute[0].DownstreamPathTemplate.Value.ShouldBe("/test");
 | 
			
		||||
            _result.Data.ReRoute.DownstreamReRoute[0].DownstreamDownstreamPathTemplate.Value.ShouldBe("/test");
 | 
			
		||||
            _result.Data.ReRoute.UpstreamHttpMethod[0].ShouldBe(HttpMethod.Get);
 | 
			
		||||
            _result.Data.ReRoute.DownstreamReRoute[0].ServiceName.ShouldBe("auth");
 | 
			
		||||
            _result.Data.ReRoute.DownstreamReRoute[0].LoadBalancerKey.ShouldBe("/auth/test|GET");
 | 
			
		||||
@@ -226,21 +226,21 @@ namespace Ocelot.UnitTests.DownstreamRouteFinder
 | 
			
		||||
 | 
			
		||||
        private void ThenTheDownstreamPathIsForwardSlash()
 | 
			
		||||
        {
 | 
			
		||||
            _result.Data.ReRoute.DownstreamReRoute[0].DownstreamPathTemplate.Value.ShouldBe("/");
 | 
			
		||||
            _result.Data.ReRoute.DownstreamReRoute[0].DownstreamDownstreamPathTemplate.Value.ShouldBe("/");
 | 
			
		||||
            _result.Data.ReRoute.DownstreamReRoute[0].ServiceName.ShouldBe("auth");
 | 
			
		||||
            _result.Data.ReRoute.DownstreamReRoute[0].LoadBalancerKey.ShouldBe("/auth/|GET");
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        private void ThenThePathDoesNotHaveTrailingSlash()
 | 
			
		||||
        {
 | 
			
		||||
            _result.Data.ReRoute.DownstreamReRoute[0].DownstreamPathTemplate.Value.ShouldBe("/test");
 | 
			
		||||
            _result.Data.ReRoute.DownstreamReRoute[0].DownstreamDownstreamPathTemplate.Value.ShouldBe("/test");
 | 
			
		||||
            _result.Data.ReRoute.DownstreamReRoute[0].ServiceName.ShouldBe("auth");
 | 
			
		||||
            _result.Data.ReRoute.DownstreamReRoute[0].LoadBalancerKey.ShouldBe("/auth/test|GET");
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        private void ThenTheQueryStringIsRemoved()
 | 
			
		||||
        {
 | 
			
		||||
            _result.Data.ReRoute.DownstreamReRoute[0].DownstreamPathTemplate.Value.ShouldBe("/test");
 | 
			
		||||
            _result.Data.ReRoute.DownstreamReRoute[0].DownstreamDownstreamPathTemplate.Value.ShouldBe("/test");
 | 
			
		||||
            _result.Data.ReRoute.DownstreamReRoute[0].ServiceName.ShouldBe("auth");
 | 
			
		||||
            _result.Data.ReRoute.DownstreamReRoute[0].LoadBalancerKey.ShouldBe("/auth/test|GET");
 | 
			
		||||
        }
 | 
			
		||||
 
 | 
			
		||||
@@ -47,24 +47,20 @@ namespace Ocelot.UnitTests.DownstreamRouteFinder
 | 
			
		||||
                    new ReRouteBuilder()
 | 
			
		||||
                        .WithDownstreamReRoute(new DownstreamReRouteBuilder()
 | 
			
		||||
                            .WithDownstreamPathTemplate("someDownstreamPath")
 | 
			
		||||
                            .WithUpstreamPathTemplate("someUpstreamPath")
 | 
			
		||||
                            .WithUpstreamHttpMethod(new List<string> { "Post" })
 | 
			
		||||
                            .WithUpstreamTemplatePattern(new UpstreamPathTemplate("test", 1, false))
 | 
			
		||||
                            .WithUpstreamTemplatePattern(new UpstreamPathTemplate("test", 1, false, "someUpstreamPath"))
 | 
			
		||||
                            .Build())
 | 
			
		||||
                        .WithUpstreamPathTemplate("someUpstreamPath")
 | 
			
		||||
                        .WithUpstreamHttpMethod(new List<string> { "Post" })
 | 
			
		||||
                        .WithUpstreamTemplatePattern(new UpstreamPathTemplate("test", 1, false))
 | 
			
		||||
                        .WithUpstreamTemplatePattern(new UpstreamPathTemplate("test", 1, false, "someUpstreamPath"))
 | 
			
		||||
                        .Build(),
 | 
			
		||||
                    new ReRouteBuilder()
 | 
			
		||||
                        .WithDownstreamReRoute(new DownstreamReRouteBuilder()
 | 
			
		||||
                            .WithDownstreamPathTemplate("someDownstreamPath")
 | 
			
		||||
                            .WithUpstreamPathTemplate("someUpstreamPath")
 | 
			
		||||
                            .WithUpstreamHttpMethod(new List<string> { "Post" })
 | 
			
		||||
                            .WithUpstreamTemplatePattern(new UpstreamPathTemplate("test", 0, false))
 | 
			
		||||
                            .WithUpstreamTemplatePattern(new UpstreamPathTemplate("test", 0, false, "someUpstreamPath"))
 | 
			
		||||
                            .Build())
 | 
			
		||||
                        .WithUpstreamPathTemplate("someUpstreamPath")
 | 
			
		||||
                        .WithUpstreamHttpMethod(new List<string> { "Post" })
 | 
			
		||||
                        .WithUpstreamTemplatePattern(new UpstreamPathTemplate("test", 0, false))
 | 
			
		||||
                        .WithUpstreamTemplatePattern(new UpstreamPathTemplate("test", 0, false, "someUpstreamPath"))
 | 
			
		||||
                        .Build()
 | 
			
		||||
                }, string.Empty, serviceProviderConfig))
 | 
			
		||||
                .And(x => x.GivenTheUrlMatcherReturns(new OkResponse<UrlMatch>(new UrlMatch(true))))
 | 
			
		||||
@@ -74,13 +70,11 @@ namespace Ocelot.UnitTests.DownstreamRouteFinder
 | 
			
		||||
                        new ReRouteBuilder()
 | 
			
		||||
                            .WithDownstreamReRoute(new DownstreamReRouteBuilder()
 | 
			
		||||
                                .WithDownstreamPathTemplate("someDownstreamPath")
 | 
			
		||||
                                .WithUpstreamTemplatePattern(new UpstreamPathTemplate("test", 1, false))
 | 
			
		||||
                                .WithUpstreamTemplatePattern(new UpstreamPathTemplate("test", 1, false, "someUpstreamPath"))
 | 
			
		||||
                                .WithUpstreamHttpMethod(new List<string> { "Post" })
 | 
			
		||||
                                .WithUpstreamTemplatePattern(new UpstreamPathTemplate("test", 1, false))
 | 
			
		||||
                                .Build())
 | 
			
		||||
                            .WithUpstreamTemplatePattern(new UpstreamPathTemplate("test", 1, false))
 | 
			
		||||
                            .WithUpstreamTemplatePattern(new UpstreamPathTemplate("test", 1, false, "someUpstreamPath"))
 | 
			
		||||
                            .WithUpstreamHttpMethod(new List<string> { "Post" })
 | 
			
		||||
                            .WithUpstreamTemplatePattern(new UpstreamPathTemplate("test", 1, false))
 | 
			
		||||
                            .Build()
 | 
			
		||||
                        )))
 | 
			
		||||
                .BDDfy();
 | 
			
		||||
@@ -99,24 +93,20 @@ namespace Ocelot.UnitTests.DownstreamRouteFinder
 | 
			
		||||
                    new ReRouteBuilder()
 | 
			
		||||
                        .WithDownstreamReRoute(new DownstreamReRouteBuilder()
 | 
			
		||||
                            .WithDownstreamPathTemplate("someDownstreamPath")
 | 
			
		||||
                            .WithUpstreamPathTemplate("someUpstreamPath")
 | 
			
		||||
                            .WithUpstreamHttpMethod(new List<string> { "Post" })
 | 
			
		||||
                            .WithUpstreamTemplatePattern(new UpstreamPathTemplate("test", 0, false))
 | 
			
		||||
                            .WithUpstreamTemplatePattern(new UpstreamPathTemplate("test", 0, false, "someUpstreamPath"))
 | 
			
		||||
                            .Build())
 | 
			
		||||
                        .WithUpstreamPathTemplate("someUpstreamPath")
 | 
			
		||||
                        .WithUpstreamHttpMethod(new List<string> { "Post" })
 | 
			
		||||
                        .WithUpstreamTemplatePattern(new UpstreamPathTemplate("test", 0, false))
 | 
			
		||||
                        .WithUpstreamTemplatePattern(new UpstreamPathTemplate("test", 0, false, "someUpstreamPath"))
 | 
			
		||||
                        .Build(),
 | 
			
		||||
                    new ReRouteBuilder()
 | 
			
		||||
                        .WithDownstreamReRoute(new DownstreamReRouteBuilder()
 | 
			
		||||
                            .WithDownstreamPathTemplate("someDownstreamPath")
 | 
			
		||||
                            .WithUpstreamPathTemplate("someUpstreamPath")
 | 
			
		||||
                            .WithUpstreamHttpMethod(new List<string> { "Post" })
 | 
			
		||||
                            .WithUpstreamTemplatePattern(new UpstreamPathTemplate("test", 1, false))
 | 
			
		||||
                            .WithUpstreamTemplatePattern(new UpstreamPathTemplate("test", 1, false, "someUpstreamPath"))
 | 
			
		||||
                            .Build())
 | 
			
		||||
                        .WithUpstreamPathTemplate("someUpstreamPath")
 | 
			
		||||
                        .WithUpstreamHttpMethod(new List<string> { "Post" })
 | 
			
		||||
                        .WithUpstreamTemplatePattern(new UpstreamPathTemplate("test", 1, false))
 | 
			
		||||
                        .WithUpstreamTemplatePattern(new UpstreamPathTemplate("test", 1, false, "someUpstreamPath"))
 | 
			
		||||
                        .Build()
 | 
			
		||||
                }, string.Empty, serviceProviderConfig))
 | 
			
		||||
                .And(x => x.GivenTheUrlMatcherReturns(new OkResponse<UrlMatch>(new UrlMatch(true))))
 | 
			
		||||
@@ -126,10 +116,10 @@ namespace Ocelot.UnitTests.DownstreamRouteFinder
 | 
			
		||||
                        new ReRouteBuilder()
 | 
			
		||||
                            .WithDownstreamReRoute(new DownstreamReRouteBuilder()
 | 
			
		||||
                                .WithDownstreamPathTemplate("someDownstreamPath")
 | 
			
		||||
                                .WithUpstreamTemplatePattern(new UpstreamPathTemplate("test", 1, false))
 | 
			
		||||
                                .WithUpstreamTemplatePattern(new UpstreamPathTemplate("test", 1, false, "someUpstreamPath"))
 | 
			
		||||
                                .WithUpstreamHttpMethod(new List<string> { "Post" })
 | 
			
		||||
                                .Build())
 | 
			
		||||
                            .WithUpstreamTemplatePattern(new UpstreamPathTemplate("test", 1, false))
 | 
			
		||||
                            .WithUpstreamTemplatePattern(new UpstreamPathTemplate("test", 1, false, "someUpstreamPath"))
 | 
			
		||||
                            .WithUpstreamHttpMethod(new List<string> { "Post" })
 | 
			
		||||
                            .Build()
 | 
			
		||||
                        )))
 | 
			
		||||
@@ -150,13 +140,11 @@ namespace Ocelot.UnitTests.DownstreamRouteFinder
 | 
			
		||||
                    new ReRouteBuilder()
 | 
			
		||||
                        .WithDownstreamReRoute(new DownstreamReRouteBuilder()
 | 
			
		||||
                            .WithDownstreamPathTemplate("someDownstreamPath")
 | 
			
		||||
                            .WithUpstreamPathTemplate("someUpstreamPath")
 | 
			
		||||
                            .WithUpstreamHttpMethod(new List<string> { "Get" })
 | 
			
		||||
                            .WithUpstreamTemplatePattern(new UpstreamPathTemplate("someUpstreamPath", 1, false))
 | 
			
		||||
                            .WithUpstreamTemplatePattern(new UpstreamPathTemplate("someUpstreamPath", 1, false, "someUpstreamPath"))
 | 
			
		||||
                            .Build())
 | 
			
		||||
                        .WithUpstreamPathTemplate("someUpstreamPath")
 | 
			
		||||
                        .WithUpstreamHttpMethod(new List<string> { "Get" })
 | 
			
		||||
                        .WithUpstreamTemplatePattern(new UpstreamPathTemplate("someUpstreamPath", 1, false))
 | 
			
		||||
                        .WithUpstreamTemplatePattern(new UpstreamPathTemplate("someUpstreamPath", 1, false, "someUpstreamPath"))
 | 
			
		||||
                        .Build()
 | 
			
		||||
                }, string.Empty, serviceProviderConfig
 | 
			
		||||
                ))
 | 
			
		||||
@@ -170,10 +158,10 @@ namespace Ocelot.UnitTests.DownstreamRouteFinder
 | 
			
		||||
                                .WithDownstreamReRoute(new DownstreamReRouteBuilder()
 | 
			
		||||
                                    .WithDownstreamPathTemplate("someDownstreamPath")
 | 
			
		||||
                                    .WithUpstreamHttpMethod(new List<string> { "Get" })
 | 
			
		||||
                                    .WithUpstreamTemplatePattern(new UpstreamPathTemplate("someUpstreamPath", 1, false))
 | 
			
		||||
                                    .WithUpstreamTemplatePattern(new UpstreamPathTemplate("someUpstreamPath", 1, false, "someUpstreamPath"))
 | 
			
		||||
                                    .Build())
 | 
			
		||||
                                .WithUpstreamHttpMethod(new List<string> { "Get" })
 | 
			
		||||
                                .WithUpstreamTemplatePattern(new UpstreamPathTemplate("someUpstreamPath", 1, false))
 | 
			
		||||
                                .WithUpstreamTemplatePattern(new UpstreamPathTemplate("someUpstreamPath", 1, false, "someUpstreamPath"))
 | 
			
		||||
                                .Build()
 | 
			
		||||
                )))
 | 
			
		||||
                .And(x => x.ThenTheUrlMatcherIsCalledCorrectly())
 | 
			
		||||
@@ -194,13 +182,11 @@ namespace Ocelot.UnitTests.DownstreamRouteFinder
 | 
			
		||||
                    new ReRouteBuilder()
 | 
			
		||||
                        .WithDownstreamReRoute(new DownstreamReRouteBuilder()
 | 
			
		||||
                            .WithDownstreamPathTemplate("someDownstreamPath")
 | 
			
		||||
                            .WithUpstreamPathTemplate("someUpstreamPath")
 | 
			
		||||
                            .WithUpstreamHttpMethod(new List<string> { "Get" })
 | 
			
		||||
                            .WithUpstreamTemplatePattern(new UpstreamPathTemplate("someUpstreamPath", 1, false))
 | 
			
		||||
                            .WithUpstreamTemplatePattern(new UpstreamPathTemplate("someUpstreamPath", 1, false, "someUpstreamPath"))
 | 
			
		||||
                            .Build())
 | 
			
		||||
                        .WithUpstreamPathTemplate("someUpstreamPath")
 | 
			
		||||
                        .WithUpstreamHttpMethod(new List<string> { "Get" })
 | 
			
		||||
                        .WithUpstreamTemplatePattern(new UpstreamPathTemplate("someUpstreamPath", 1, false))
 | 
			
		||||
                        .WithUpstreamTemplatePattern(new UpstreamPathTemplate("someUpstreamPath", 1, false, "someUpstreamPath"))
 | 
			
		||||
                        .Build()
 | 
			
		||||
                }, string.Empty, serviceProviderConfig
 | 
			
		||||
                ))
 | 
			
		||||
@@ -214,10 +200,10 @@ namespace Ocelot.UnitTests.DownstreamRouteFinder
 | 
			
		||||
                                .WithDownstreamReRoute(new DownstreamReRouteBuilder()
 | 
			
		||||
                                    .WithDownstreamPathTemplate("someDownstreamPath")
 | 
			
		||||
                                    .WithUpstreamHttpMethod(new List<string> { "Get" })
 | 
			
		||||
                                    .WithUpstreamTemplatePattern(new UpstreamPathTemplate("someUpstreamPath", 1, false))
 | 
			
		||||
                                    .WithUpstreamTemplatePattern(new UpstreamPathTemplate("someUpstreamPath", 1, false, "someUpstreamPath"))
 | 
			
		||||
                                    .Build())
 | 
			
		||||
                                .WithUpstreamHttpMethod(new List<string> { "Get" })
 | 
			
		||||
                                .WithUpstreamTemplatePattern(new UpstreamPathTemplate("someUpstreamPath", 1, false))
 | 
			
		||||
                                .WithUpstreamTemplatePattern(new UpstreamPathTemplate("someUpstreamPath", 1, false, "someUpstreamPath"))
 | 
			
		||||
                                .Build()
 | 
			
		||||
                )))
 | 
			
		||||
                .And(x => x.ThenTheUrlMatcherIsCalledCorrectly("matchInUrlMatcher"))
 | 
			
		||||
@@ -239,13 +225,11 @@ namespace Ocelot.UnitTests.DownstreamRouteFinder
 | 
			
		||||
                    new ReRouteBuilder()
 | 
			
		||||
                        .WithDownstreamReRoute(new DownstreamReRouteBuilder()
 | 
			
		||||
                            .WithDownstreamPathTemplate("someDownstreamPath")
 | 
			
		||||
                            .WithUpstreamPathTemplate("someUpstreamPath")
 | 
			
		||||
                            .WithUpstreamHttpMethod(new List<string> { "Get" })
 | 
			
		||||
                            .WithUpstreamTemplatePattern(new UpstreamPathTemplate("someUpstreamPath", 1, false))
 | 
			
		||||
                            .WithUpstreamTemplatePattern(new UpstreamPathTemplate("someUpstreamPath", 1, false, "someUpstreamPath"))
 | 
			
		||||
                            .Build())
 | 
			
		||||
                        .WithUpstreamPathTemplate("someUpstreamPath")
 | 
			
		||||
                        .WithUpstreamHttpMethod(new List<string> { "Get" })
 | 
			
		||||
                        .WithUpstreamTemplatePattern(new UpstreamPathTemplate("someUpstreamPath", 1, false))
 | 
			
		||||
                        .WithUpstreamTemplatePattern(new UpstreamPathTemplate("someUpstreamPath", 1, false, "someUpstreamPath"))
 | 
			
		||||
                        .Build()
 | 
			
		||||
                }, string.Empty, serviceProviderConfig
 | 
			
		||||
                    ))
 | 
			
		||||
@@ -258,10 +242,10 @@ namespace Ocelot.UnitTests.DownstreamRouteFinder
 | 
			
		||||
                            .WithDownstreamReRoute(new DownstreamReRouteBuilder()
 | 
			
		||||
                                .WithDownstreamPathTemplate("someDownstreamPath")
 | 
			
		||||
                                .WithUpstreamHttpMethod(new List<string> { "Get" })
 | 
			
		||||
                                .WithUpstreamTemplatePattern(new UpstreamPathTemplate("someUpstreamPath", 1, false))
 | 
			
		||||
                                .WithUpstreamTemplatePattern(new UpstreamPathTemplate("someUpstreamPath", 1, false, "someUpstreamPath"))
 | 
			
		||||
                                .Build())
 | 
			
		||||
                            .WithUpstreamHttpMethod(new List<string> { "Get" })
 | 
			
		||||
                            .WithUpstreamTemplatePattern(new UpstreamPathTemplate("someUpstreamPath", 1, false))
 | 
			
		||||
                            .WithUpstreamTemplatePattern(new UpstreamPathTemplate("someUpstreamPath", 1, false, "someUpstreamPath"))
 | 
			
		||||
                            .Build()
 | 
			
		||||
                        )))
 | 
			
		||||
                .BDDfy();
 | 
			
		||||
@@ -282,24 +266,20 @@ namespace Ocelot.UnitTests.DownstreamRouteFinder
 | 
			
		||||
                    new ReRouteBuilder()
 | 
			
		||||
                        .WithDownstreamReRoute(new DownstreamReRouteBuilder()
 | 
			
		||||
                            .WithDownstreamPathTemplate("someDownstreamPath")
 | 
			
		||||
                            .WithUpstreamPathTemplate("someUpstreamPath")
 | 
			
		||||
                            .WithUpstreamHttpMethod(new List<string> { "Get" })
 | 
			
		||||
                            .WithUpstreamTemplatePattern(new UpstreamPathTemplate("", 1, false))
 | 
			
		||||
                            .WithUpstreamTemplatePattern(new UpstreamPathTemplate("", 1, false, "someUpstreamPath"))
 | 
			
		||||
                            .Build())
 | 
			
		||||
                        .WithUpstreamPathTemplate("someUpstreamPath")
 | 
			
		||||
                        .WithUpstreamHttpMethod(new List<string> { "Get" })
 | 
			
		||||
                        .WithUpstreamTemplatePattern(new UpstreamPathTemplate("", 1, false))
 | 
			
		||||
                        .WithUpstreamTemplatePattern(new UpstreamPathTemplate("", 1, false, "someUpstreamPath"))
 | 
			
		||||
                        .Build(),
 | 
			
		||||
                    new ReRouteBuilder()
 | 
			
		||||
                        .WithDownstreamReRoute(new DownstreamReRouteBuilder()
 | 
			
		||||
                            .WithDownstreamPathTemplate("someDownstreamPathForAPost")
 | 
			
		||||
                            .WithUpstreamPathTemplate("someUpstreamPath")
 | 
			
		||||
                            .WithUpstreamHttpMethod(new List<string> { "Post" })
 | 
			
		||||
                            .WithUpstreamTemplatePattern(new UpstreamPathTemplate("", 1, false))
 | 
			
		||||
                            .WithUpstreamTemplatePattern(new UpstreamPathTemplate("", 1, false, "someUpstreamPath"))
 | 
			
		||||
                            .Build())
 | 
			
		||||
                        .WithUpstreamPathTemplate("someUpstreamPath")
 | 
			
		||||
                        .WithUpstreamHttpMethod(new List<string> { "Post" })
 | 
			
		||||
                        .WithUpstreamTemplatePattern(new UpstreamPathTemplate("", 1, false))
 | 
			
		||||
                        .WithUpstreamTemplatePattern(new UpstreamPathTemplate("", 1, false, "someUpstreamPath"))
 | 
			
		||||
                        .Build()
 | 
			
		||||
                }, string.Empty, serviceProviderConfig
 | 
			
		||||
                    ))
 | 
			
		||||
@@ -312,10 +292,10 @@ namespace Ocelot.UnitTests.DownstreamRouteFinder
 | 
			
		||||
                            .WithDownstreamReRoute(new DownstreamReRouteBuilder()
 | 
			
		||||
                                .WithDownstreamPathTemplate("someDownstreamPathForAPost")
 | 
			
		||||
                                .WithUpstreamHttpMethod(new List<string> { "Post" })
 | 
			
		||||
                                .WithUpstreamTemplatePattern(new UpstreamPathTemplate("", 1, false))
 | 
			
		||||
                                .WithUpstreamTemplatePattern(new UpstreamPathTemplate("", 1, false, "someUpstreamPath"))
 | 
			
		||||
                                .Build())
 | 
			
		||||
                            .WithUpstreamHttpMethod(new List<string> { "Post" })
 | 
			
		||||
                            .WithUpstreamTemplatePattern(new UpstreamPathTemplate("", 1, false))
 | 
			
		||||
                            .WithUpstreamTemplatePattern(new UpstreamPathTemplate("", 1, false, "someUpstreamPath"))
 | 
			
		||||
                            .Build()
 | 
			
		||||
                        )))
 | 
			
		||||
                .BDDfy();
 | 
			
		||||
@@ -332,13 +312,11 @@ namespace Ocelot.UnitTests.DownstreamRouteFinder
 | 
			
		||||
                        new ReRouteBuilder()
 | 
			
		||||
                        .WithDownstreamReRoute(new DownstreamReRouteBuilder()
 | 
			
		||||
                                .WithDownstreamPathTemplate("somPath")
 | 
			
		||||
                                .WithUpstreamPathTemplate("somePath")
 | 
			
		||||
                                .WithUpstreamHttpMethod(new List<string> { "Get" })
 | 
			
		||||
                                .WithUpstreamTemplatePattern(new UpstreamPathTemplate("somePath", 1, false))
 | 
			
		||||
                                .WithUpstreamTemplatePattern(new UpstreamPathTemplate("somePath", 1, false, "someUpstreamPath"))
 | 
			
		||||
                                .Build())
 | 
			
		||||
                        .WithUpstreamPathTemplate("somePath")
 | 
			
		||||
                        .WithUpstreamHttpMethod(new List<string> { "Get" })
 | 
			
		||||
                        .WithUpstreamTemplatePattern(new UpstreamPathTemplate("somePath", 1, false))
 | 
			
		||||
                        .WithUpstreamTemplatePattern(new UpstreamPathTemplate("somePath", 1, false, "someUpstreamPath"))
 | 
			
		||||
                        .Build(),   
 | 
			
		||||
                     }, string.Empty, serviceProviderConfig
 | 
			
		||||
                 ))
 | 
			
		||||
@@ -366,13 +344,11 @@ namespace Ocelot.UnitTests.DownstreamRouteFinder
 | 
			
		||||
                    new ReRouteBuilder()
 | 
			
		||||
                        .WithDownstreamReRoute(new DownstreamReRouteBuilder()
 | 
			
		||||
                            .WithDownstreamPathTemplate("someDownstreamPath")
 | 
			
		||||
                            .WithUpstreamPathTemplate("someUpstreamPath")
 | 
			
		||||
                            .WithUpstreamHttpMethod(new List<string> { "Get", "Post" })
 | 
			
		||||
                            .WithUpstreamTemplatePattern(new UpstreamPathTemplate("", 1, false))
 | 
			
		||||
                            .WithUpstreamTemplatePattern(new UpstreamPathTemplate("", 1, false, "someUpstreamPath"))
 | 
			
		||||
                            .Build())
 | 
			
		||||
                        .WithUpstreamPathTemplate("someUpstreamPath")
 | 
			
		||||
                        .WithUpstreamHttpMethod(new List<string> { "Get", "Post" })
 | 
			
		||||
                        .WithUpstreamTemplatePattern(new UpstreamPathTemplate("", 1, false))
 | 
			
		||||
                        .WithUpstreamTemplatePattern(new UpstreamPathTemplate("", 1, false, "someUpstreamPath"))
 | 
			
		||||
                        .Build()
 | 
			
		||||
                }, string.Empty, serviceProviderConfig
 | 
			
		||||
                    ))
 | 
			
		||||
@@ -385,10 +361,10 @@ namespace Ocelot.UnitTests.DownstreamRouteFinder
 | 
			
		||||
                            .WithDownstreamReRoute(new DownstreamReRouteBuilder()
 | 
			
		||||
                                .WithDownstreamPathTemplate("someDownstreamPath")
 | 
			
		||||
                                .WithUpstreamHttpMethod(new List<string> { "Post" })
 | 
			
		||||
                                .WithUpstreamTemplatePattern(new UpstreamPathTemplate("", 1, false))
 | 
			
		||||
                                .WithUpstreamTemplatePattern(new UpstreamPathTemplate("", 1, false, "someUpstreamPath"))
 | 
			
		||||
                                .Build())
 | 
			
		||||
                            .WithUpstreamHttpMethod(new List<string> { "Post" })
 | 
			
		||||
                            .WithUpstreamTemplatePattern(new UpstreamPathTemplate("", 1, false))
 | 
			
		||||
                            .WithUpstreamTemplatePattern(new UpstreamPathTemplate("", 1, false, "someUpstreamPath"))
 | 
			
		||||
                            .Build()
 | 
			
		||||
                        )))
 | 
			
		||||
                .BDDfy();
 | 
			
		||||
@@ -409,13 +385,11 @@ namespace Ocelot.UnitTests.DownstreamRouteFinder
 | 
			
		||||
                    new ReRouteBuilder()
 | 
			
		||||
                        .WithDownstreamReRoute(new DownstreamReRouteBuilder()
 | 
			
		||||
                            .WithDownstreamPathTemplate("someDownstreamPath")
 | 
			
		||||
                            .WithUpstreamPathTemplate("someUpstreamPath")
 | 
			
		||||
                            .WithUpstreamHttpMethod(new List<string>())
 | 
			
		||||
                            .WithUpstreamTemplatePattern(new UpstreamPathTemplate("", 1, false))
 | 
			
		||||
                            .WithUpstreamTemplatePattern(new UpstreamPathTemplate("", 1, false, "someUpstreamPath"))
 | 
			
		||||
                            .Build())
 | 
			
		||||
                        .WithUpstreamPathTemplate("someUpstreamPath")
 | 
			
		||||
                        .WithUpstreamHttpMethod(new List<string>())
 | 
			
		||||
                        .WithUpstreamTemplatePattern(new UpstreamPathTemplate("", 1, false))
 | 
			
		||||
                        .WithUpstreamTemplatePattern(new UpstreamPathTemplate("", 1, false, "someUpstreamPath"))
 | 
			
		||||
                        .Build()
 | 
			
		||||
                }, string.Empty, serviceProviderConfig
 | 
			
		||||
                    ))
 | 
			
		||||
@@ -428,10 +402,10 @@ namespace Ocelot.UnitTests.DownstreamRouteFinder
 | 
			
		||||
                            .WithDownstreamReRoute(new DownstreamReRouteBuilder()
 | 
			
		||||
                                .WithDownstreamPathTemplate("someDownstreamPath")
 | 
			
		||||
                                .WithUpstreamHttpMethod(new List<string> { "Post" })
 | 
			
		||||
                                .WithUpstreamTemplatePattern(new UpstreamPathTemplate("", 1, false))
 | 
			
		||||
                                .WithUpstreamTemplatePattern(new UpstreamPathTemplate("", 1, false, "someUpstreamPath"))
 | 
			
		||||
                                .Build())
 | 
			
		||||
                            .WithUpstreamHttpMethod(new List<string> { "Post" })
 | 
			
		||||
                            .WithUpstreamTemplatePattern(new UpstreamPathTemplate("", 1, false))
 | 
			
		||||
                            .WithUpstreamTemplatePattern(new UpstreamPathTemplate("", 1, false, "someUpstreamPath"))
 | 
			
		||||
                            .Build()
 | 
			
		||||
                        )))
 | 
			
		||||
                .BDDfy();
 | 
			
		||||
@@ -452,13 +426,11 @@ namespace Ocelot.UnitTests.DownstreamRouteFinder
 | 
			
		||||
                    new ReRouteBuilder()
 | 
			
		||||
                        .WithDownstreamReRoute(new DownstreamReRouteBuilder()
 | 
			
		||||
                            .WithDownstreamPathTemplate("someDownstreamPath")
 | 
			
		||||
                            .WithUpstreamPathTemplate("someUpstreamPath")
 | 
			
		||||
                            .WithUpstreamHttpMethod(new List<string> { "Get", "Patch", "Delete" })
 | 
			
		||||
                            .WithUpstreamTemplatePattern(new UpstreamPathTemplate("", 1, false))
 | 
			
		||||
                            .WithUpstreamTemplatePattern(new UpstreamPathTemplate("", 1, false, "someUpstreamPath"))
 | 
			
		||||
                            .Build())
 | 
			
		||||
                        .WithUpstreamPathTemplate("someUpstreamPath")
 | 
			
		||||
                        .WithUpstreamHttpMethod(new List<string> { "Get", "Patch", "Delete" })
 | 
			
		||||
                        .WithUpstreamTemplatePattern(new UpstreamPathTemplate("", 1, false))
 | 
			
		||||
                        .WithUpstreamTemplatePattern(new UpstreamPathTemplate("", 1, false, "someUpstreamPath"))
 | 
			
		||||
                        .Build()
 | 
			
		||||
                }, string.Empty, serviceProviderConfig
 | 
			
		||||
                    ))
 | 
			
		||||
@@ -485,14 +457,12 @@ namespace Ocelot.UnitTests.DownstreamRouteFinder
 | 
			
		||||
                        new ReRouteBuilder()
 | 
			
		||||
                            .WithDownstreamReRoute(new DownstreamReRouteBuilder()
 | 
			
		||||
                                .WithDownstreamPathTemplate("someDownstreamPath")
 | 
			
		||||
                                .WithUpstreamPathTemplate("someUpstreamPath")
 | 
			
		||||
                                .WithUpstreamHttpMethod(new List<string> { "Get" })
 | 
			
		||||
                                .WithUpstreamTemplatePattern(new UpstreamPathTemplate("someUpstreamPath", 1, false))
 | 
			
		||||
                                .WithUpstreamTemplatePattern(new UpstreamPathTemplate("someUpstreamPath", 1, false, "someUpstreamPath"))
 | 
			
		||||
                                .WithUpstreamHost("MATCH")
 | 
			
		||||
                                .Build())
 | 
			
		||||
                            .WithUpstreamPathTemplate("someUpstreamPath")
 | 
			
		||||
                            .WithUpstreamHttpMethod(new List<string> { "Get" })
 | 
			
		||||
                            .WithUpstreamTemplatePattern(new UpstreamPathTemplate("someUpstreamPath", 1, false))
 | 
			
		||||
                            .WithUpstreamTemplatePattern(new UpstreamPathTemplate("someUpstreamPath", 1, false, "someUpstreamPath"))
 | 
			
		||||
                            .WithUpstreamHost("MATCH")
 | 
			
		||||
                            .Build()
 | 
			
		||||
                    }, string.Empty, serviceProviderConfig
 | 
			
		||||
@@ -507,10 +477,10 @@ namespace Ocelot.UnitTests.DownstreamRouteFinder
 | 
			
		||||
                            .WithDownstreamReRoute(new DownstreamReRouteBuilder()
 | 
			
		||||
                                .WithDownstreamPathTemplate("someDownstreamPath")
 | 
			
		||||
                                .WithUpstreamHttpMethod(new List<string> { "Get" })
 | 
			
		||||
                                .WithUpstreamTemplatePattern(new UpstreamPathTemplate("someUpstreamPath", 1, false))
 | 
			
		||||
                                .WithUpstreamTemplatePattern(new UpstreamPathTemplate("someUpstreamPath", 1, false, "someUpstreamPath"))
 | 
			
		||||
                                .Build())
 | 
			
		||||
                            .WithUpstreamHttpMethod(new List<string> { "Get" })
 | 
			
		||||
                            .WithUpstreamTemplatePattern(new UpstreamPathTemplate("someUpstreamPath", 1, false))
 | 
			
		||||
                            .WithUpstreamTemplatePattern(new UpstreamPathTemplate("someUpstreamPath", 1, false, "someUpstreamPath"))
 | 
			
		||||
                            .Build()
 | 
			
		||||
                    )))
 | 
			
		||||
                .And(x => x.ThenTheUrlMatcherIsCalledCorrectly())
 | 
			
		||||
@@ -532,13 +502,11 @@ namespace Ocelot.UnitTests.DownstreamRouteFinder
 | 
			
		||||
                        new ReRouteBuilder()
 | 
			
		||||
                            .WithDownstreamReRoute(new DownstreamReRouteBuilder()
 | 
			
		||||
                                .WithDownstreamPathTemplate("someDownstreamPath")
 | 
			
		||||
                                .WithUpstreamPathTemplate("someUpstreamPath")
 | 
			
		||||
                                .WithUpstreamHttpMethod(new List<string> { "Get" })
 | 
			
		||||
                                .WithUpstreamTemplatePattern(new UpstreamPathTemplate("someUpstreamPath", 1, false))
 | 
			
		||||
                                .WithUpstreamTemplatePattern(new UpstreamPathTemplate("someUpstreamPath", 1, false, "someUpstreamPath"))
 | 
			
		||||
                                .Build())
 | 
			
		||||
                            .WithUpstreamPathTemplate("someUpstreamPath")
 | 
			
		||||
                            .WithUpstreamHttpMethod(new List<string> { "Get" })
 | 
			
		||||
                            .WithUpstreamTemplatePattern(new UpstreamPathTemplate("someUpstreamPath", 1, false))
 | 
			
		||||
                            .WithUpstreamTemplatePattern(new UpstreamPathTemplate("someUpstreamPath", 1, false, "someUpstreamPath"))
 | 
			
		||||
                            .Build()
 | 
			
		||||
                    }, string.Empty, serviceProviderConfig
 | 
			
		||||
                ))
 | 
			
		||||
@@ -552,10 +520,10 @@ namespace Ocelot.UnitTests.DownstreamRouteFinder
 | 
			
		||||
                            .WithDownstreamReRoute(new DownstreamReRouteBuilder()
 | 
			
		||||
                                .WithDownstreamPathTemplate("someDownstreamPath")
 | 
			
		||||
                                .WithUpstreamHttpMethod(new List<string> { "Get" })
 | 
			
		||||
                                .WithUpstreamTemplatePattern(new UpstreamPathTemplate("someUpstreamPath", 1, false))
 | 
			
		||||
                                .WithUpstreamTemplatePattern(new UpstreamPathTemplate("someUpstreamPath", 1, false, "someUpstreamPath"))
 | 
			
		||||
                                .Build())
 | 
			
		||||
                            .WithUpstreamHttpMethod(new List<string> { "Get" })
 | 
			
		||||
                            .WithUpstreamTemplatePattern(new UpstreamPathTemplate("someUpstreamPath", 1, false))
 | 
			
		||||
                            .WithUpstreamTemplatePattern(new UpstreamPathTemplate("someUpstreamPath", 1, false, "someUpstreamPath"))
 | 
			
		||||
                            .Build()
 | 
			
		||||
                    )))
 | 
			
		||||
                .And(x => x.ThenTheUrlMatcherIsCalledCorrectly())
 | 
			
		||||
@@ -575,27 +543,23 @@ namespace Ocelot.UnitTests.DownstreamRouteFinder
 | 
			
		||||
                        new ReRouteBuilder()
 | 
			
		||||
                            .WithDownstreamReRoute(new DownstreamReRouteBuilder()
 | 
			
		||||
                                .WithDownstreamPathTemplate("someDownstreamPath")
 | 
			
		||||
                                .WithUpstreamPathTemplate("someUpstreamPath")
 | 
			
		||||
                                .WithUpstreamHttpMethod(new List<string> { "Get" })
 | 
			
		||||
                                .WithUpstreamTemplatePattern(new UpstreamPathTemplate("someUpstreamPath", 1, false))
 | 
			
		||||
                                .WithUpstreamTemplatePattern(new UpstreamPathTemplate("someUpstreamPath", 1, false, "someUpstreamPath"))
 | 
			
		||||
                                .WithUpstreamHost("MATCH")
 | 
			
		||||
                                .Build())
 | 
			
		||||
                            .WithUpstreamPathTemplate("someUpstreamPath")
 | 
			
		||||
                            .WithUpstreamHttpMethod(new List<string> { "Get" })
 | 
			
		||||
                            .WithUpstreamTemplatePattern(new UpstreamPathTemplate("someUpstreamPath", 1, false))
 | 
			
		||||
                            .WithUpstreamTemplatePattern(new UpstreamPathTemplate("someUpstreamPath", 1, false, "someUpstreamPath"))
 | 
			
		||||
                            .WithUpstreamHost("MATCH")
 | 
			
		||||
                            .Build(),
 | 
			
		||||
                        new ReRouteBuilder()
 | 
			
		||||
                            .WithDownstreamReRoute(new DownstreamReRouteBuilder()
 | 
			
		||||
                                .WithDownstreamPathTemplate("someDownstreamPath")
 | 
			
		||||
                                .WithUpstreamPathTemplate("someUpstreamPath")
 | 
			
		||||
                                .WithUpstreamHttpMethod(new List<string> { }) // empty list of methods
 | 
			
		||||
                                .WithUpstreamTemplatePattern(new UpstreamPathTemplate("someUpstreamPath", 1, false))
 | 
			
		||||
                                .WithUpstreamTemplatePattern(new UpstreamPathTemplate("someUpstreamPath", 1, false, "someUpstreamPath"))
 | 
			
		||||
                                .WithUpstreamHost("MATCH")
 | 
			
		||||
                                .Build())
 | 
			
		||||
                            .WithUpstreamPathTemplate("someUpstreamPath")
 | 
			
		||||
                            .WithUpstreamHttpMethod(new List<string> { }) // empty list of methods
 | 
			
		||||
                            .WithUpstreamTemplatePattern(new UpstreamPathTemplate("someUpstreamPath", 1, false))
 | 
			
		||||
                            .WithUpstreamTemplatePattern(new UpstreamPathTemplate("someUpstreamPath", 1, false, "someUpstreamPath"))
 | 
			
		||||
                            .WithUpstreamHost("MATCH")
 | 
			
		||||
                            .Build()
 | 
			
		||||
                    }, string.Empty, serviceProviderConfig
 | 
			
		||||
@@ -621,14 +585,12 @@ namespace Ocelot.UnitTests.DownstreamRouteFinder
 | 
			
		||||
                        new ReRouteBuilder()
 | 
			
		||||
                            .WithDownstreamReRoute(new DownstreamReRouteBuilder()
 | 
			
		||||
                                .WithDownstreamPathTemplate("someDownstreamPath")
 | 
			
		||||
                                .WithUpstreamPathTemplate("someUpstreamPath")
 | 
			
		||||
                                .WithUpstreamHttpMethod(new List<string>())
 | 
			
		||||
                                .WithUpstreamTemplatePattern(new UpstreamPathTemplate("someUpstreamPath", 1, false))
 | 
			
		||||
                                .WithUpstreamTemplatePattern(new UpstreamPathTemplate("someUpstreamPath", 1, false, "someUpstreamPath"))
 | 
			
		||||
                                .WithUpstreamHost("MATCH")
 | 
			
		||||
                                .Build())
 | 
			
		||||
                            .WithUpstreamPathTemplate("someUpstreamPath")
 | 
			
		||||
                            .WithUpstreamHttpMethod(new List<string>())
 | 
			
		||||
                            .WithUpstreamTemplatePattern(new UpstreamPathTemplate("someUpstreamPath", 1, false))
 | 
			
		||||
                            .WithUpstreamTemplatePattern(new UpstreamPathTemplate("someUpstreamPath", 1, false, "someUpstreamPath"))
 | 
			
		||||
                            .WithUpstreamHost("MATCH")
 | 
			
		||||
                            .Build()
 | 
			
		||||
                    }, string.Empty, serviceProviderConfig
 | 
			
		||||
@@ -654,14 +616,12 @@ namespace Ocelot.UnitTests.DownstreamRouteFinder
 | 
			
		||||
                        new ReRouteBuilder()
 | 
			
		||||
                            .WithDownstreamReRoute(new DownstreamReRouteBuilder()
 | 
			
		||||
                                .WithDownstreamPathTemplate("someDownstreamPath")
 | 
			
		||||
                                .WithUpstreamPathTemplate("someUpstreamPath")
 | 
			
		||||
                                .WithUpstreamHttpMethod(new List<string>())
 | 
			
		||||
                                .WithUpstreamTemplatePattern(new UpstreamPathTemplate("someUpstreamPath", 1, false))
 | 
			
		||||
                                .WithUpstreamTemplatePattern(new UpstreamPathTemplate("someUpstreamPath", 1, false, "someUpstreamPath"))
 | 
			
		||||
                                .WithUpstreamHost("MATCH")
 | 
			
		||||
                                .Build())
 | 
			
		||||
                            .WithUpstreamPathTemplate("someUpstreamPath")
 | 
			
		||||
                            .WithUpstreamHttpMethod(new List<string>())
 | 
			
		||||
                            .WithUpstreamTemplatePattern(new UpstreamPathTemplate("someUpstreamPath", 1, false))
 | 
			
		||||
                            .WithUpstreamTemplatePattern(new UpstreamPathTemplate("someUpstreamPath", 1, false, "someUpstreamPath"))
 | 
			
		||||
                            .WithUpstreamHost("MATCH")
 | 
			
		||||
                            .Build()
 | 
			
		||||
                    }, string.Empty, serviceProviderConfig
 | 
			
		||||
@@ -688,25 +648,21 @@ namespace Ocelot.UnitTests.DownstreamRouteFinder
 | 
			
		||||
                        new ReRouteBuilder()
 | 
			
		||||
                            .WithDownstreamReRoute(new DownstreamReRouteBuilder()
 | 
			
		||||
                                .WithDownstreamPathTemplate("THENULLPATH")
 | 
			
		||||
                                .WithUpstreamPathTemplate("someUpstreamPath")
 | 
			
		||||
                                .WithUpstreamHttpMethod(new List<string> { "Get" })
 | 
			
		||||
                                .WithUpstreamTemplatePattern(new UpstreamPathTemplate("someUpstreamPath", 1, false))
 | 
			
		||||
                                .WithUpstreamTemplatePattern(new UpstreamPathTemplate("someUpstreamPath", 1, false, "someUpstreamPath"))
 | 
			
		||||
                                .Build())
 | 
			
		||||
                            .WithUpstreamPathTemplate("someUpstreamPath")
 | 
			
		||||
                            .WithUpstreamHttpMethod(new List<string> { "Get" })
 | 
			
		||||
                            .WithUpstreamTemplatePattern(new UpstreamPathTemplate("someUpstreamPath", 1, false))
 | 
			
		||||
                            .WithUpstreamTemplatePattern(new UpstreamPathTemplate("someUpstreamPath", 1, false, "someUpstreamPath"))
 | 
			
		||||
                            .Build(),
 | 
			
		||||
                        new ReRouteBuilder()
 | 
			
		||||
                            .WithDownstreamReRoute(new DownstreamReRouteBuilder()
 | 
			
		||||
                                .WithDownstreamPathTemplate("someDownstreamPath")
 | 
			
		||||
                                .WithUpstreamPathTemplate("someUpstreamPath")
 | 
			
		||||
                                .WithUpstreamHttpMethod(new List<string> { "Get" })
 | 
			
		||||
                                .WithUpstreamTemplatePattern(new UpstreamPathTemplate("someUpstreamPath", 1, false))
 | 
			
		||||
                                .WithUpstreamTemplatePattern(new UpstreamPathTemplate("someUpstreamPath", 1, false, "someUpstreamPath"))
 | 
			
		||||
                                .WithUpstreamHost("MATCH")
 | 
			
		||||
                                .Build())
 | 
			
		||||
                            .WithUpstreamPathTemplate("someUpstreamPath")
 | 
			
		||||
                            .WithUpstreamHttpMethod(new List<string> { "Get" })
 | 
			
		||||
                            .WithUpstreamTemplatePattern(new UpstreamPathTemplate("someUpstreamPath", 1, false))
 | 
			
		||||
                            .WithUpstreamTemplatePattern(new UpstreamPathTemplate("someUpstreamPath", 1, false, "someUpstreamPath"))
 | 
			
		||||
                            .WithUpstreamHost("MATCH")
 | 
			
		||||
                            .Build()
 | 
			
		||||
                    }, string.Empty, serviceProviderConfig
 | 
			
		||||
@@ -721,10 +677,10 @@ namespace Ocelot.UnitTests.DownstreamRouteFinder
 | 
			
		||||
                            .WithDownstreamReRoute(new DownstreamReRouteBuilder()
 | 
			
		||||
                                .WithDownstreamPathTemplate("someDownstreamPath")
 | 
			
		||||
                                .WithUpstreamHttpMethod(new List<string> { "Get" })
 | 
			
		||||
                                .WithUpstreamTemplatePattern(new UpstreamPathTemplate("someUpstreamPath", 1, false))
 | 
			
		||||
                                .WithUpstreamTemplatePattern(new UpstreamPathTemplate("someUpstreamPath", 1, false, "test"))
 | 
			
		||||
                                .Build())
 | 
			
		||||
                            .WithUpstreamHttpMethod(new List<string> { "Get" })
 | 
			
		||||
                            .WithUpstreamTemplatePattern(new UpstreamPathTemplate("someUpstreamPath", 1, false))
 | 
			
		||||
                            .WithUpstreamTemplatePattern(new UpstreamPathTemplate("someUpstreamPath", 1, false, "test"))
 | 
			
		||||
                            .Build()
 | 
			
		||||
                    )))
 | 
			
		||||
                .And(x => x.ThenTheUrlMatcherIsCalledCorrectly(2))
 | 
			
		||||
@@ -756,25 +712,25 @@ namespace Ocelot.UnitTests.DownstreamRouteFinder
 | 
			
		||||
        private void ThenTheUrlMatcherIsCalledCorrectly()
 | 
			
		||||
        {
 | 
			
		||||
            _mockMatcher
 | 
			
		||||
                .Verify(x => x.Match(_upstreamUrlPath, _upstreamQuery, _reRoutesConfig[0].UpstreamPathTemplate.Value, _reRoutesConfig[0].UpstreamTemplatePattern.ContainsQueryString), Times.Once);
 | 
			
		||||
                .Verify(x => x.Match(_upstreamUrlPath, _upstreamQuery, _reRoutesConfig[0].UpstreamTemplatePattern.Template, _reRoutesConfig[0].UpstreamTemplatePattern.ContainsQueryString), Times.Once);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        private void ThenTheUrlMatcherIsCalledCorrectly(int times)
 | 
			
		||||
        {
 | 
			
		||||
            _mockMatcher
 | 
			
		||||
                .Verify(x => x.Match(_upstreamUrlPath, _upstreamQuery, _reRoutesConfig[0].UpstreamPathTemplate.Value, _reRoutesConfig[0].UpstreamTemplatePattern.ContainsQueryString), Times.Exactly(times));
 | 
			
		||||
                .Verify(x => x.Match(_upstreamUrlPath, _upstreamQuery, _reRoutesConfig[0].UpstreamTemplatePattern.OriginalValue, _reRoutesConfig[0].UpstreamTemplatePattern.ContainsQueryString), Times.Exactly(times));
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        private void ThenTheUrlMatcherIsCalledCorrectly(string expectedUpstreamUrlPath)
 | 
			
		||||
        {
 | 
			
		||||
            _mockMatcher
 | 
			
		||||
                .Verify(x => x.Match(expectedUpstreamUrlPath, _upstreamQuery, _reRoutesConfig[0].UpstreamPathTemplate.Value, _reRoutesConfig[0].UpstreamTemplatePattern.ContainsQueryString), Times.Once);
 | 
			
		||||
                .Verify(x => x.Match(expectedUpstreamUrlPath, _upstreamQuery, _reRoutesConfig[0].UpstreamTemplatePattern.OriginalValue, _reRoutesConfig[0].UpstreamTemplatePattern.ContainsQueryString), Times.Once);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        private void ThenTheUrlMatcherIsNotCalled()
 | 
			
		||||
        {
 | 
			
		||||
            _mockMatcher
 | 
			
		||||
                .Verify(x => x.Match(_upstreamUrlPath, _upstreamQuery, _reRoutesConfig[0].UpstreamPathTemplate.Value, _reRoutesConfig[0].UpstreamTemplatePattern.ContainsQueryString), Times.Never);
 | 
			
		||||
                .Verify(x => x.Match(_upstreamUrlPath, _upstreamQuery, _reRoutesConfig[0].UpstreamTemplatePattern.OriginalValue, _reRoutesConfig[0].UpstreamTemplatePattern.ContainsQueryString), Times.Never);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        private void GivenTheUrlMatcherReturns(Response<UrlMatch> match)
 | 
			
		||||
@@ -803,7 +759,7 @@ namespace Ocelot.UnitTests.DownstreamRouteFinder
 | 
			
		||||
 | 
			
		||||
        private void ThenTheFollowingIsReturned(DownstreamRoute expected)
 | 
			
		||||
        {
 | 
			
		||||
            _result.Data.ReRoute.DownstreamReRoute[0].DownstreamPathTemplate.Value.ShouldBe(expected.ReRoute.DownstreamReRoute[0].DownstreamPathTemplate.Value);
 | 
			
		||||
            _result.Data.ReRoute.DownstreamReRoute[0].DownstreamDownstreamPathTemplate.Value.ShouldBe(expected.ReRoute.DownstreamReRoute[0].DownstreamDownstreamPathTemplate.Value);
 | 
			
		||||
            _result.Data.ReRoute.UpstreamTemplatePattern.Priority.ShouldBe(expected.ReRoute.UpstreamTemplatePattern.Priority);
 | 
			
		||||
 | 
			
		||||
            for (int i = 0; i < _result.Data.TemplatePlaceholderNameAndValues.Count; i++)
 | 
			
		||||
 
 | 
			
		||||
@@ -5,11 +5,8 @@ namespace Ocelot.UnitTests.DownstreamRouteFinder
 | 
			
		||||
    using Moq;
 | 
			
		||||
    using Ocelot.Configuration;
 | 
			
		||||
    using Ocelot.Configuration.Builder;
 | 
			
		||||
    using Ocelot.DownstreamRouteFinder;
 | 
			
		||||
    using Ocelot.DownstreamRouteFinder.Finder;
 | 
			
		||||
    using Ocelot.DownstreamRouteFinder.UrlMatcher;
 | 
			
		||||
    using Ocelot.Responses;
 | 
			
		||||
    using Ocelot.Values;
 | 
			
		||||
    using Shouldly;
 | 
			
		||||
    using TestStack.BDDfy;
 | 
			
		||||
    using Xunit;
 | 
			
		||||
@@ -30,8 +27,8 @@ namespace Ocelot.UnitTests.DownstreamRouteFinder
 | 
			
		||||
            services.AddSingleton<IPlaceholderNameAndValueFinder, UrlPathPlaceholderNameAndValueFinder>();
 | 
			
		||||
            services.AddSingleton<IUrlPathToUrlTemplateMatcher, RegExUrlMatcher>();
 | 
			
		||||
            services.AddSingleton<IQoSOptionsCreator, QoSOptionsCreator>();
 | 
			
		||||
            services.AddSingleton<IDownstreamRouteProvider, Ocelot.DownstreamRouteFinder.Finder.DownstreamRouteFinder>();
 | 
			
		||||
            services.AddSingleton<IDownstreamRouteProvider, Ocelot.DownstreamRouteFinder.Finder.DownstreamRouteCreator>();
 | 
			
		||||
            services.AddSingleton<IDownstreamRouteProvider, DownstreamRouteFinder>();
 | 
			
		||||
            services.AddSingleton<IDownstreamRouteProvider, DownstreamRouteCreator>();
 | 
			
		||||
            var provider = services.BuildServiceProvider();
 | 
			
		||||
            _logger = new Mock<IOcelotLogger>();
 | 
			
		||||
            _loggerFactory = new Mock<IOcelotLoggerFactory>();
 | 
			
		||||
@@ -49,7 +46,7 @@ namespace Ocelot.UnitTests.DownstreamRouteFinder
 | 
			
		||||
 | 
			
		||||
            this.Given(_ => GivenTheReRoutes(reRoutes))
 | 
			
		||||
                .When(_ => WhenIGet())
 | 
			
		||||
                .Then(_ => ThenTheResultShouldBe<Ocelot.DownstreamRouteFinder.Finder.DownstreamRouteFinder>())
 | 
			
		||||
                .Then(_ => ThenTheResultShouldBe<DownstreamRouteFinder>())
 | 
			
		||||
                .BDDfy();
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
@@ -59,12 +56,12 @@ namespace Ocelot.UnitTests.DownstreamRouteFinder
 | 
			
		||||
            var spConfig = new ServiceProviderConfigurationBuilder().WithHost("test").WithPort(50).WithType("test").Build();
 | 
			
		||||
            var reRoutes = new List<ReRoute>
 | 
			
		||||
            {
 | 
			
		||||
                new ReRouteBuilder().WithUpstreamPathTemplate("woot").Build()
 | 
			
		||||
                new ReRouteBuilder().WithUpstreamTemplatePattern(new UpstreamPathTemplateBuilder().WithOriginalValue("woot").Build()).Build()
 | 
			
		||||
            };
 | 
			
		||||
 | 
			
		||||
            this.Given(_ => GivenTheReRoutes(reRoutes, spConfig))
 | 
			
		||||
                .When(_ => WhenIGet())
 | 
			
		||||
                .Then(_ => ThenTheResultShouldBe<Ocelot.DownstreamRouteFinder.Finder.DownstreamRouteFinder>())
 | 
			
		||||
                .Then(_ => ThenTheResultShouldBe<DownstreamRouteFinder>())
 | 
			
		||||
                .BDDfy();
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
@@ -76,7 +73,7 @@ namespace Ocelot.UnitTests.DownstreamRouteFinder
 | 
			
		||||
 | 
			
		||||
            this.Given(_ => GivenTheReRoutes(reRoutes, spConfig))
 | 
			
		||||
                .When(_ => WhenIGet())
 | 
			
		||||
                .Then(_ => ThenTheResultShouldBe<Ocelot.DownstreamRouteFinder.Finder.DownstreamRouteFinder>())
 | 
			
		||||
                .Then(_ => ThenTheResultShouldBe<DownstreamRouteFinder>())
 | 
			
		||||
                .BDDfy();
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
@@ -88,7 +85,7 @@ namespace Ocelot.UnitTests.DownstreamRouteFinder
 | 
			
		||||
 | 
			
		||||
            this.Given(_ => GivenTheReRoutes(reRoutes, spConfig))
 | 
			
		||||
                .When(_ => WhenIGet())
 | 
			
		||||
                .Then(_ => ThenTheResultShouldBe<Ocelot.DownstreamRouteFinder.Finder.DownstreamRouteFinder>())
 | 
			
		||||
                .Then(_ => ThenTheResultShouldBe<DownstreamRouteFinder>())
 | 
			
		||||
                .BDDfy();
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
@@ -100,7 +97,7 @@ namespace Ocelot.UnitTests.DownstreamRouteFinder
 | 
			
		||||
 | 
			
		||||
            this.Given(_ => GivenTheReRoutes(reRoutes, spConfig))
 | 
			
		||||
                .When(_ => WhenIGet())
 | 
			
		||||
                .Then(_ => ThenTheResultShouldBe<Ocelot.DownstreamRouteFinder.Finder.DownstreamRouteFinder>())
 | 
			
		||||
                .Then(_ => ThenTheResultShouldBe<DownstreamRouteFinder>())
 | 
			
		||||
                .BDDfy();
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
@@ -112,7 +109,7 @@ namespace Ocelot.UnitTests.DownstreamRouteFinder
 | 
			
		||||
 | 
			
		||||
            this.Given(_ => GivenTheReRoutes(reRoutes, spConfig))
 | 
			
		||||
                .When(_ => WhenIGet())
 | 
			
		||||
                .Then(_ => ThenTheResultShouldBe<Ocelot.DownstreamRouteFinder.Finder.DownstreamRouteCreator>())
 | 
			
		||||
                .Then(_ => ThenTheResultShouldBe<DownstreamRouteCreator>())
 | 
			
		||||
                .BDDfy();
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
@@ -127,7 +124,7 @@ namespace Ocelot.UnitTests.DownstreamRouteFinder
 | 
			
		||||
 | 
			
		||||
            this.Given(_ => GivenTheReRoutes(reRoutes, spConfig))
 | 
			
		||||
                .When(_ => WhenIGet())
 | 
			
		||||
                .Then(_ => ThenTheResultShouldBe<Ocelot.DownstreamRouteFinder.Finder.DownstreamRouteCreator>())
 | 
			
		||||
                .Then(_ => ThenTheResultShouldBe<DownstreamRouteCreator>())
 | 
			
		||||
                .BDDfy();
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user