diff --git a/test/Ocelot.AcceptanceTests/AggregateTests.cs b/test/Ocelot.AcceptanceTests/AggregateTests.cs index 2bd2f09f..8e2f0b81 100644 --- a/test/Ocelot.AcceptanceTests/AggregateTests.cs +++ b/test/Ocelot.AcceptanceTests/AggregateTests.cs @@ -30,7 +30,8 @@ namespace Ocelot.AcceptanceTests [Fact] public void should_fix_issue_597() - { + { + var port = RandomPortFinder.GetRandomPort(); var configuration = new FileConfiguration { ReRoutes = new List @@ -46,7 +47,7 @@ namespace Ocelot.AcceptanceTests new FileHostAndPort { Host = "localhost", - Port = 8571 + Port = port } }, Key = "key1" @@ -62,7 +63,7 @@ namespace Ocelot.AcceptanceTests new FileHostAndPort { Host = "localhost", - Port = 8571 + Port = port } }, Key = "key2" @@ -78,7 +79,7 @@ namespace Ocelot.AcceptanceTests new FileHostAndPort { Host = "localhost", - Port = 8571 + Port = port } }, Key = "key3" @@ -94,7 +95,7 @@ namespace Ocelot.AcceptanceTests new FileHostAndPort { Host = "localhost", - Port = 8571 + Port = port } }, Key = "key4" @@ -129,7 +130,7 @@ namespace Ocelot.AcceptanceTests var expected = "{\"key1\":some_data,\"key2\":some_data}"; - this.Given(x => x.GivenServiceIsRunning("http://localhost:8571", 200, "some_data")) + this.Given(x => x.GivenServiceIsRunning($"http://localhost:{port}", 200, "some_data")) .And(x => _steps.GivenThereIsAConfiguration(configuration)) .And(x => _steps.GivenOcelotIsRunning()) .When(x => _steps.WhenIGetUrlOnTheApiGateway("/EmpDetail/US/1")) @@ -140,7 +141,10 @@ namespace Ocelot.AcceptanceTests [Fact] public void should_return_response_200_with_advanced_aggregate_configs() - { + { + var port1 = RandomPortFinder.GetRandomPort(); + var port2 = RandomPortFinder.GetRandomPort(); + var port3 = RandomPortFinder.GetRandomPort(); var configuration = new FileConfiguration { ReRoutes = new List @@ -154,7 +158,7 @@ namespace Ocelot.AcceptanceTests new FileHostAndPort { Host = "localhost", - Port = 51889, + Port = port1, } }, UpstreamPathTemplate = "/Comments", @@ -170,7 +174,7 @@ namespace Ocelot.AcceptanceTests new FileHostAndPort { Host = "localhost", - Port = 54030, + Port = port2, } }, UpstreamPathTemplate = "/UserDetails", @@ -186,7 +190,7 @@ namespace Ocelot.AcceptanceTests new FileHostAndPort { Host = "localhost", - Port = 51887, + Port = port3, } }, UpstreamPathTemplate = "/PostDetails", @@ -221,9 +225,9 @@ namespace Ocelot.AcceptanceTests var expected = "{\"Comments\":" + commentsResponseContent + ",\"UserDetails\":" + userDetailsResponseContent + ",\"PostDetails\":" + postDetailsResponseContent + "}"; - this.Given(x => x.GivenServiceOneIsRunning("http://localhost:51889", "/", 200, commentsResponseContent)) - .Given(x => x.GivenServiceTwoIsRunning("http://localhost:54030", "/users/1", 200, userDetailsResponseContent)) - .Given(x => x.GivenServiceTwoIsRunning("http://localhost:51887", "/posts/2", 200, postDetailsResponseContent)) + this.Given(x => x.GivenServiceOneIsRunning($"http://localhost:{port1}", "/", 200, commentsResponseContent)) + .Given(x => x.GivenServiceTwoIsRunning($"http://localhost:{port2}", "/users/1", 200, userDetailsResponseContent)) + .Given(x => x.GivenServiceTwoIsRunning($"http://localhost:{port3}", "/posts/2", 200, postDetailsResponseContent)) .And(x => _steps.GivenThereIsAConfiguration(configuration)) .And(x => _steps.GivenOcelotIsRunning()) .When(x => _steps.WhenIGetUrlOnTheApiGateway("/")) @@ -234,7 +238,9 @@ namespace Ocelot.AcceptanceTests [Fact] public void should_return_response_200_with_simple_url_user_defined_aggregate() - { + { + var port1 = RandomPortFinder.GetRandomPort(); + var port2 = RandomPortFinder.GetRandomPort(); var configuration = new FileConfiguration { ReRoutes = new List @@ -248,7 +254,7 @@ namespace Ocelot.AcceptanceTests new FileHostAndPort { Host = "localhost", - Port = 51885, + Port = port1, } }, UpstreamPathTemplate = "/laura", @@ -264,7 +270,7 @@ namespace Ocelot.AcceptanceTests new FileHostAndPort { Host = "localhost", - Port = 51886, + Port = port2, } }, UpstreamPathTemplate = "/tom", @@ -290,8 +296,8 @@ namespace Ocelot.AcceptanceTests var expected = "Bye from Laura, Bye from Tom"; - this.Given(x => x.GivenServiceOneIsRunning("http://localhost:51885", "/", 200, "{Hello from Laura}")) - .Given(x => x.GivenServiceTwoIsRunning("http://localhost:51886", "/", 200, "{Hello from Tom}")) + this.Given(x => x.GivenServiceOneIsRunning($"http://localhost:{port1}", "/", 200, "{Hello from Laura}")) + .Given(x => x.GivenServiceTwoIsRunning($"http://localhost:{port2}", "/", 200, "{Hello from Tom}")) .And(x => _steps.GivenThereIsAConfiguration(configuration)) .And(x => _steps.GivenOcelotIsRunningWithSpecficAggregatorsRegisteredInDi()) .When(x => _steps.WhenIGetUrlOnTheApiGateway("/")) @@ -303,7 +309,9 @@ namespace Ocelot.AcceptanceTests [Fact] public void should_return_response_200_with_simple_url() - { + { + var port1 = RandomPortFinder.GetRandomPort(); + var port2 = RandomPortFinder.GetRandomPort(); var configuration = new FileConfiguration { ReRoutes = new List @@ -317,7 +325,7 @@ namespace Ocelot.AcceptanceTests new FileHostAndPort { Host = "localhost", - Port = 51875, + Port = port1, } }, UpstreamPathTemplate = "/laura", @@ -333,7 +341,7 @@ namespace Ocelot.AcceptanceTests new FileHostAndPort { Host = "localhost", - Port = 52476, + Port = port2, } }, UpstreamPathTemplate = "/tom", @@ -358,8 +366,8 @@ namespace Ocelot.AcceptanceTests var expected = "{\"Laura\":{Hello from Laura},\"Tom\":{Hello from Tom}}"; - this.Given(x => x.GivenServiceOneIsRunning("http://localhost:51875", "/", 200, "{Hello from Laura}")) - .Given(x => x.GivenServiceTwoIsRunning("http://localhost:52476", "/", 200, "{Hello from Tom}")) + this.Given(x => x.GivenServiceOneIsRunning($"http://localhost:{port1}", "/", 200, "{Hello from Laura}")) + .Given(x => x.GivenServiceTwoIsRunning($"http://localhost:{port2}", "/", 200, "{Hello from Tom}")) .And(x => _steps.GivenThereIsAConfiguration(configuration)) .And(x => _steps.GivenOcelotIsRunning()) .When(x => _steps.WhenIGetUrlOnTheApiGateway("/")) @@ -371,7 +379,9 @@ namespace Ocelot.AcceptanceTests [Fact] public void should_return_response_200_with_simple_url_one_service_404() - { + { + var port1 = RandomPortFinder.GetRandomPort(); + var port2 = RandomPortFinder.GetRandomPort(); var configuration = new FileConfiguration { ReRoutes = new List @@ -385,7 +395,7 @@ namespace Ocelot.AcceptanceTests new FileHostAndPort { Host = "localhost", - Port = 51881, + Port = port1, } }, UpstreamPathTemplate = "/laura", @@ -401,7 +411,7 @@ namespace Ocelot.AcceptanceTests new FileHostAndPort { Host = "localhost", - Port = 51889, + Port = port2, } }, UpstreamPathTemplate = "/tom", @@ -426,8 +436,8 @@ namespace Ocelot.AcceptanceTests var expected = "{\"Laura\":,\"Tom\":{Hello from Tom}}"; - this.Given(x => x.GivenServiceOneIsRunning("http://localhost:51881", "/", 404, "")) - .Given(x => x.GivenServiceTwoIsRunning("http://localhost:51889", "/", 200, "{Hello from Tom}")) + this.Given(x => x.GivenServiceOneIsRunning($"http://localhost:{port1}", "/", 404, "")) + .Given(x => x.GivenServiceTwoIsRunning($"http://localhost:{port2}", "/", 200, "{Hello from Tom}")) .And(x => _steps.GivenThereIsAConfiguration(configuration)) .And(x => _steps.GivenOcelotIsRunning()) .When(x => _steps.WhenIGetUrlOnTheApiGateway("/")) @@ -439,7 +449,9 @@ namespace Ocelot.AcceptanceTests [Fact] public void should_return_response_200_with_simple_url_both_service_404() - { + { + var port1 = RandomPortFinder.GetRandomPort(); + var port2 = RandomPortFinder.GetRandomPort(); var configuration = new FileConfiguration { ReRoutes = new List @@ -453,7 +465,7 @@ namespace Ocelot.AcceptanceTests new FileHostAndPort { Host = "localhost", - Port = 51883, + Port = port1, } }, UpstreamPathTemplate = "/laura", @@ -469,7 +481,7 @@ namespace Ocelot.AcceptanceTests new FileHostAndPort { Host = "localhost", - Port = 51884, + Port = port2, } }, UpstreamPathTemplate = "/tom", @@ -494,8 +506,8 @@ namespace Ocelot.AcceptanceTests var expected = "{\"Laura\":,\"Tom\":}"; - this.Given(x => x.GivenServiceOneIsRunning("http://localhost:51883", "/", 404, "")) - .Given(x => x.GivenServiceTwoIsRunning("http://localhost:51884", "/", 404, "")) + this.Given(x => x.GivenServiceOneIsRunning($"http://localhost:{port1}", "/", 404, "")) + .Given(x => x.GivenServiceTwoIsRunning($"http://localhost:{port2}", "/", 404, "")) .And(x => _steps.GivenThereIsAConfiguration(configuration)) .And(x => _steps.GivenOcelotIsRunning()) .When(x => _steps.WhenIGetUrlOnTheApiGateway("/")) @@ -507,7 +519,9 @@ namespace Ocelot.AcceptanceTests [Fact] public void should_be_thread_safe() - { + { + var port1 = RandomPortFinder.GetRandomPort(); + var port2 = RandomPortFinder.GetRandomPort(); var configuration = new FileConfiguration { ReRoutes = new List @@ -521,7 +535,7 @@ namespace Ocelot.AcceptanceTests new FileHostAndPort { Host = "localhost", - Port = 51878, + Port = port1, } }, UpstreamPathTemplate = "/laura", @@ -537,7 +551,7 @@ namespace Ocelot.AcceptanceTests new FileHostAndPort { Host = "localhost", - Port = 51880, + Port = port2, } }, UpstreamPathTemplate = "/tom", @@ -560,8 +574,8 @@ namespace Ocelot.AcceptanceTests } }; - this.Given(x => x.GivenServiceOneIsRunning("http://localhost:51878", "/", 200, "{Hello from Laura}")) - .Given(x => x.GivenServiceTwoIsRunning("http://localhost:51880", "/", 200, "{Hello from Tom}")) + this.Given(x => x.GivenServiceOneIsRunning($"http://localhost:{port1}", "/", 200, "{Hello from Laura}")) + .Given(x => x.GivenServiceTwoIsRunning($"http://localhost:{port2}", "/", 200, "{Hello from Tom}")) .And(x => _steps.GivenThereIsAConfiguration(configuration)) .And(x => _steps.GivenOcelotIsRunning()) .When(x => _steps.WhenIMakeLotsOfDifferentRequestsToTheApiGateway()) diff --git a/test/Ocelot.AcceptanceTests/AuthenticationTests.cs b/test/Ocelot.AcceptanceTests/AuthenticationTests.cs index 65d9a878..5f99c209 100644 --- a/test/Ocelot.AcceptanceTests/AuthenticationTests.cs +++ b/test/Ocelot.AcceptanceTests/AuthenticationTests.cs @@ -20,7 +20,7 @@ namespace Ocelot.AcceptanceTests { private readonly Steps _steps; private IWebHost _identityServerBuilder; - private string _identityServerRootUrl = "http://localhost:51888"; + private string _identityServerRootUrl; private string _downstreamServicePath = "/"; private string _downstreamServiceHost = "localhost"; private string _downstreamServiceScheme = "http"; @@ -31,7 +31,9 @@ namespace Ocelot.AcceptanceTests public AuthenticationTests() { _serviceHandler = new ServiceHandler(); - _steps = new Steps(); + _steps = new Steps(); + var identityServerPort = RandomPortFinder.GetRandomPort(); + _identityServerRootUrl = $"http://localhost:{identityServerPort}"; _options = o => { o.Authority = _identityServerRootUrl; @@ -45,7 +47,7 @@ namespace Ocelot.AcceptanceTests [Fact] public void should_return_401_using_identity_server_access_token() { - int port = 54329; + int port = RandomPortFinder.GetRandomPort(); var configuration = new FileConfiguration { @@ -86,7 +88,7 @@ namespace Ocelot.AcceptanceTests [Fact] public void should_return_response_200_using_identity_server() { - int port = 54099; + int port = RandomPortFinder.GetRandomPort(); var configuration = new FileConfiguration { @@ -129,7 +131,7 @@ namespace Ocelot.AcceptanceTests [Fact] public void should_return_response_401_using_identity_server_with_token_requested_for_other_api() { - int port = 54196; + int port = RandomPortFinder.GetRandomPort(); var configuration = new FileConfiguration { @@ -171,7 +173,7 @@ namespace Ocelot.AcceptanceTests [Fact] public void should_return_201_using_identity_server_access_token() { - int port = 52226; + int port = RandomPortFinder.GetRandomPort(); var configuration = new FileConfiguration { @@ -214,7 +216,7 @@ namespace Ocelot.AcceptanceTests [Fact] public void should_return_201_using_identity_server_reference_token() { - int port = 52222; + int port = RandomPortFinder.GetRandomPort(); var configuration = new FileConfiguration { diff --git a/test/Ocelot.AcceptanceTests/AuthorisationTests.cs b/test/Ocelot.AcceptanceTests/AuthorisationTests.cs index 6df6755c..fc9df72b 100644 --- a/test/Ocelot.AcceptanceTests/AuthorisationTests.cs +++ b/test/Ocelot.AcceptanceTests/AuthorisationTests.cs @@ -21,13 +21,15 @@ namespace Ocelot.AcceptanceTests private IWebHost _identityServerBuilder; private readonly Steps _steps; private readonly Action _options; - private string _identityServerRootUrl = "http://localhost:51888"; + private string _identityServerRootUrl; private readonly ServiceHandler _serviceHandler; public AuthorisationTests() { _serviceHandler = new ServiceHandler(); - _steps = new Steps(); + _steps = new Steps(); + var identityServerPort = RandomPortFinder.GetRandomPort(); + _identityServerRootUrl = $"http://localhost:{identityServerPort}"; _options = o => { o.Authority = _identityServerRootUrl; @@ -41,7 +43,7 @@ namespace Ocelot.AcceptanceTests [Fact] public void should_return_response_200_authorising_route() { - int port = 52875; + int port = RandomPortFinder.GetRandomPort(); var configuration = new FileConfiguration { @@ -86,9 +88,9 @@ namespace Ocelot.AcceptanceTests } }; - this.Given(x => x.GivenThereIsAnIdentityServerOn("http://localhost:51888", "api", AccessTokenType.Jwt)) + this.Given(x => x.GivenThereIsAnIdentityServerOn(_identityServerRootUrl, "api", AccessTokenType.Jwt)) .And(x => x.GivenThereIsAServiceRunningOn($"http://localhost:{port}", 200, "Hello from Laura")) - .And(x => _steps.GivenIHaveAToken("http://localhost:51888")) + .And(x => _steps.GivenIHaveAToken(_identityServerRootUrl)) .And(x => _steps.GivenThereIsAConfiguration(configuration)) .And(x => _steps.GivenOcelotIsRunning(_options, "Test")) .And(x => _steps.GivenIHaveAddedATokenToMyRequest()) @@ -101,7 +103,7 @@ namespace Ocelot.AcceptanceTests [Fact] public void should_return_response_403_authorising_route() { - int port = 59471; + int port = RandomPortFinder.GetRandomPort(); var configuration = new FileConfiguration { @@ -145,9 +147,9 @@ namespace Ocelot.AcceptanceTests } }; - this.Given(x => x.GivenThereIsAnIdentityServerOn("http://localhost:51888", "api", AccessTokenType.Jwt)) + this.Given(x => x.GivenThereIsAnIdentityServerOn(_identityServerRootUrl, "api", AccessTokenType.Jwt)) .And(x => x.GivenThereIsAServiceRunningOn($"http://localhost:{port}", 200, "Hello from Laura")) - .And(x => _steps.GivenIHaveAToken("http://localhost:51888")) + .And(x => _steps.GivenIHaveAToken(_identityServerRootUrl)) .And(x => _steps.GivenThereIsAConfiguration(configuration)) .And(x => _steps.GivenOcelotIsRunning(_options, "Test")) .And(x => _steps.GivenIHaveAddedATokenToMyRequest()) @@ -159,7 +161,7 @@ namespace Ocelot.AcceptanceTests [Fact] public void should_return_response_200_using_identity_server_with_allowed_scope() { - int port = 63471; + int port = RandomPortFinder.GetRandomPort(); var configuration = new FileConfiguration { @@ -188,9 +190,9 @@ namespace Ocelot.AcceptanceTests } }; - this.Given(x => x.GivenThereIsAnIdentityServerOn("http://localhost:51888", "api", AccessTokenType.Jwt)) + this.Given(x => x.GivenThereIsAnIdentityServerOn(_identityServerRootUrl, "api", AccessTokenType.Jwt)) .And(x => x.GivenThereIsAServiceRunningOn($"http://localhost:{port}", 200, "Hello from Laura")) - .And(x => _steps.GivenIHaveATokenForApiReadOnlyScope("http://localhost:51888")) + .And(x => _steps.GivenIHaveATokenForApiReadOnlyScope(_identityServerRootUrl)) .And(x => _steps.GivenThereIsAConfiguration(configuration)) .And(x => _steps.GivenOcelotIsRunning(_options, "Test")) .And(x => _steps.GivenIHaveAddedATokenToMyRequest()) @@ -202,7 +204,7 @@ namespace Ocelot.AcceptanceTests [Fact] public void should_return_response_403_using_identity_server_with_scope_not_allowed() { - int port = 60571; + int port = RandomPortFinder.GetRandomPort(); var configuration = new FileConfiguration { @@ -231,9 +233,9 @@ namespace Ocelot.AcceptanceTests } }; - this.Given(x => x.GivenThereIsAnIdentityServerOn("http://localhost:51888", "api", AccessTokenType.Jwt)) + this.Given(x => x.GivenThereIsAnIdentityServerOn(_identityServerRootUrl, "api", AccessTokenType.Jwt)) .And(x => x.GivenThereIsAServiceRunningOn($"http://localhost:{port}", 200, "Hello from Laura")) - .And(x => _steps.GivenIHaveATokenForApiReadOnlyScope("http://localhost:51888")) + .And(x => _steps.GivenIHaveATokenForApiReadOnlyScope(_identityServerRootUrl)) .And(x => _steps.GivenThereIsAConfiguration(configuration)) .And(x => _steps.GivenOcelotIsRunning(_options, "Test")) .And(x => _steps.GivenIHaveAddedATokenToMyRequest()) @@ -245,7 +247,7 @@ namespace Ocelot.AcceptanceTests [Fact] public void should_fix_issue_240() { - int port = 61071; + int port = RandomPortFinder.GetRandomPort(); var configuration = new FileConfiguration { @@ -292,9 +294,9 @@ namespace Ocelot.AcceptanceTests } }; - this.Given(x => x.GivenThereIsAnIdentityServerOn("http://localhost:51888", "api", AccessTokenType.Jwt, users)) + this.Given(x => x.GivenThereIsAnIdentityServerOn(_identityServerRootUrl, "api", AccessTokenType.Jwt, users)) .And(x => x.GivenThereIsAServiceRunningOn($"http://localhost:{port}", 200, "Hello from Laura")) - .And(x => _steps.GivenIHaveAToken("http://localhost:51888")) + .And(x => _steps.GivenIHaveAToken(_identityServerRootUrl)) .And(x => _steps.GivenThereIsAConfiguration(configuration)) .And(x => _steps.GivenOcelotIsRunning(_options, "Test")) .And(x => _steps.GivenIHaveAddedATokenToMyRequest()) diff --git a/test/Ocelot.AcceptanceTests/ButterflyTracingTests.cs b/test/Ocelot.AcceptanceTests/ButterflyTracingTests.cs index 1b587cb8..ec102a8d 100644 --- a/test/Ocelot.AcceptanceTests/ButterflyTracingTests.cs +++ b/test/Ocelot.AcceptanceTests/ButterflyTracingTests.cs @@ -35,6 +35,8 @@ namespace Ocelot.AcceptanceTests [Fact] public void should_forward_tracing_information_from_ocelot_and_downstream_services() { + int port1 = RandomPortFinder.GetRandomPort(); + int port2 = RandomPortFinder.GetRandomPort(); var configuration = new FileConfiguration { ReRoutes = new List @@ -48,7 +50,7 @@ namespace Ocelot.AcceptanceTests new FileHostAndPort { Host = "localhost", - Port = 51887, + Port = port1, } }, UpstreamPathTemplate = "/api001/values", @@ -67,7 +69,7 @@ namespace Ocelot.AcceptanceTests new FileHostAndPort { Host = "localhost", - Port = 51388, + Port = port2, } }, UpstreamPathTemplate = "/api002/values", @@ -79,12 +81,13 @@ namespace Ocelot.AcceptanceTests } } }; - - var butterflyUrl = "http://localhost:9618"; + + var butterflyPort = RandomPortFinder.GetRandomPort(); + var butterflyUrl = $"http://localhost:{butterflyPort}"; this.Given(x => GivenFakeButterfly(butterflyUrl)) - .And(x => GivenServiceOneIsRunning("http://localhost:51887", "/api/values", 200, "Hello from Laura", butterflyUrl)) - .And(x => GivenServiceTwoIsRunning("http://localhost:51388", "/api/values", 200, "Hello from Tom", butterflyUrl)) + .And(x => GivenServiceOneIsRunning($"http://localhost:{port1}", "/api/values", 200, "Hello from Laura", butterflyUrl)) + .And(x => GivenServiceTwoIsRunning($"http://localhost:{port2}", "/api/values", 200, "Hello from Tom", butterflyUrl)) .And(x => _steps.GivenThereIsAConfiguration(configuration)) .And(x => _steps.GivenOcelotIsRunningUsingButterfly(butterflyUrl)) .When(x => _steps.WhenIGetUrlOnTheApiGateway("/api001/values")) @@ -105,6 +108,7 @@ namespace Ocelot.AcceptanceTests [Fact] public void should_return_tracing_header() { + int port = RandomPortFinder.GetRandomPort(); var configuration = new FileConfiguration { ReRoutes = new List @@ -118,7 +122,7 @@ namespace Ocelot.AcceptanceTests new FileHostAndPort { Host = "localhost", - Port = 51387, + Port = port, } }, UpstreamPathTemplate = "/api001/values", @@ -136,10 +140,11 @@ namespace Ocelot.AcceptanceTests } }; - var butterflyUrl = "http://localhost:9618"; + var butterflyPort = RandomPortFinder.GetRandomPort(); + var butterflyUrl = $"http://localhost:{butterflyPort}"; this.Given(x => GivenFakeButterfly(butterflyUrl)) - .And(x => GivenServiceOneIsRunning("http://localhost:51387", "/api/values", 200, "Hello from Laura", butterflyUrl)) + .And(x => GivenServiceOneIsRunning($"http://localhost:{port}", "/api/values", 200, "Hello from Laura", butterflyUrl)) .And(x => _steps.GivenThereIsAConfiguration(configuration)) .And(x => _steps.GivenOcelotIsRunningUsingButterfly(butterflyUrl)) .When(x => _steps.WhenIGetUrlOnTheApiGateway("/api001/values")) diff --git a/test/Ocelot.AcceptanceTests/CachingTests.cs b/test/Ocelot.AcceptanceTests/CachingTests.cs index d8b1a05b..d005d2ae 100644 --- a/test/Ocelot.AcceptanceTests/CachingTests.cs +++ b/test/Ocelot.AcceptanceTests/CachingTests.cs @@ -22,7 +22,9 @@ namespace Ocelot.AcceptanceTests [Fact] public void should_return_cached_response() - { + { + int port = RandomPortFinder.GetRandomPort(); + var configuration = new FileConfiguration { ReRoutes = new List @@ -35,7 +37,7 @@ namespace Ocelot.AcceptanceTests new FileHostAndPort { Host = "localhost", - Port = 57899, + Port = port, } }, DownstreamScheme = "http", @@ -49,13 +51,13 @@ namespace Ocelot.AcceptanceTests } }; - this.Given(x => x.GivenThereIsAServiceRunningOn("http://localhost:57899", 200, "Hello from Laura", null, null)) + this.Given(x => x.GivenThereIsAServiceRunningOn($"http://localhost:{port}", 200, "Hello from Laura", null, null)) .And(x => _steps.GivenThereIsAConfiguration(configuration)) .And(x => _steps.GivenOcelotIsRunning()) .When(x => _steps.WhenIGetUrlOnTheApiGateway("/")) .Then(x => _steps.ThenTheStatusCodeShouldBe(HttpStatusCode.OK)) .And(x => _steps.ThenTheResponseBodyShouldBe("Hello from Laura")) - .Given(x => x.GivenTheServiceNowReturns("http://localhost:57899", 200, "Hello from Tom")) + .Given(x => x.GivenTheServiceNowReturns($"http://localhost:{port}", 200, "Hello from Tom")) .When(x => _steps.WhenIGetUrlOnTheApiGateway("/")) .Then(x => _steps.ThenTheStatusCodeShouldBe(HttpStatusCode.OK)) .And(x => _steps.ThenTheResponseBodyShouldBe("Hello from Laura")) @@ -65,7 +67,9 @@ namespace Ocelot.AcceptanceTests [Fact] public void should_return_cached_response_with_expires_header() - { + { + int port = RandomPortFinder.GetRandomPort(); + var configuration = new FileConfiguration { ReRoutes = new List @@ -78,7 +82,7 @@ namespace Ocelot.AcceptanceTests new FileHostAndPort { Host = "localhost", - Port = 52839, + Port = port, } }, DownstreamScheme = "http", @@ -92,13 +96,13 @@ namespace Ocelot.AcceptanceTests } }; - this.Given(x => x.GivenThereIsAServiceRunningOn("http://localhost:52839", 200, "Hello from Laura", "Expires", "-1")) + this.Given(x => x.GivenThereIsAServiceRunningOn($"http://localhost:{port}", 200, "Hello from Laura", "Expires", "-1")) .And(x => _steps.GivenThereIsAConfiguration(configuration)) .And(x => _steps.GivenOcelotIsRunning()) .When(x => _steps.WhenIGetUrlOnTheApiGateway("/")) .Then(x => _steps.ThenTheStatusCodeShouldBe(HttpStatusCode.OK)) .And(x => _steps.ThenTheResponseBodyShouldBe("Hello from Laura")) - .Given(x => x.GivenTheServiceNowReturns("http://localhost:52839", 200, "Hello from Tom")) + .Given(x => x.GivenTheServiceNowReturns($"http://localhost:{port}", 200, "Hello from Tom")) .When(x => _steps.WhenIGetUrlOnTheApiGateway("/")) .Then(x => _steps.ThenTheStatusCodeShouldBe(HttpStatusCode.OK)) .And(x => _steps.ThenTheResponseBodyShouldBe("Hello from Laura")) @@ -109,7 +113,9 @@ namespace Ocelot.AcceptanceTests [Fact] public void should_return_cached_response_when_using_jsonserialized_cache() - { + { + int port = RandomPortFinder.GetRandomPort(); + var configuration = new FileConfiguration { ReRoutes = new List @@ -122,7 +128,7 @@ namespace Ocelot.AcceptanceTests new FileHostAndPort { Host = "localhost", - Port = 57879, + Port = port, } }, DownstreamScheme = "http", @@ -136,13 +142,13 @@ namespace Ocelot.AcceptanceTests } }; - this.Given(x => x.GivenThereIsAServiceRunningOn("http://localhost:57879", 200, "Hello from Laura", null, null)) + this.Given(x => x.GivenThereIsAServiceRunningOn($"http://localhost:{port}", 200, "Hello from Laura", null, null)) .And(x => _steps.GivenThereIsAConfiguration(configuration)) .And(x => _steps.GivenOcelotIsRunningUsingJsonSerializedCache()) .When(x => _steps.WhenIGetUrlOnTheApiGateway("/")) .Then(x => _steps.ThenTheStatusCodeShouldBe(HttpStatusCode.OK)) .And(x => _steps.ThenTheResponseBodyShouldBe("Hello from Laura")) - .Given(x => x.GivenTheServiceNowReturns("http://localhost:57879", 200, "Hello from Tom")) + .Given(x => x.GivenTheServiceNowReturns($"http://localhost:{port}", 200, "Hello from Tom")) .When(x => _steps.WhenIGetUrlOnTheApiGateway("/")) .Then(x => _steps.ThenTheStatusCodeShouldBe(HttpStatusCode.OK)) .And(x => _steps.ThenTheResponseBodyShouldBe("Hello from Laura")) @@ -151,7 +157,9 @@ namespace Ocelot.AcceptanceTests [Fact] public void should_not_return_cached_response_as_ttl_expires() - { + { + int port = RandomPortFinder.GetRandomPort(); + var configuration = new FileConfiguration { ReRoutes = new List @@ -164,7 +172,7 @@ namespace Ocelot.AcceptanceTests new FileHostAndPort { Host = "localhost", - Port = 57873, + Port = port, } }, DownstreamScheme = "http", @@ -178,13 +186,13 @@ namespace Ocelot.AcceptanceTests } }; - this.Given(x => x.GivenThereIsAServiceRunningOn("http://localhost:57873", 200, "Hello from Laura", null, null)) + this.Given(x => x.GivenThereIsAServiceRunningOn($"http://localhost:{port}", 200, "Hello from Laura", null, null)) .And(x => _steps.GivenThereIsAConfiguration(configuration)) .And(x => _steps.GivenOcelotIsRunning()) .When(x => _steps.WhenIGetUrlOnTheApiGateway("/")) .Then(x => _steps.ThenTheStatusCodeShouldBe(HttpStatusCode.OK)) .And(x => _steps.ThenTheResponseBodyShouldBe("Hello from Laura")) - .Given(x => x.GivenTheServiceNowReturns("http://localhost:57873", 200, "Hello from Tom")) + .Given(x => x.GivenTheServiceNowReturns($"http://localhost:{port}", 200, "Hello from Tom")) .And(x => x.GivenTheCacheExpires()) .When(x => _steps.WhenIGetUrlOnTheApiGateway("/")) .Then(x => _steps.ThenTheStatusCodeShouldBe(HttpStatusCode.OK)) diff --git a/test/Ocelot.AcceptanceTests/CaseSensitiveRoutingTests.cs b/test/Ocelot.AcceptanceTests/CaseSensitiveRoutingTests.cs index 405a7c8e..c56b7d42 100644 --- a/test/Ocelot.AcceptanceTests/CaseSensitiveRoutingTests.cs +++ b/test/Ocelot.AcceptanceTests/CaseSensitiveRoutingTests.cs @@ -21,7 +21,9 @@ namespace Ocelot.AcceptanceTests [Fact] public void should_return_response_200_when_global_ignore_case_sensitivity_set() - { + { + int port = RandomPortFinder.GetRandomPort(); + var configuration = new FileConfiguration { ReRoutes = new List @@ -34,7 +36,7 @@ namespace Ocelot.AcceptanceTests new FileHostAndPort { Host = "localhost", - Port = 51877, + Port = port, } }, DownstreamScheme = "http", @@ -44,7 +46,7 @@ namespace Ocelot.AcceptanceTests } }; - this.Given(x => x.GivenThereIsAServiceRunningOn("http://localhost:51877", "/api/products/1", 200, "Some Product")) + this.Given(x => x.GivenThereIsAServiceRunningOn($"http://localhost:{port}", "/api/products/1", 200, "Some Product")) .And(x => _steps.GivenThereIsAConfiguration(configuration)) .And(x => _steps.GivenOcelotIsRunning()) .When(x => _steps.WhenIGetUrlOnTheApiGateway("/PRODUCTS/1")) @@ -54,7 +56,9 @@ namespace Ocelot.AcceptanceTests [Fact] public void should_return_response_200_when_reroute_ignore_case_sensitivity_set() - { + { + int port = RandomPortFinder.GetRandomPort(); + var configuration = new FileConfiguration { ReRoutes = new List @@ -67,7 +71,7 @@ namespace Ocelot.AcceptanceTests new FileHostAndPort { Host = "localhost", - Port = 51877, + Port = port, } }, DownstreamScheme = "http", @@ -78,7 +82,7 @@ namespace Ocelot.AcceptanceTests } }; - this.Given(x => x.GivenThereIsAServiceRunningOn("http://localhost:51877", "/api/products/1", 200, "Some Product")) + this.Given(x => x.GivenThereIsAServiceRunningOn($"http://localhost:{port}", "/api/products/1", 200, "Some Product")) .And(x => _steps.GivenThereIsAConfiguration(configuration)) .And(x => _steps.GivenOcelotIsRunning()) .When(x => _steps.WhenIGetUrlOnTheApiGateway("/PRODUCTS/1")) @@ -88,7 +92,9 @@ namespace Ocelot.AcceptanceTests [Fact] public void should_return_response_404_when_reroute_respect_case_sensitivity_set() - { + { + int port = RandomPortFinder.GetRandomPort(); + var configuration = new FileConfiguration { ReRoutes = new List @@ -101,7 +107,7 @@ namespace Ocelot.AcceptanceTests new FileHostAndPort { Host = "localhost", - Port = 51877, + Port = port, } }, DownstreamScheme = "http", @@ -112,7 +118,7 @@ namespace Ocelot.AcceptanceTests } }; - this.Given(x => x.GivenThereIsAServiceRunningOn("http://localhost:51877", "/api/products/1", 200, "Some Product")) + this.Given(x => x.GivenThereIsAServiceRunningOn($"http://localhost:{port}", "/api/products/1", 200, "Some Product")) .And(x => _steps.GivenThereIsAConfiguration(configuration)) .And(x => _steps.GivenOcelotIsRunning()) .When(x => _steps.WhenIGetUrlOnTheApiGateway("/PRODUCTS/1")) @@ -122,7 +128,9 @@ namespace Ocelot.AcceptanceTests [Fact] public void should_return_response_200_when_reroute_respect_case_sensitivity_set() - { + { + int port = RandomPortFinder.GetRandomPort(); + var configuration = new FileConfiguration { ReRoutes = new List @@ -135,7 +143,7 @@ namespace Ocelot.AcceptanceTests new FileHostAndPort { Host = "localhost", - Port = 51877, + Port = port, } }, DownstreamScheme = "http", @@ -146,7 +154,7 @@ namespace Ocelot.AcceptanceTests } }; - this.Given(x => x.GivenThereIsAServiceRunningOn("http://localhost:51877", "/api/products/1", 200, "Some Product")) + this.Given(x => x.GivenThereIsAServiceRunningOn($"http://localhost:{port}", "/api/products/1", 200, "Some Product")) .And(x => _steps.GivenThereIsAConfiguration(configuration)) .And(x => _steps.GivenOcelotIsRunning()) .When(x => _steps.WhenIGetUrlOnTheApiGateway("/PRODUCTS/1")) @@ -156,7 +164,9 @@ namespace Ocelot.AcceptanceTests [Fact] public void should_return_response_404_when_global_respect_case_sensitivity_set() - { + { + int port = RandomPortFinder.GetRandomPort(); + var configuration = new FileConfiguration { ReRoutes = new List @@ -169,7 +179,7 @@ namespace Ocelot.AcceptanceTests new FileHostAndPort { Host = "localhost", - Port = 51877, + Port = port, } }, DownstreamScheme = "http", @@ -180,7 +190,7 @@ namespace Ocelot.AcceptanceTests } }; - this.Given(x => x.GivenThereIsAServiceRunningOn("http://localhost:51877", "/api/products/1", 200, "Some Product")) + this.Given(x => x.GivenThereIsAServiceRunningOn($"http://localhost:{port}", "/api/products/1", 200, "Some Product")) .And(x => _steps.GivenThereIsAConfiguration(configuration)) .And(x => _steps.GivenOcelotIsRunning()) .When(x => _steps.WhenIGetUrlOnTheApiGateway("/PRODUCTS/1")) @@ -190,7 +200,9 @@ namespace Ocelot.AcceptanceTests [Fact] public void should_return_response_200_when_global_respect_case_sensitivity_set() - { + { + int port = RandomPortFinder.GetRandomPort(); + var configuration = new FileConfiguration { ReRoutes = new List @@ -203,7 +215,7 @@ namespace Ocelot.AcceptanceTests new FileHostAndPort { Host = "localhost", - Port = 51877, + Port = port, } }, DownstreamScheme = "http", @@ -214,7 +226,7 @@ namespace Ocelot.AcceptanceTests } }; - this.Given(x => x.GivenThereIsAServiceRunningOn("http://localhost:51877", "/api/products/1", 200, "Some Product")) + this.Given(x => x.GivenThereIsAServiceRunningOn($"http://localhost:{port}", "/api/products/1", 200, "Some Product")) .And(x => _steps.GivenThereIsAConfiguration(configuration)) .And(x => _steps.GivenOcelotIsRunning()) .When(x => _steps.WhenIGetUrlOnTheApiGateway("/PRODUCTS/1")) diff --git a/test/Ocelot.AcceptanceTests/ClaimsToDownstreamPathTests.cs b/test/Ocelot.AcceptanceTests/ClaimsToDownstreamPathTests.cs index 5e3f667f..6d22205c 100644 --- a/test/Ocelot.AcceptanceTests/ClaimsToDownstreamPathTests.cs +++ b/test/Ocelot.AcceptanceTests/ClaimsToDownstreamPathTests.cs @@ -23,11 +23,13 @@ namespace Ocelot.AcceptanceTests private IWebHost _identityServerBuilder; private readonly Steps _steps; private Action _options; - private string _identityServerRootUrl = "http://localhost:57888"; + private string _identityServerRootUrl; private string _downstreamFinalPath; public ClaimsToDownstreamPathTests() { + var identityServerPort = RandomPortFinder.GetRandomPort(); + _identityServerRootUrl = $"http://localhost:{identityServerPort}"; _steps = new Steps(); _options = o => { @@ -49,6 +51,8 @@ namespace Ocelot.AcceptanceTests SubjectId = "registered|1231231", }; + int port = RandomPortFinder.GetRandomPort(); + var configuration = new FileConfiguration { ReRoutes = new List @@ -61,7 +65,7 @@ namespace Ocelot.AcceptanceTests new FileHostAndPort { Host = "localhost", - Port = 57876, + Port = port, }, }, DownstreamScheme = "http", @@ -83,9 +87,9 @@ namespace Ocelot.AcceptanceTests }, }; - this.Given(x => x.GivenThereIsAnIdentityServerOn("http://localhost:57888", "api", AccessTokenType.Jwt, user)) - .And(x => x.GivenThereIsAServiceRunningOn("http://localhost:57876", 200)) - .And(x => _steps.GivenIHaveAToken("http://localhost:57888")) + this.Given(x => x.GivenThereIsAnIdentityServerOn(_identityServerRootUrl, "api", AccessTokenType.Jwt, user)) + .And(x => x.GivenThereIsAServiceRunningOn($"http://localhost:{port}", 200)) + .And(x => _steps.GivenIHaveAToken(_identityServerRootUrl)) .And(x => _steps.GivenThereIsAConfiguration(configuration)) .And(x => _steps.GivenOcelotIsRunning(_options, "Test")) .And(x => _steps.GivenIHaveAddedATokenToMyRequest()) diff --git a/test/Ocelot.AcceptanceTests/ClaimsToHeadersForwardingTests.cs b/test/Ocelot.AcceptanceTests/ClaimsToHeadersForwardingTests.cs index 5f16c96f..63f79e14 100644 --- a/test/Ocelot.AcceptanceTests/ClaimsToHeadersForwardingTests.cs +++ b/test/Ocelot.AcceptanceTests/ClaimsToHeadersForwardingTests.cs @@ -25,13 +25,15 @@ namespace Ocelot.AcceptanceTests private IWebHost _identityServerBuilder; private readonly Steps _steps; private Action _options; - private string _identityServerRootUrl = "http://localhost:52888"; + private string _identityServerRootUrl; private readonly ServiceHandler _serviceHandler; public ClaimsToHeadersForwardingTests() { _serviceHandler = new ServiceHandler(); - _steps = new Steps(); + _steps = new Steps(); + var identityServerPort = RandomPortFinder.GetRandomPort(); + _identityServerRootUrl = $"http://localhost:{identityServerPort}"; _options = o => { o.Authority = _identityServerRootUrl; @@ -57,6 +59,8 @@ namespace Ocelot.AcceptanceTests } }; + int port = RandomPortFinder.GetRandomPort(); + var configuration = new FileConfiguration { ReRoutes = new List @@ -69,7 +73,7 @@ namespace Ocelot.AcceptanceTests new FileHostAndPort { Host = "localhost", - Port = 52876, + Port = port, } }, DownstreamScheme = "http", @@ -94,9 +98,9 @@ namespace Ocelot.AcceptanceTests } }; - this.Given(x => x.GivenThereIsAnIdentityServerOn("http://localhost:52888", "api", AccessTokenType.Jwt, user)) - .And(x => x.GivenThereIsAServiceRunningOn("http://localhost:52876", 200)) - .And(x => _steps.GivenIHaveAToken("http://localhost:52888")) + this.Given(x => x.GivenThereIsAnIdentityServerOn(_identityServerRootUrl, "api", AccessTokenType.Jwt, user)) + .And(x => x.GivenThereIsAServiceRunningOn($"http://localhost:{port}", 200)) + .And(x => _steps.GivenIHaveAToken(_identityServerRootUrl)) .And(x => _steps.GivenThereIsAConfiguration(configuration)) .And(x => _steps.GivenOcelotIsRunning(_options, "Test")) .And(x => _steps.GivenIHaveAddedATokenToMyRequest()) diff --git a/test/Ocelot.AcceptanceTests/ClaimsToQueryStringForwardingTests.cs b/test/Ocelot.AcceptanceTests/ClaimsToQueryStringForwardingTests.cs index ad077eb7..7173a6f3 100644 --- a/test/Ocelot.AcceptanceTests/ClaimsToQueryStringForwardingTests.cs +++ b/test/Ocelot.AcceptanceTests/ClaimsToQueryStringForwardingTests.cs @@ -25,12 +25,14 @@ namespace Ocelot.AcceptanceTests private IWebHost _identityServerBuilder; private readonly Steps _steps; private Action _options; - private string _identityServerRootUrl = "http://localhost:57888"; + private string _identityServerRootUrl; private string _downstreamQueryString; public ClaimsToQueryStringForwardingTests() { - _steps = new Steps(); + _steps = new Steps(); + var identityServerPort = RandomPortFinder.GetRandomPort(); + _identityServerRootUrl = $"http://localhost:{identityServerPort}"; _options = o => { o.Authority = _identityServerRootUrl; @@ -56,6 +58,8 @@ namespace Ocelot.AcceptanceTests } }; + int port = RandomPortFinder.GetRandomPort(); + var configuration = new FileConfiguration { ReRoutes = new List @@ -68,7 +72,7 @@ namespace Ocelot.AcceptanceTests new FileHostAndPort { Host = "localhost", - Port = 57876, + Port = port, } }, DownstreamScheme = "http", @@ -93,9 +97,9 @@ namespace Ocelot.AcceptanceTests } }; - this.Given(x => x.GivenThereIsAnIdentityServerOn("http://localhost:57888", "api", AccessTokenType.Jwt, user)) - .And(x => x.GivenThereIsAServiceRunningOn("http://localhost:57876", 200)) - .And(x => _steps.GivenIHaveAToken("http://localhost:57888")) + this.Given(x => x.GivenThereIsAnIdentityServerOn(_identityServerRootUrl, "api", AccessTokenType.Jwt, user)) + .And(x => x.GivenThereIsAServiceRunningOn($"http://localhost:{port}", 200)) + .And(x => _steps.GivenIHaveAToken(_identityServerRootUrl)) .And(x => _steps.GivenThereIsAConfiguration(configuration)) .And(x => _steps.GivenOcelotIsRunning(_options, "Test")) .And(x => _steps.GivenIHaveAddedATokenToMyRequest()) @@ -120,6 +124,8 @@ namespace Ocelot.AcceptanceTests } }; + int port = RandomPortFinder.GetRandomPort(); + var configuration = new FileConfiguration { ReRoutes = new List @@ -132,7 +138,7 @@ namespace Ocelot.AcceptanceTests new FileHostAndPort { Host = "localhost", - Port = 57876, + Port = port, } }, DownstreamScheme = "http", @@ -157,9 +163,9 @@ namespace Ocelot.AcceptanceTests } }; - this.Given(x => x.GivenThereIsAnIdentityServerOn("http://localhost:57888", "api", AccessTokenType.Jwt, user)) - .And(x => x.GivenThereIsAServiceRunningOn("http://localhost:57876", 200)) - .And(x => _steps.GivenIHaveAToken("http://localhost:57888")) + this.Given(x => x.GivenThereIsAnIdentityServerOn(_identityServerRootUrl, "api", AccessTokenType.Jwt, user)) + .And(x => x.GivenThereIsAServiceRunningOn($"http://localhost:{port}", 200)) + .And(x => _steps.GivenIHaveAToken(_identityServerRootUrl)) .And(x => _steps.GivenThereIsAConfiguration(configuration)) .And(x => _steps.GivenOcelotIsRunning(_options, "Test")) .And(x => _steps.GivenIHaveAddedATokenToMyRequest()) diff --git a/test/Ocelot.AcceptanceTests/ClientRateLimitTests.cs b/test/Ocelot.AcceptanceTests/ClientRateLimitTests.cs index f598d4ad..c9f556e5 100644 --- a/test/Ocelot.AcceptanceTests/ClientRateLimitTests.cs +++ b/test/Ocelot.AcceptanceTests/ClientRateLimitTests.cs @@ -23,6 +23,8 @@ [Fact] public void should_call_withratelimiting() { + int port = RandomPortFinder.GetRandomPort(); + var configuration = new FileConfiguration { ReRoutes = new List @@ -35,7 +37,7 @@ new FileHostAndPort { Host = "localhost", - Port = 51876, + Port = port, } }, DownstreamScheme = "http", @@ -66,7 +68,7 @@ } }; - this.Given(x => x.GivenThereIsAServiceRunningOn("http://localhost:51876", "/api/ClientRateLimit")) + this.Given(x => x.GivenThereIsAServiceRunningOn($"http://localhost:{port}", "/api/ClientRateLimit")) .And(x => _steps.GivenThereIsAConfiguration(configuration)) .And(x => _steps.GivenOcelotIsRunning()) .When(x => _steps.WhenIGetUrlOnTheApiGatewayMultipleTimesForRateLimit("/api/ClientRateLimit", 1)) @@ -81,6 +83,8 @@ [Fact] public void should_wait_for_period_timespan_to_elapse_before_making_next_request() { + int port = RandomPortFinder.GetRandomPort(); + var configuration = new FileConfiguration { ReRoutes = new List @@ -93,7 +97,7 @@ new FileHostAndPort { Host = "localhost", - Port = 51926, + Port = port, } }, DownstreamScheme = "http", @@ -125,7 +129,7 @@ } }; - this.Given(x => x.GivenThereIsAServiceRunningOn("http://localhost:51926", "/api/ClientRateLimit")) + this.Given(x => x.GivenThereIsAServiceRunningOn($"http://localhost:{port}", "/api/ClientRateLimit")) .And(x => _steps.GivenThereIsAConfiguration(configuration)) .And(x => _steps.GivenOcelotIsRunning()) .When(x => _steps.WhenIGetUrlOnTheApiGatewayMultipleTimesForRateLimit("/api/ClientRateLimit", 1)) @@ -146,7 +150,7 @@ [Fact] public void should_call_middleware_withWhitelistClient() { - int port = 61876; + int port = RandomPortFinder.GetRandomPort(); var configuration = new FileConfiguration { diff --git a/test/Ocelot.AcceptanceTests/ConfigurationInConsulTests.cs b/test/Ocelot.AcceptanceTests/ConfigurationInConsulTests.cs index e72aab33..4d806b05 100644 --- a/test/Ocelot.AcceptanceTests/ConfigurationInConsulTests.cs +++ b/test/Ocelot.AcceptanceTests/ConfigurationInConsulTests.cs @@ -32,6 +32,9 @@ namespace Ocelot.AcceptanceTests [Fact] public void should_return_response_200_with_simple_url_when_using_jsonserialized_cache() { + int consulPort = RandomPortFinder.GetRandomPort(); + int servicePort = RandomPortFinder.GetRandomPort(); + var configuration = new FileConfiguration { ReRoutes = new List @@ -45,7 +48,7 @@ namespace Ocelot.AcceptanceTests new FileHostAndPort { Host = "localhost", - Port = 51779, + Port = servicePort, } }, UpstreamPathTemplate = "/", @@ -57,15 +60,15 @@ namespace Ocelot.AcceptanceTests ServiceDiscoveryProvider = new FileServiceDiscoveryProvider() { Host = "localhost", - Port = 9502 + Port = consulPort } } }; - var fakeConsulServiceDiscoveryUrl = "http://localhost:9502"; + var fakeConsulServiceDiscoveryUrl = $"http://localhost:{consulPort}"; this.Given(x => GivenThereIsAFakeConsulServiceDiscoveryProvider(fakeConsulServiceDiscoveryUrl, "")) - .And(x => x.GivenThereIsAServiceRunningOn("http://localhost:51779", "", 200, "Hello from Laura")) + .And(x => x.GivenThereIsAServiceRunningOn($"http://localhost:{servicePort}", "", 200, "Hello from Laura")) .And(x => _steps.GivenThereIsAConfiguration(configuration)) .And(x => _steps.GivenOcelotIsRunningUsingConsulToStoreConfigAndJsonSerializedCache()) .When(x => _steps.WhenIGetUrlOnTheApiGateway("/")) diff --git a/test/Ocelot.AcceptanceTests/ConsulConfigurationInConsulTests.cs b/test/Ocelot.AcceptanceTests/ConsulConfigurationInConsulTests.cs index 976bd909..f9774565 100644 --- a/test/Ocelot.AcceptanceTests/ConsulConfigurationInConsulTests.cs +++ b/test/Ocelot.AcceptanceTests/ConsulConfigurationInConsulTests.cs @@ -34,6 +34,9 @@ [Fact] public void should_return_response_200_with_simple_url() { + int consulPort = RandomPortFinder.GetRandomPort(); + int servicePort = RandomPortFinder.GetRandomPort(); + var configuration = new FileConfiguration { ReRoutes = new List @@ -47,7 +50,7 @@ new FileHostAndPort { Host = "localhost", - Port = 51779, + Port = servicePort, } }, UpstreamPathTemplate = "/", @@ -59,15 +62,15 @@ ServiceDiscoveryProvider = new FileServiceDiscoveryProvider() { Host = "localhost", - Port = 9500 + Port = consulPort } } }; - var fakeConsulServiceDiscoveryUrl = "http://localhost:9500"; + var fakeConsulServiceDiscoveryUrl = $"http://localhost:{consulPort}"; this.Given(x => GivenThereIsAFakeConsulServiceDiscoveryProvider(fakeConsulServiceDiscoveryUrl, "")) - .And(x => x.GivenThereIsAServiceRunningOn("http://localhost:51779", "", 200, "Hello from Laura")) + .And(x => x.GivenThereIsAServiceRunningOn($"http://localhost:{servicePort}", "", 200, "Hello from Laura")) .And(x => _steps.GivenThereIsAConfiguration(configuration)) .And(x => _steps.GivenOcelotIsRunningUsingConsulToStoreConfig()) .When(x => _steps.WhenIGetUrlOnTheApiGateway("/")) @@ -79,7 +82,8 @@ [Fact] public void should_load_configuration_out_of_consul() { - var consulPort = 8500; + var consulPort = RandomPortFinder.GetRandomPort(); + int servicePort = RandomPortFinder.GetRandomPort(); var configuration = new FileConfiguration { @@ -108,7 +112,7 @@ new FileHostAndPort { Host = "localhost", - Port = 51779, + Port = servicePort, } }, UpstreamPathTemplate = "/cs/status", @@ -127,7 +131,7 @@ this.Given(x => GivenTheConsulConfigurationIs(consulConfig)) .And(x => GivenThereIsAFakeConsulServiceDiscoveryProvider(fakeConsulServiceDiscoveryUrl, "")) - .And(x => x.GivenThereIsAServiceRunningOn("http://localhost:51779", "/status", 200, "Hello from Laura")) + .And(x => x.GivenThereIsAServiceRunningOn($"http://localhost:{servicePort}", "/status", 200, "Hello from Laura")) .And(x => _steps.GivenThereIsAConfiguration(configuration)) .And(x => _steps.GivenOcelotIsRunningUsingConsulToStoreConfig()) .When(x => _steps.WhenIGetUrlOnTheApiGateway("/cs/status")) @@ -139,7 +143,9 @@ [Fact] public void should_load_configuration_out_of_consul_if_it_is_changed() { - var consulPort = 8506; + var consulPort = RandomPortFinder.GetRandomPort(); + int servicePort = RandomPortFinder.GetRandomPort(); + var configuration = new FileConfiguration { GlobalConfiguration = new FileGlobalConfiguration() @@ -167,7 +173,7 @@ new FileHostAndPort { Host = "localhost", - Port = 51780, + Port = servicePort, } }, UpstreamPathTemplate = "/cs/status", @@ -197,7 +203,7 @@ new FileHostAndPort { Host = "localhost", - Port = 51780, + Port = servicePort, } }, UpstreamPathTemplate = "/cs/status/awesome", @@ -216,7 +222,7 @@ this.Given(x => GivenTheConsulConfigurationIs(consulConfig)) .And(x => GivenThereIsAFakeConsulServiceDiscoveryProvider(fakeConsulServiceDiscoveryUrl, "")) - .And(x => x.GivenThereIsAServiceRunningOn("http://localhost:51780", "/status", 200, "Hello from Laura")) + .And(x => x.GivenThereIsAServiceRunningOn($"http://localhost:{servicePort}", "/status", 200, "Hello from Laura")) .And(x => _steps.GivenThereIsAConfiguration(configuration)) .And(x => _steps.GivenOcelotIsRunningUsingConsulToStoreConfig()) .And(x => _steps.WhenIGetUrlOnTheApiGateway("/cs/status")) @@ -230,9 +236,9 @@ [Fact] public void should_handle_request_to_consul_for_downstream_service_and_make_request_no_re_routes_and_rate_limit() { - const int consulPort = 8523; + int consulPort = RandomPortFinder.GetRandomPort(); const string serviceName = "web"; - const int downstreamServicePort = 8187; + int downstreamServicePort = RandomPortFinder.GetRandomPort(); var downstreamServiceOneUrl = $"http://localhost:{downstreamServicePort}"; var fakeConsulServiceDiscoveryUrl = $"http://localhost:{consulPort}"; var serviceEntryOne = new ServiceEntry() diff --git a/test/Ocelot.AcceptanceTests/ConsulWebSocketTests.cs b/test/Ocelot.AcceptanceTests/ConsulWebSocketTests.cs index 7ebb4737..935a56f7 100644 --- a/test/Ocelot.AcceptanceTests/ConsulWebSocketTests.cs +++ b/test/Ocelot.AcceptanceTests/ConsulWebSocketTests.cs @@ -34,14 +34,14 @@ [Fact] public void should_proxy_websocket_input_to_downstream_service_and_use_service_discovery_and_load_balancer() { - var downstreamPort = 5007; + var downstreamPort = RandomPortFinder.GetRandomPort(); var downstreamHost = "localhost"; - var secondDownstreamPort = 5008; + var secondDownstreamPort = RandomPortFinder.GetRandomPort(); var secondDownstreamHost = "localhost"; var serviceName = "websockets"; - var consulPort = 8509; + var consulPort = RandomPortFinder.GetRandomPort(); var fakeConsulServiceDiscoveryUrl = $"http://localhost:{consulPort}"; var serviceEntryOne = new ServiceEntry() { diff --git a/test/Ocelot.AcceptanceTests/ContentTests.cs b/test/Ocelot.AcceptanceTests/ContentTests.cs index 7a4d8365..31a16066 100644 --- a/test/Ocelot.AcceptanceTests/ContentTests.cs +++ b/test/Ocelot.AcceptanceTests/ContentTests.cs @@ -26,6 +26,8 @@ namespace Ocelot.AcceptanceTests [Fact] public void should_not_add_content_type_or_content_length_headers() { + var port = RandomPortFinder.GetRandomPort(); + var configuration = new FileConfiguration { ReRoutes = new List @@ -39,7 +41,7 @@ namespace Ocelot.AcceptanceTests new FileHostAndPort { Host = "localhost", - Port = 51339, + Port = port, } }, UpstreamPathTemplate = "/", @@ -48,7 +50,7 @@ namespace Ocelot.AcceptanceTests } }; - this.Given(x => x.GivenThereIsAServiceRunningOn("http://localhost:51339", "/", 200, "Hello from Laura")) + this.Given(x => x.GivenThereIsAServiceRunningOn($"http://localhost:{port}", "/", 200, "Hello from Laura")) .And(x => _steps.GivenThereIsAConfiguration(configuration)) .And(x => _steps.GivenOcelotIsRunning()) .When(x => _steps.WhenIGetUrlOnTheApiGateway("/")) @@ -62,6 +64,8 @@ namespace Ocelot.AcceptanceTests [Fact] public void should_add_content_type_and_content_length_headers() { + var port = RandomPortFinder.GetRandomPort(); + var configuration = new FileConfiguration { ReRoutes = new List @@ -74,7 +78,7 @@ namespace Ocelot.AcceptanceTests new FileHostAndPort { Host = "localhost", - Port = 51349, + Port = port, } }, DownstreamScheme = "http", @@ -86,7 +90,7 @@ namespace Ocelot.AcceptanceTests var contentType = "application/json"; - this.Given(x => x.GivenThereIsAServiceRunningOn("http://localhost:51349", "/", 201, string.Empty)) + this.Given(x => x.GivenThereIsAServiceRunningOn($"http://localhost:{port}", "/", 201, string.Empty)) .And(x => _steps.GivenThereIsAConfiguration(configuration)) .And(x => _steps.GivenOcelotIsRunning()) .And(x => _steps.GivenThePostHasContent("postContent")) @@ -101,6 +105,8 @@ namespace Ocelot.AcceptanceTests [Fact] public void should_add_default_content_type_header() { + var port = RandomPortFinder.GetRandomPort(); + var configuration = new FileConfiguration { ReRoutes = new List @@ -113,7 +119,7 @@ namespace Ocelot.AcceptanceTests new FileHostAndPort { Host = "localhost", - Port = 51359, + Port = port, } }, DownstreamScheme = "http", @@ -123,7 +129,7 @@ namespace Ocelot.AcceptanceTests } }; - this.Given(x => x.GivenThereIsAServiceRunningOn("http://localhost:51359", "/", 201, string.Empty)) + this.Given(x => x.GivenThereIsAServiceRunningOn($"http://localhost:{port}", "/", 201, string.Empty)) .And(x => _steps.GivenThereIsAConfiguration(configuration)) .And(x => _steps.GivenOcelotIsRunning()) .And(x => _steps.GivenThePostHasContent("postContent")) diff --git a/test/Ocelot.AcceptanceTests/CustomMiddlewareTests.cs b/test/Ocelot.AcceptanceTests/CustomMiddlewareTests.cs index bbfce600..2f7a2756 100644 --- a/test/Ocelot.AcceptanceTests/CustomMiddlewareTests.cs +++ b/test/Ocelot.AcceptanceTests/CustomMiddlewareTests.cs @@ -37,7 +37,9 @@ _counter++; await next.Invoke(); } - }; + }; + + var port = RandomPortFinder.GetRandomPort(); var fileConfiguration = new FileConfiguration { @@ -51,7 +53,7 @@ new FileHostAndPort { Host = "localhost", - Port = 41879, + Port = port, } }, DownstreamScheme = "http", @@ -61,7 +63,7 @@ } }; - this.Given(x => x.GivenThereIsAServiceRunningOn("http://localhost:41879", 200, "")) + this.Given(x => x.GivenThereIsAServiceRunningOn($"http://localhost:{port}", 200, "")) .And(x => _steps.GivenThereIsAConfiguration(fileConfiguration, _configurationPath)) .And(x => _steps.GivenOcelotIsRunning(configuration)) .When(x => _steps.WhenIGetUrlOnTheApiGateway("/")) @@ -80,7 +82,9 @@ _counter++; await next.Invoke(); } - }; + }; + + var port = RandomPortFinder.GetRandomPort(); var fileConfiguration = new FileConfiguration { @@ -94,7 +98,7 @@ new FileHostAndPort { Host = "localhost", - Port = 41879, + Port = port, } }, DownstreamScheme = "http", @@ -104,7 +108,7 @@ } }; - this.Given(x => x.GivenThereIsAServiceRunningOn("http://localhost:41879", 200, "")) + this.Given(x => x.GivenThereIsAServiceRunningOn($"http://localhost:{port}", 200, "")) .And(x => _steps.GivenThereIsAConfiguration(fileConfiguration, _configurationPath)) .And(x => _steps.GivenOcelotIsRunning(configuration)) .When(x => _steps.WhenIGetUrlOnTheApiGateway("/")) @@ -123,7 +127,9 @@ _counter++; await next.Invoke(); } - }; + }; + + var port = RandomPortFinder.GetRandomPort(); var fileConfiguration = new FileConfiguration { @@ -137,7 +143,7 @@ new FileHostAndPort { Host = "localhost", - Port = 41879, + Port = port, } }, DownstreamScheme = "http", @@ -147,7 +153,7 @@ } }; - this.Given(x => x.GivenThereIsAServiceRunningOn("http://localhost:41879", 200, "")) + this.Given(x => x.GivenThereIsAServiceRunningOn($"http://localhost:{port}", 200, "")) .And(x => _steps.GivenThereIsAConfiguration(fileConfiguration, _configurationPath)) .And(x => _steps.GivenOcelotIsRunning(configuration)) .When(x => _steps.WhenIGetUrlOnTheApiGateway("/")) @@ -166,7 +172,9 @@ _counter++; await next.Invoke(); } - }; + }; + + var port = RandomPortFinder.GetRandomPort(); var fileConfiguration = new FileConfiguration { @@ -180,7 +188,7 @@ new FileHostAndPort { Host = "localhost", - Port = 41879, + Port = port, } }, DownstreamScheme = "http", @@ -190,7 +198,7 @@ } }; - this.Given(x => x.GivenThereIsAServiceRunningOn("http://localhost:41879", 200, "")) + this.Given(x => x.GivenThereIsAServiceRunningOn($"http://localhost:{port}", 200, "")) .And(x => _steps.GivenThereIsAConfiguration(fileConfiguration, _configurationPath)) .And(x => _steps.GivenOcelotIsRunning(configuration)) .When(x => _steps.WhenIGetUrlOnTheApiGateway("/")) @@ -209,7 +217,9 @@ _counter++; await next.Invoke(); } - }; + }; + + var port = RandomPortFinder.GetRandomPort(); var fileConfiguration = new FileConfiguration { @@ -223,7 +233,7 @@ new FileHostAndPort { Host = "localhost", - Port = 41879, + Port = port, } }, DownstreamScheme = "http", @@ -233,7 +243,7 @@ } }; - this.Given(x => x.GivenThereIsAServiceRunningOn("http://localhost:41879", 200, "")) + this.Given(x => x.GivenThereIsAServiceRunningOn($"http://localhost:{port}", 200, "")) .And(x => _steps.GivenThereIsAConfiguration(fileConfiguration, _configurationPath)) .And(x => _steps.GivenOcelotIsRunning(configuration)) .When(x => _steps.WhenIGetUrlOnTheApiGateway("/")) @@ -252,7 +262,9 @@ _counter++; await next.Invoke(); } - }; + }; + + var port = RandomPortFinder.GetRandomPort(); var fileConfiguration = new FileConfiguration { @@ -266,7 +278,7 @@ new FileHostAndPort { Host = "localhost", - Port = 41879, + Port = port, } }, DownstreamScheme = "http", @@ -276,7 +288,7 @@ } }; - this.Given(x => x.GivenThereIsAServiceRunningOn("http://localhost:41879", 200, "")) + this.Given(x => x.GivenThereIsAServiceRunningOn($"http://localhost:{port}", 200, "")) .And(x => _steps.GivenThereIsAConfiguration(fileConfiguration, _configurationPath)) .And(x => _steps.GivenOcelotIsRunning(configuration)) .When(x => _steps.WhenIGetUrlOnTheApiGateway("/")) @@ -299,7 +311,9 @@ } return Task.CompletedTask; - }; + }; + + var port = RandomPortFinder.GetRandomPort(); var fileConfiguration = new FileConfiguration { @@ -313,7 +327,7 @@ new FileHostAndPort { Host = "localhost", - Port = 41880, + Port = port, } }, DownstreamScheme = "http", @@ -323,7 +337,7 @@ } }; - this.Given(x => x.GivenThereIsAServiceRunningOn("http://localhost:41880", 200, "/test")) + this.Given(x => x.GivenThereIsAServiceRunningOn($"http://localhost:{port}", 200, "/test")) .And(x => _steps.GivenThereIsAConfiguration(fileConfiguration, _configurationPath)) .And(x => _steps.GivenOcelotIsRunningWithMiddleareBeforePipeline(callback)) .When(x => _steps.WhenIGetUrlOnTheApiGateway("/")) diff --git a/test/Ocelot.AcceptanceTests/EurekaServiceDiscoveryTests.cs b/test/Ocelot.AcceptanceTests/EurekaServiceDiscoveryTests.cs index 3029249c..d1e63c81 100644 --- a/test/Ocelot.AcceptanceTests/EurekaServiceDiscoveryTests.cs +++ b/test/Ocelot.AcceptanceTests/EurekaServiceDiscoveryTests.cs @@ -28,7 +28,7 @@ { var eurekaPort = 8761; var serviceName = "product"; - var downstreamServicePort = 50371; + var downstreamServicePort = RandomPortFinder.GetRandomPort(); var downstreamServiceOneUrl = $"http://localhost:{downstreamServicePort}"; var fakeEurekaServiceDiscoveryUrl = $"http://localhost:{eurekaPort}"; diff --git a/test/Ocelot.AcceptanceTests/GzipTests.cs b/test/Ocelot.AcceptanceTests/GzipTests.cs index a2b1e1b7..61237b38 100644 --- a/test/Ocelot.AcceptanceTests/GzipTests.cs +++ b/test/Ocelot.AcceptanceTests/GzipTests.cs @@ -25,7 +25,9 @@ namespace Ocelot.AcceptanceTests [Fact] public void should_return_response_200_with_simple_url() - { + { + var port = RandomPortFinder.GetRandomPort(); + var configuration = new FileConfiguration { ReRoutes = new List @@ -39,7 +41,7 @@ namespace Ocelot.AcceptanceTests new FileHostAndPort { Host = "localhost", - Port = 51179, + Port = port, } }, UpstreamPathTemplate = "/", @@ -50,7 +52,7 @@ namespace Ocelot.AcceptanceTests var input = "people"; - this.Given(x => x.GivenThereIsAServiceRunningOn("http://localhost:51179", "/", 200, "Hello from Laura", "\"people\"")) + this.Given(x => x.GivenThereIsAServiceRunningOn($"http://localhost:{port}", "/", 200, "Hello from Laura", "\"people\"")) .And(x => _steps.GivenThereIsAConfiguration(configuration)) .And(x => _steps.GivenOcelotIsRunning()) .And(x => _steps.GivenThePostHasGzipContent(input)) diff --git a/test/Ocelot.AcceptanceTests/HeaderTests.cs b/test/Ocelot.AcceptanceTests/HeaderTests.cs index e7c0c2ca..82157335 100644 --- a/test/Ocelot.AcceptanceTests/HeaderTests.cs +++ b/test/Ocelot.AcceptanceTests/HeaderTests.cs @@ -24,7 +24,9 @@ namespace Ocelot.AcceptanceTests [Fact] public void should_transform_upstream_header() - { + { + var port = RandomPortFinder.GetRandomPort(); + var configuration = new FileConfiguration { ReRoutes = new List @@ -38,7 +40,7 @@ namespace Ocelot.AcceptanceTests new FileHostAndPort { Host = "localhost", - Port = 51871, + Port = port, } }, UpstreamPathTemplate = "/", @@ -51,7 +53,7 @@ namespace Ocelot.AcceptanceTests } }; - this.Given(x => x.GivenThereIsAServiceRunningOn("http://localhost:51871", "/", 200, "Laz")) + this.Given(x => x.GivenThereIsAServiceRunningOn($"http://localhost:{port}", "/", 200, "Laz")) .And(x => _steps.GivenThereIsAConfiguration(configuration)) .And(x => _steps.GivenOcelotIsRunning()) .And(x => _steps.GivenIAddAHeader("Laz", "D")) @@ -63,7 +65,9 @@ namespace Ocelot.AcceptanceTests [Fact] public void should_transform_downstream_header() - { + { + var port = RandomPortFinder.GetRandomPort(); + var configuration = new FileConfiguration { ReRoutes = new List @@ -77,7 +81,7 @@ namespace Ocelot.AcceptanceTests new FileHostAndPort { Host = "localhost", - Port = 51871, + Port = port, } }, UpstreamPathTemplate = "/", @@ -90,7 +94,7 @@ namespace Ocelot.AcceptanceTests } }; - this.Given(x => x.GivenThereIsAServiceRunningOn("http://localhost:51871", "/", 200, "Location", "http://www.bbc.co.uk/")) + this.Given(x => x.GivenThereIsAServiceRunningOn($"http://localhost:{port}", "/", 200, "Location", "http://www.bbc.co.uk/")) .And(x => _steps.GivenThereIsAConfiguration(configuration)) .And(x => _steps.GivenOcelotIsRunning()) .When(x => _steps.WhenIGetUrlOnTheApiGateway("/")) @@ -101,7 +105,9 @@ namespace Ocelot.AcceptanceTests [Fact] public void should_fix_issue_190() - { + { + var port = RandomPortFinder.GetRandomPort(); + var configuration = new FileConfiguration { ReRoutes = new List @@ -115,14 +121,14 @@ namespace Ocelot.AcceptanceTests new FileHostAndPort { Host = "localhost", - Port = 6773, + Port = port, } }, UpstreamPathTemplate = "/", UpstreamHttpMethod = new List { "Get" }, DownstreamHeaderTransform = new Dictionary { - {"Location", "http://localhost:6773, {BaseUrl}"} + {"Location", $"http://localhost:{port}, {{BaseUrl}}"} }, HttpHandlerOptions = new FileHttpHandlerOptions { @@ -132,7 +138,7 @@ namespace Ocelot.AcceptanceTests } }; - this.Given(x => x.GivenThereIsAServiceRunningOn("http://localhost:6773", "/", 302, "Location", "http://localhost:6773/pay/Receive")) + this.Given(x => x.GivenThereIsAServiceRunningOn($"http://localhost:{port}", "/", 302, "Location", $"http://localhost:{port}/pay/Receive")) .And(x => _steps.GivenThereIsAConfiguration(configuration)) .And(x => _steps.GivenOcelotIsRunning()) .When(x => _steps.WhenIGetUrlOnTheApiGateway("/")) @@ -143,7 +149,9 @@ namespace Ocelot.AcceptanceTests [Fact] public void should_fix_issue_205() - { + { + var port = RandomPortFinder.GetRandomPort(); + var configuration = new FileConfiguration { ReRoutes = new List @@ -157,7 +165,7 @@ namespace Ocelot.AcceptanceTests new FileHostAndPort { Host = "localhost", - Port = 6773, + Port = port, } }, UpstreamPathTemplate = "/", @@ -174,7 +182,7 @@ namespace Ocelot.AcceptanceTests } }; - this.Given(x => x.GivenThereIsAServiceRunningOn("http://localhost:6773", "/", 302, "Location", "http://localhost:6773/pay/Receive")) + this.Given(x => x.GivenThereIsAServiceRunningOn($"http://localhost:{port}", "/", 302, "Location", $"http://localhost:{port}/pay/Receive")) .And(x => _steps.GivenThereIsAConfiguration(configuration)) .And(x => _steps.GivenOcelotIsRunning()) .When(x => _steps.WhenIGetUrlOnTheApiGateway("/")) @@ -185,7 +193,9 @@ namespace Ocelot.AcceptanceTests [Fact] public void should_fix_issue_417() - { + { + var port = RandomPortFinder.GetRandomPort(); + var configuration = new FileConfiguration { ReRoutes = new List @@ -199,7 +209,7 @@ namespace Ocelot.AcceptanceTests new FileHostAndPort { Host = "localhost", - Port = 6773, + Port = port, } }, UpstreamPathTemplate = "/", @@ -220,7 +230,7 @@ namespace Ocelot.AcceptanceTests } }; - this.Given(x => x.GivenThereIsAServiceRunningOn("http://localhost:6773", "/", 302, "Location", "http://localhost:6773/pay/Receive")) + this.Given(x => x.GivenThereIsAServiceRunningOn($"http://localhost:{port}", "/", 302, "Location", $"http://localhost:{port}/pay/Receive")) .And(x => _steps.GivenThereIsAConfiguration(configuration)) .And(x => _steps.GivenOcelotIsRunning()) .When(x => _steps.WhenIGetUrlOnTheApiGateway("/")) @@ -231,7 +241,9 @@ namespace Ocelot.AcceptanceTests [Fact] public void request_should_reuse_cookies_with_cookie_container() - { + { + var port = RandomPortFinder.GetRandomPort(); + var configuration = new FileConfiguration { ReRoutes = new List @@ -245,7 +257,7 @@ namespace Ocelot.AcceptanceTests new FileHostAndPort { Host = "localhost", - Port = 6774, + Port = port, } }, UpstreamPathTemplate = "/sso/{everything}", @@ -258,7 +270,7 @@ namespace Ocelot.AcceptanceTests } }; - this.Given(x => x.GivenThereIsAServiceRunningOn("http://localhost:6774", "/sso/test", 200)) + this.Given(x => x.GivenThereIsAServiceRunningOn($"http://localhost:{port}", "/sso/test", 200)) .And(x => _steps.GivenThereIsAConfiguration(configuration)) .And(x => _steps.GivenOcelotIsRunning()) .And(x => _steps.WhenIGetUrlOnTheApiGateway("/sso/test")) @@ -272,7 +284,9 @@ namespace Ocelot.AcceptanceTests [Fact] public void request_should_have_own_cookies_no_cookie_container() - { + { + var port = RandomPortFinder.GetRandomPort(); + var configuration = new FileConfiguration { ReRoutes = new List @@ -286,7 +300,7 @@ namespace Ocelot.AcceptanceTests new FileHostAndPort { Host = "localhost", - Port = 6775, + Port = port, } }, UpstreamPathTemplate = "/sso/{everything}", @@ -299,7 +313,7 @@ namespace Ocelot.AcceptanceTests } }; - this.Given(x => x.GivenThereIsAServiceRunningOn("http://localhost:6775", "/sso/test", 200)) + this.Given(x => x.GivenThereIsAServiceRunningOn($"http://localhost:{port}", "/sso/test", 200)) .And(x => _steps.GivenThereIsAConfiguration(configuration)) .And(x => _steps.GivenOcelotIsRunning()) .And(x => _steps.WhenIGetUrlOnTheApiGateway("/sso/test")) @@ -313,7 +327,9 @@ namespace Ocelot.AcceptanceTests [Fact] public void issue_474_should_not_put_spaces_in_header() - { + { + var port = RandomPortFinder.GetRandomPort(); + var configuration = new FileConfiguration { ReRoutes = new List @@ -327,7 +343,7 @@ namespace Ocelot.AcceptanceTests new FileHostAndPort { Host = "localhost", - Port = 52866, + Port = port, } }, UpstreamPathTemplate = "/", @@ -336,7 +352,7 @@ namespace Ocelot.AcceptanceTests } }; - this.Given(x => x.GivenThereIsAServiceRunningOn("http://localhost:52866", "/", 200, "Accept")) + this.Given(x => x.GivenThereIsAServiceRunningOn($"http://localhost:{port}", "/", 200, "Accept")) .And(x => _steps.GivenThereIsAConfiguration(configuration)) .And(x => _steps.GivenOcelotIsRunning()) .And(x => _steps.GivenIAddAHeader("Accept", "text/html,application/xhtml+xml,application/xml;")) @@ -348,7 +364,9 @@ namespace Ocelot.AcceptanceTests [Fact] public void issue_474_should_put_spaces_in_header() - { + { + var port = RandomPortFinder.GetRandomPort(); + var configuration = new FileConfiguration { ReRoutes = new List @@ -362,7 +380,7 @@ namespace Ocelot.AcceptanceTests new FileHostAndPort { Host = "localhost", - Port = 51874, + Port = port, } }, UpstreamPathTemplate = "/", @@ -371,7 +389,7 @@ namespace Ocelot.AcceptanceTests } }; - this.Given(x => x.GivenThereIsAServiceRunningOn("http://localhost:51874", "/", 200, "Accept")) + this.Given(x => x.GivenThereIsAServiceRunningOn($"http://localhost:{port}", "/", 200, "Accept")) .And(x => _steps.GivenThereIsAConfiguration(configuration)) .And(x => _steps.GivenOcelotIsRunning()) .And(x => _steps.GivenIAddAHeader("Accept", "text/html")) diff --git a/test/Ocelot.AcceptanceTests/HttpClientCachingTests.cs b/test/Ocelot.AcceptanceTests/HttpClientCachingTests.cs index a3b8f49e..58dca0af 100644 --- a/test/Ocelot.AcceptanceTests/HttpClientCachingTests.cs +++ b/test/Ocelot.AcceptanceTests/HttpClientCachingTests.cs @@ -26,7 +26,9 @@ namespace Ocelot.AcceptanceTests [Fact] public void should_cache_one_http_client_same_re_route() - { + { + var port = RandomPortFinder.GetRandomPort(); + var configuration = new FileConfiguration { ReRoutes = new List @@ -40,7 +42,7 @@ namespace Ocelot.AcceptanceTests new FileHostAndPort { Host = "localhost", - Port = 58814, + Port = port, } }, UpstreamPathTemplate = "/", @@ -51,7 +53,7 @@ namespace Ocelot.AcceptanceTests var cache = new FakeHttpClientCache(); - this.Given(x => x.GivenThereIsAServiceRunningOn("http://localhost:58814", 200, "Hello from Laura")) + this.Given(x => x.GivenThereIsAServiceRunningOn($"http://localhost:{port}", 200, "Hello from Laura")) .And(x => _steps.GivenThereIsAConfiguration(configuration)) .And(x => _steps.GivenOcelotIsRunningWithFakeHttpClientCache(cache)) .When(x => _steps.WhenIGetUrlOnTheApiGateway("/")) @@ -66,7 +68,9 @@ namespace Ocelot.AcceptanceTests [Fact] public void should_cache_two_http_client_different_re_route() - { + { + var port = RandomPortFinder.GetRandomPort(); + var configuration = new FileConfiguration { ReRoutes = new List @@ -80,7 +84,7 @@ namespace Ocelot.AcceptanceTests new FileHostAndPort { Host = "localhost", - Port = 58817, + Port = port, } }, UpstreamPathTemplate = "/", @@ -95,7 +99,7 @@ namespace Ocelot.AcceptanceTests new FileHostAndPort { Host = "localhost", - Port = 58817, + Port = port, } }, UpstreamPathTemplate = "/two", @@ -106,7 +110,7 @@ namespace Ocelot.AcceptanceTests var cache = new FakeHttpClientCache(); - this.Given(x => x.GivenThereIsAServiceRunningOn("http://localhost:58817", 200, "Hello from Laura")) + this.Given(x => x.GivenThereIsAServiceRunningOn($"http://localhost:{port}", 200, "Hello from Laura")) .And(x => _steps.GivenThereIsAConfiguration(configuration)) .And(x => _steps.GivenOcelotIsRunningWithFakeHttpClientCache(cache)) .When(x => _steps.WhenIGetUrlOnTheApiGateway("/")) diff --git a/test/Ocelot.AcceptanceTests/HttpDelegatingHandlersTests.cs b/test/Ocelot.AcceptanceTests/HttpDelegatingHandlersTests.cs index dc985e42..57c2dc27 100644 --- a/test/Ocelot.AcceptanceTests/HttpDelegatingHandlersTests.cs +++ b/test/Ocelot.AcceptanceTests/HttpDelegatingHandlersTests.cs @@ -27,6 +27,8 @@ [Fact] public void should_call_re_route_ordered_specific_handlers() { + var port = RandomPortFinder.GetRandomPort(); + var configuration = new FileConfiguration { ReRoutes = new List @@ -40,7 +42,7 @@ new FileHostAndPort { Host = "localhost", - Port = 7197, + Port = port, } }, UpstreamPathTemplate = "/", @@ -54,7 +56,7 @@ } }; - this.Given(x => x.GivenThereIsAServiceRunningOn("http://localhost:7197", "/", 200, "Hello from Laura")) + this.Given(x => x.GivenThereIsAServiceRunningOn($"http://localhost:{port}", "/", 200, "Hello from Laura")) .And(x => _steps.GivenThereIsAConfiguration(configuration)) .And(x => _steps.GivenOcelotIsRunningWithSpecficHandlersRegisteredInDi()) .When(x => _steps.WhenIGetUrlOnTheApiGateway("/")) @@ -67,6 +69,8 @@ [Fact] public void should_call_global_di_handlers() { + var port = RandomPortFinder.GetRandomPort(); + var configuration = new FileConfiguration { ReRoutes = new List @@ -80,7 +84,7 @@ new FileHostAndPort { Host = "localhost", - Port = 7187, + Port = port, } }, UpstreamPathTemplate = "/", @@ -89,7 +93,7 @@ } }; - this.Given(x => x.GivenThereIsAServiceRunningOn("http://localhost:7187", "/", 200, "Hello from Laura")) + this.Given(x => x.GivenThereIsAServiceRunningOn($"http://localhost:{port}", "/", 200, "Hello from Laura")) .And(x => _steps.GivenThereIsAConfiguration(configuration)) .And(x => _steps.GivenOcelotIsRunningWithGlobalHandlersRegisteredInDi()) .When(x => _steps.WhenIGetUrlOnTheApiGateway("/")) @@ -102,6 +106,8 @@ [Fact] public void should_call_global_di_handlers_multiple_times() { + var port = RandomPortFinder.GetRandomPort(); + var configuration = new FileConfiguration { ReRoutes = new List @@ -115,7 +121,7 @@ new FileHostAndPort { Host = "localhost", - Port = 9187, + Port = port, } }, UpstreamPathTemplate = "/", @@ -124,7 +130,7 @@ } }; - this.Given(x => x.GivenThereIsAServiceRunningOn("http://localhost:9187", "/", 200, "Hello from Laura")) + this.Given(x => x.GivenThereIsAServiceRunningOn($"http://localhost:{port}", "/", 200, "Hello from Laura")) .And(x => _steps.GivenThereIsAConfiguration(configuration)) .And(x => _steps.GivenOcelotIsRunningWithGlobalHandlerRegisteredInDi()) .When(x => _steps.WhenIGetUrlOnTheApiGateway("/")) @@ -153,6 +159,8 @@ [Fact] public void should_call_global_di_handlers_with_dependency() { + var port = RandomPortFinder.GetRandomPort(); + var configuration = new FileConfiguration { ReRoutes = new List @@ -166,7 +174,7 @@ new FileHostAndPort { Host = "localhost", - Port = 7188, + Port = port, } }, UpstreamPathTemplate = "/", @@ -177,7 +185,7 @@ var dependency = new FakeDependency(); - this.Given(x => x.GivenThereIsAServiceRunningOn("http://localhost:7188", "/", 200, "Hello from Laura")) + this.Given(x => x.GivenThereIsAServiceRunningOn($"http://localhost:{port}", "/", 200, "Hello from Laura")) .And(x => _steps.GivenThereIsAConfiguration(configuration)) .And(x => _steps.GivenOcelotIsRunningWithGlobalHandlersRegisteredInDi(dependency)) .When(x => _steps.WhenIGetUrlOnTheApiGateway("/")) diff --git a/test/Ocelot.AcceptanceTests/HttpTests.cs b/test/Ocelot.AcceptanceTests/HttpTests.cs index b63ad4bb..57947d07 100644 --- a/test/Ocelot.AcceptanceTests/HttpTests.cs +++ b/test/Ocelot.AcceptanceTests/HttpTests.cs @@ -25,7 +25,7 @@ namespace Ocelot.AcceptanceTests [Fact] public void should_return_response_200_when_using_http_one() { - const int port = 53219; + var port = RandomPortFinder.GetRandomPort(); var configuration = new FileConfiguration { @@ -63,7 +63,7 @@ namespace Ocelot.AcceptanceTests [Fact] public void should_return_response_200_when_using_http_one_point_one() { - const int port = 53279; + var port = RandomPortFinder.GetRandomPort(); var configuration = new FileConfiguration { @@ -101,7 +101,7 @@ namespace Ocelot.AcceptanceTests [Fact] public void should_return_response_200_when_using_http_two_point_zero() { - const int port = 53675; + var port = RandomPortFinder.GetRandomPort(); var configuration = new FileConfiguration { @@ -143,7 +143,7 @@ namespace Ocelot.AcceptanceTests [Fact] public void should_return_response_500_when_using_http_one_to_talk_to_server_running_http_two() { - const int port = 53677; + var port = RandomPortFinder.GetRandomPort(); var configuration = new FileConfiguration { @@ -184,7 +184,7 @@ namespace Ocelot.AcceptanceTests [Fact] public void should_return_response_200_when_using_http_two_to_talk_to_server_running_http_one_point_one() { - const int port = 53679; + var port = RandomPortFinder.GetRandomPort(); var configuration = new FileConfiguration { diff --git a/test/Ocelot.AcceptanceTests/LoadBalancerTests.cs b/test/Ocelot.AcceptanceTests/LoadBalancerTests.cs index 5ce9c1e2..3c62afea 100644 --- a/test/Ocelot.AcceptanceTests/LoadBalancerTests.cs +++ b/test/Ocelot.AcceptanceTests/LoadBalancerTests.cs @@ -26,8 +26,8 @@ namespace Ocelot.AcceptanceTests [Fact] public void should_load_balance_request_with_least_connection() { - int portOne = 50591; - int portTwo = 54483; + int portOne = RandomPortFinder.GetRandomPort(); + int portTwo = RandomPortFinder.GetRandomPort(); var downstreamServiceOneUrl = $"http://localhost:{portOne}"; var downstreamServiceTwoUrl = $"http://localhost:{portTwo}"; @@ -76,8 +76,8 @@ namespace Ocelot.AcceptanceTests [Fact] public void should_load_balance_request_with_round_robin() { - var downstreamPortOne = 51701; - var downstreamPortTwo = 53802; + var downstreamPortOne = RandomPortFinder.GetRandomPort(); + var downstreamPortTwo = RandomPortFinder.GetRandomPort(); var downstreamServiceOneUrl = $"http://localhost:{downstreamPortOne}"; var downstreamServiceTwoUrl = $"http://localhost:{downstreamPortTwo}"; diff --git a/test/Ocelot.AcceptanceTests/MethodTests.cs b/test/Ocelot.AcceptanceTests/MethodTests.cs index abfbfecf..e70dc7e1 100644 --- a/test/Ocelot.AcceptanceTests/MethodTests.cs +++ b/test/Ocelot.AcceptanceTests/MethodTests.cs @@ -24,6 +24,8 @@ namespace Ocelot.AcceptanceTests [Fact] public void should_return_response_200_when_get_converted_to_post() { + var port = RandomPortFinder.GetRandomPort(); + var configuration = new FileConfiguration { ReRoutes = new List @@ -39,7 +41,7 @@ namespace Ocelot.AcceptanceTests new FileHostAndPort { Host = "localhost", - Port = 53171, + Port = port, }, }, DownstreamHttpMethod = "POST", @@ -47,7 +49,7 @@ namespace Ocelot.AcceptanceTests }, }; - this.Given(x => x.GivenThereIsAServiceRunningOn("http://localhost:53171/", "/", "POST")) + this.Given(x => x.GivenThereIsAServiceRunningOn($"http://localhost:{port}/", "/", "POST")) .And(x => _steps.GivenThereIsAConfiguration(configuration)) .And(x => _steps.GivenOcelotIsRunning()) .When(x => _steps.WhenIGetUrlOnTheApiGateway("/")) @@ -58,6 +60,8 @@ namespace Ocelot.AcceptanceTests [Fact] public void should_return_response_200_when_get_converted_to_post_with_content() { + var port = RandomPortFinder.GetRandomPort(); + var configuration = new FileConfiguration { ReRoutes = new List @@ -73,7 +77,7 @@ namespace Ocelot.AcceptanceTests new FileHostAndPort { Host = "localhost", - Port = 53271, + Port = port, }, }, DownstreamHttpMethod = "POST", @@ -84,7 +88,7 @@ namespace Ocelot.AcceptanceTests const string expected = "here is some content"; var httpContent = new StringContent(expected); - this.Given(x => x.GivenThereIsAServiceRunningOn("http://localhost:53271/", "/", "POST")) + this.Given(x => x.GivenThereIsAServiceRunningOn($"http://localhost:{port}/", "/", "POST")) .And(x => _steps.GivenThereIsAConfiguration(configuration)) .And(x => _steps.GivenOcelotIsRunning()) .When(x => _steps.WhenIGetUrlOnTheApiGateway("/", httpContent)) @@ -96,6 +100,8 @@ namespace Ocelot.AcceptanceTests [Fact] public void should_return_response_200_when_get_converted_to_get_with_content() { + var port = RandomPortFinder.GetRandomPort(); + var configuration = new FileConfiguration { ReRoutes = new List @@ -111,7 +117,7 @@ namespace Ocelot.AcceptanceTests new FileHostAndPort { Host = "localhost", - Port = 53272, + Port = port, }, }, DownstreamHttpMethod = "GET", @@ -122,7 +128,7 @@ namespace Ocelot.AcceptanceTests const string expected = "here is some content"; var httpContent = new StringContent(expected); - this.Given(x => x.GivenThereIsAServiceRunningOn("http://localhost:53272/", "/", "GET")) + this.Given(x => x.GivenThereIsAServiceRunningOn($"http://localhost:{port}/", "/", "GET")) .And(x => _steps.GivenThereIsAConfiguration(configuration)) .And(x => _steps.GivenOcelotIsRunning()) .When(x => _steps.WhenIPostUrlOnTheApiGateway("/", httpContent)) diff --git a/test/Ocelot.AcceptanceTests/PollyQoSTests.cs b/test/Ocelot.AcceptanceTests/PollyQoSTests.cs index d7cf7c2d..07cc7299 100644 --- a/test/Ocelot.AcceptanceTests/PollyQoSTests.cs +++ b/test/Ocelot.AcceptanceTests/PollyQoSTests.cs @@ -24,7 +24,9 @@ [Fact] public void should_not_timeout() - { + { + var port = RandomPortFinder.GetRandomPort(); + var configuration = new FileConfiguration { ReRoutes = new List @@ -37,7 +39,7 @@ new FileHostAndPort { Host = "localhost", - Port = 51569, + Port = port, } }, DownstreamScheme = "http", @@ -52,7 +54,7 @@ } }; - this.Given(x => x.GivenThereIsAServiceRunningOn("http://localhost:51569", 200, string.Empty, 10)) + this.Given(x => x.GivenThereIsAServiceRunningOn($"http://localhost:{port}", 200, string.Empty, 10)) .And(x => _steps.GivenThereIsAConfiguration(configuration)) .And(x => _steps.GivenOcelotIsRunningWithPolly()) .And(x => _steps.GivenThePostHasContent("postContent")) @@ -63,7 +65,9 @@ [Fact] public void should_timeout() - { + { + var port = RandomPortFinder.GetRandomPort(); + var configuration = new FileConfiguration { ReRoutes = new List @@ -76,7 +80,7 @@ new FileHostAndPort { Host = "localhost", - Port = 51579, + Port = port, } }, DownstreamScheme = "http", @@ -91,7 +95,7 @@ } }; - this.Given(x => x.GivenThereIsAServiceRunningOn("http://localhost:51579", 201, string.Empty, 1000)) + this.Given(x => x.GivenThereIsAServiceRunningOn($"http://localhost:{port}", 201, string.Empty, 1000)) .And(x => _steps.GivenThereIsAConfiguration(configuration)) .And(x => _steps.GivenOcelotIsRunningWithPolly()) .And(x => _steps.GivenThePostHasContent("postContent")) @@ -102,7 +106,9 @@ [Fact] public void should_open_circuit_breaker_then_close() - { + { + var port = RandomPortFinder.GetRandomPort(); + var configuration = new FileConfiguration { ReRoutes = new List @@ -116,7 +122,7 @@ new FileHostAndPort { Host = "localhost", - Port = 51892, + Port = port, } }, UpstreamPathTemplate = "/", @@ -131,7 +137,7 @@ } }; - this.Given(x => x.GivenThereIsAPossiblyBrokenServiceRunningOn("http://localhost:51892", "Hello from Laura")) + this.Given(x => x.GivenThereIsAPossiblyBrokenServiceRunningOn($"http://localhost:{port}", "Hello from Laura")) .Given(x => _steps.GivenThereIsAConfiguration(configuration)) .Given(x => _steps.GivenOcelotIsRunningWithPolly()) .When(x => _steps.WhenIGetUrlOnTheApiGateway("/")) @@ -152,7 +158,10 @@ [Fact] public void open_circuit_should_not_effect_different_reRoute() - { + { + var port1 = RandomPortFinder.GetRandomPort(); + var port2 = RandomPortFinder.GetRandomPort(); + var configuration = new FileConfiguration { ReRoutes = new List @@ -166,7 +175,7 @@ new FileHostAndPort { Host = "localhost", - Port = 51870, + Port = port1, } }, UpstreamPathTemplate = "/", @@ -187,7 +196,7 @@ new FileHostAndPort { Host = "localhost", - Port = 51880, + Port = port2, } }, UpstreamPathTemplate = "/working", @@ -196,8 +205,8 @@ } }; - this.Given(x => x.GivenThereIsAPossiblyBrokenServiceRunningOn("http://localhost:51870", "Hello from Laura")) - .And(x => x.GivenThereIsAServiceRunningOn("http://localhost:51880/", 200, "Hello from Tom", 0)) + this.Given(x => x.GivenThereIsAPossiblyBrokenServiceRunningOn($"http://localhost:{port1}", "Hello from Laura")) + .And(x => x.GivenThereIsAServiceRunningOn($"http://localhost:{port2}/", 200, "Hello from Tom", 0)) .And(x => _steps.GivenThereIsAConfiguration(configuration)) .And(x => _steps.GivenOcelotIsRunningWithPolly()) .And(x => _steps.WhenIGetUrlOnTheApiGateway("/")) diff --git a/test/Ocelot.AcceptanceTests/RandomPortFinder.cs b/test/Ocelot.AcceptanceTests/RandomPortFinder.cs new file mode 100644 index 00000000..1bb6b9f4 --- /dev/null +++ b/test/Ocelot.AcceptanceTests/RandomPortFinder.cs @@ -0,0 +1,58 @@ +namespace Ocelot.AcceptanceTests +{ + using System; + using System.Collections.Concurrent; + using System.Linq; + using System.Net; + using System.Net.Sockets; + + public static class RandomPortFinder + { + private const int TrialNumber = 100; + private const int BeginPortRange = 20000; + private const int EndPortRange = 45000; + private static readonly Random Random = new Random(); + private static readonly ConcurrentBag UsedPorts = new ConcurrentBag(); + + public static int GetRandomPort() + { + for (var i = 0; i < TrialNumber; i++) + { + var randomPort = Random.Next(BeginPortRange, EndPortRange); + + if (!PortInUse(randomPort)) + { + try + { + return UsePort(randomPort); + } + catch (Exception) + { + // ignored + } + } + } + + throw new Exception("Cannot find available port to bind to."); + } + + private static int UsePort(int randomPort) + { + UsedPorts.Add(randomPort); + + var ipe = new IPEndPoint(IPAddress.Loopback, randomPort); + + using (var socket = new Socket(ipe.AddressFamily, SocketType.Stream, ProtocolType.Tcp)) + { + socket.Bind(ipe); + socket.Close(); + return randomPort; + } + } + + private static bool PortInUse(int randomPort) + { + return UsedPorts.Any(p => p == randomPort); + } + } +} diff --git a/test/Ocelot.AcceptanceTests/ReasonPhraseTests.cs b/test/Ocelot.AcceptanceTests/ReasonPhraseTests.cs index 44874115..0fcddac2 100644 --- a/test/Ocelot.AcceptanceTests/ReasonPhraseTests.cs +++ b/test/Ocelot.AcceptanceTests/ReasonPhraseTests.cs @@ -25,6 +25,8 @@ namespace Ocelot.AcceptanceTests [Fact] public void should_return_reason_phrase() { + var port = RandomPortFinder.GetRandomPort(); + var configuration = new FileConfiguration { ReRoutes = new List @@ -38,7 +40,7 @@ namespace Ocelot.AcceptanceTests new FileHostAndPort { Host = "localhost", - Port = 51339, + Port = port, } }, UpstreamPathTemplate = "/", @@ -47,7 +49,7 @@ namespace Ocelot.AcceptanceTests } }; - this.Given(x => x.GivenThereIsAServiceRunningOn("http://localhost:51339", "/", "some reason")) + this.Given(x => x.GivenThereIsAServiceRunningOn($"http://localhost:{port}", "/", "some reason")) .And(x => _steps.GivenThereIsAConfiguration(configuration)) .And(x => _steps.GivenOcelotIsRunning()) .When(x => _steps.WhenIGetUrlOnTheApiGateway("/")) diff --git a/test/Ocelot.AcceptanceTests/RequestIdTests.cs b/test/Ocelot.AcceptanceTests/RequestIdTests.cs index bef0bc51..36c89f9d 100644 --- a/test/Ocelot.AcceptanceTests/RequestIdTests.cs +++ b/test/Ocelot.AcceptanceTests/RequestIdTests.cs @@ -21,7 +21,9 @@ [Fact] public void should_use_default_request_id_and_forward() - { + { + var port = RandomPortFinder.GetRandomPort(); + var configuration = new FileConfiguration { ReRoutes = new List @@ -34,7 +36,7 @@ new FileHostAndPort { Host = "localhost", - Port = 51873, + Port = port, } }, DownstreamScheme = "http", @@ -45,7 +47,7 @@ } }; - this.Given(x => x.GivenThereIsAServiceRunningOn("http://localhost:51873")) + this.Given(x => x.GivenThereIsAServiceRunningOn($"http://localhost:{port}")) .And(x => _steps.GivenThereIsAConfiguration(configuration)) .And(x => _steps.GivenOcelotIsRunning()) .When(x => _steps.WhenIGetUrlOnTheApiGateway("/")) @@ -55,7 +57,9 @@ [Fact] public void should_use_request_id_and_forward() - { + { + var port = RandomPortFinder.GetRandomPort(); + var configuration = new FileConfiguration { ReRoutes = new List @@ -68,7 +72,7 @@ new FileHostAndPort { Host = "localhost", - Port = 51873, + Port = port, } }, DownstreamScheme = "http", @@ -80,7 +84,7 @@ var requestId = Guid.NewGuid().ToString(); - this.Given(x => x.GivenThereIsAServiceRunningOn("http://localhost:51873")) + this.Given(x => x.GivenThereIsAServiceRunningOn($"http://localhost:{port}")) .And(x => _steps.GivenThereIsAConfiguration(configuration)) .And(x => _steps.GivenOcelotIsRunning()) .When(x => _steps.WhenIGetUrlOnTheApiGateway("/", requestId)) @@ -90,7 +94,9 @@ [Fact] public void should_use_global_request_id_and_forward() - { + { + var port = RandomPortFinder.GetRandomPort(); + var configuration = new FileConfiguration { ReRoutes = new List @@ -103,7 +109,7 @@ new FileHostAndPort { Host = "localhost", - Port = 51873, + Port = port, } }, DownstreamScheme = "http", @@ -119,7 +125,7 @@ var requestId = Guid.NewGuid().ToString(); - this.Given(x => x.GivenThereIsAServiceRunningOn("http://localhost:51873")) + this.Given(x => x.GivenThereIsAServiceRunningOn($"http://localhost:{port}")) .And(x => _steps.GivenThereIsAConfiguration(configuration)) .And(x => _steps.GivenOcelotIsRunning()) .When(x => _steps.WhenIGetUrlOnTheApiGateway("/", requestId)) @@ -129,7 +135,9 @@ [Fact] public void should_use_global_request_id_create_and_forward() - { + { + var port = RandomPortFinder.GetRandomPort(); + var configuration = new FileConfiguration { ReRoutes = new List @@ -142,7 +150,7 @@ new FileHostAndPort { Host = "localhost", - Port = 51873, + Port = port, } }, DownstreamScheme = "http", @@ -156,7 +164,7 @@ } }; - this.Given(x => x.GivenThereIsAServiceRunningOn("http://localhost:51873")) + this.Given(x => x.GivenThereIsAServiceRunningOn($"http://localhost:{port}")) .And(x => _steps.GivenThereIsAConfiguration(configuration)) .And(x => _steps.GivenOcelotIsRunning()) .When(x => _steps.WhenIGetUrlOnTheApiGateway("/")) diff --git a/test/Ocelot.AcceptanceTests/ResponseCodeTests.cs b/test/Ocelot.AcceptanceTests/ResponseCodeTests.cs index cd5be7a7..2eb35c62 100644 --- a/test/Ocelot.AcceptanceTests/ResponseCodeTests.cs +++ b/test/Ocelot.AcceptanceTests/ResponseCodeTests.cs @@ -20,7 +20,9 @@ namespace Ocelot.AcceptanceTests [Fact] public void should_return_response_304_when_service_returns_304() - { + { + var port = RandomPortFinder.GetRandomPort(); + var configuration = new FileConfiguration { ReRoutes = new List @@ -34,7 +36,7 @@ namespace Ocelot.AcceptanceTests new FileHostAndPort { Host = "localhost", - Port = 51092, + Port = port, } }, UpstreamPathTemplate = "/{everything}", @@ -43,7 +45,7 @@ namespace Ocelot.AcceptanceTests } }; - this.Given(x => x.GivenThereIsAServiceRunningOn("http://localhost:51092", "/inline.132.bundle.js", 304)) + this.Given(x => x.GivenThereIsAServiceRunningOn($"http://localhost:{port}", "/inline.132.bundle.js", 304)) .And(x => _steps.GivenThereIsAConfiguration(configuration)) .And(x => _steps.GivenOcelotIsRunning()) .When(x => _steps.WhenIGetUrlOnTheApiGateway("/inline.132.bundle.js")) diff --git a/test/Ocelot.AcceptanceTests/ReturnsErrorTests.cs b/test/Ocelot.AcceptanceTests/ReturnsErrorTests.cs index fd04af61..1ebc1113 100644 --- a/test/Ocelot.AcceptanceTests/ReturnsErrorTests.cs +++ b/test/Ocelot.AcceptanceTests/ReturnsErrorTests.cs @@ -21,6 +21,7 @@ [Fact] public void should_return_internal_server_error_if_downstream_service_returns_internal_server_error() { + var port = RandomPortFinder.GetRandomPort(); var configuration = new FileConfiguration { @@ -36,7 +37,7 @@ new FileHostAndPort { Host = "localhost", - Port = 53876, + Port = port, } }, DownstreamScheme = "http", @@ -44,7 +45,7 @@ } }; - this.Given(x => x.GivenThereIsAServiceRunningOn("http://localhost:53876")) + this.Given(x => x.GivenThereIsAServiceRunningOn($"http://localhost:{port}")) .And(x => _steps.GivenThereIsAConfiguration(configuration)) .And(x => _steps.GivenOcelotIsRunning()) .When(x => _steps.WhenIGetUrlOnTheApiGateway("/")) @@ -55,6 +56,8 @@ [Fact] public void should_log_warning_if_downstream_service_returns_internal_server_error() { + var port = RandomPortFinder.GetRandomPort(); + var configuration = new FileConfiguration { ReRoutes = new List @@ -69,7 +72,7 @@ new FileHostAndPort { Host = "localhost", - Port = 53876, + Port = port, }, }, DownstreamScheme = "http", @@ -77,7 +80,7 @@ }, }; - this.Given(x => x.GivenThereIsAServiceRunningOn("http://localhost:53876")) + this.Given(x => x.GivenThereIsAServiceRunningOn($"http://localhost:{port}")) .And(x => _steps.GivenThereIsAConfiguration(configuration)) .And(x => _steps.GivenOcelotIsRunningWithLogger()) .When(x => _steps.WhenIGetUrlOnTheApiGateway("/")) diff --git a/test/Ocelot.AcceptanceTests/RoutingTests.cs b/test/Ocelot.AcceptanceTests/RoutingTests.cs index 15eaf8d9..1ce53882 100644 --- a/test/Ocelot.AcceptanceTests/RoutingTests.cs +++ b/test/Ocelot.AcceptanceTests/RoutingTests.cs @@ -24,7 +24,7 @@ namespace Ocelot.AcceptanceTests [Fact] public void should_not_match_forward_slash_in_pattern_before_next_forward_slash() { - var port = 31879; + var port = RandomPortFinder.GetRandomPort(); var configuration = new FileConfiguration { ReRoutes = new List @@ -69,6 +69,8 @@ namespace Ocelot.AcceptanceTests [Fact] public void should_return_response_200_with_forward_slash_and_placeholder_only() { + var port = RandomPortFinder.GetRandomPort(); + var configuration = new FileConfiguration { ReRoutes = new List @@ -84,14 +86,14 @@ namespace Ocelot.AcceptanceTests new FileHostAndPort { Host = "localhost", - Port = 57873, + Port = port, } } } } }; - this.Given(x => x.GivenThereIsAServiceRunningOn("http://localhost:57873/", "/", 200, "Hello from Laura")) + this.Given(x => x.GivenThereIsAServiceRunningOn($"http://localhost:{port}/", "/", 200, "Hello from Laura")) .And(x => _steps.GivenThereIsAConfiguration(configuration)) .And(x => _steps.GivenOcelotIsRunning()) .When(x => _steps.WhenIGetUrlOnTheApiGateway("/")) @@ -103,6 +105,8 @@ namespace Ocelot.AcceptanceTests [Fact] public void should_return_response_200_favouring_forward_slash_with_path_route() { + var port = RandomPortFinder.GetRandomPort(); + var configuration = new FileConfiguration { ReRoutes = new List @@ -116,7 +120,7 @@ namespace Ocelot.AcceptanceTests new FileHostAndPort { Host = "localhost", - Port = 51880, + Port = port, } }, UpstreamPathTemplate = "/{url}", @@ -140,7 +144,7 @@ namespace Ocelot.AcceptanceTests } }; - this.Given(x => x.GivenThereIsAServiceRunningOn("http://localhost:51880/", "/test", 200, "Hello from Laura")) + this.Given(x => x.GivenThereIsAServiceRunningOn($"http://localhost:{port}/", "/test", 200, "Hello from Laura")) .And(x => _steps.GivenThereIsAConfiguration(configuration)) .And(x => _steps.GivenOcelotIsRunning()) .When(x => _steps.WhenIGetUrlOnTheApiGateway("/test")) @@ -152,6 +156,7 @@ namespace Ocelot.AcceptanceTests [Fact] public void should_return_response_200_favouring_forward_slash() { + var port = RandomPortFinder.GetRandomPort(); var configuration = new FileConfiguration { ReRoutes = new List @@ -180,7 +185,7 @@ namespace Ocelot.AcceptanceTests new FileHostAndPort { Host = "localhost", - Port = 50810, + Port = port, } }, UpstreamPathTemplate = "/", @@ -189,7 +194,7 @@ namespace Ocelot.AcceptanceTests } }; - this.Given(x => x.GivenThereIsAServiceRunningOn("http://localhost:50810/", "/", 200, "Hello from Laura")) + this.Given(x => x.GivenThereIsAServiceRunningOn($"http://localhost:{port}/", "/", 200, "Hello from Laura")) .And(x => _steps.GivenThereIsAConfiguration(configuration)) .And(x => _steps.GivenOcelotIsRunning()) .When(x => _steps.WhenIGetUrlOnTheApiGateway("/")) @@ -201,6 +206,8 @@ namespace Ocelot.AcceptanceTests [Fact] public void should_return_response_200_favouring_forward_slash_route_because_it_is_first() { + var port = RandomPortFinder.GetRandomPort(); + var configuration = new FileConfiguration { ReRoutes = new List @@ -214,7 +221,7 @@ namespace Ocelot.AcceptanceTests new FileHostAndPort { Host = "localhost", - Port = 51880, + Port = port, } }, UpstreamPathTemplate = "/", @@ -238,7 +245,7 @@ namespace Ocelot.AcceptanceTests } }; - this.Given(x => x.GivenThereIsAServiceRunningOn("http://localhost:51880/", "/", 200, "Hello from Laura")) + this.Given(x => x.GivenThereIsAServiceRunningOn($"http://localhost:{port}/", "/", 200, "Hello from Laura")) .And(x => _steps.GivenThereIsAConfiguration(configuration)) .And(x => _steps.GivenOcelotIsRunning()) .When(x => _steps.WhenIGetUrlOnTheApiGateway("/")) @@ -250,6 +257,8 @@ namespace Ocelot.AcceptanceTests [Fact] public void should_return_response_200_with_nothing_and_placeholder_only() { + var port = RandomPortFinder.GetRandomPort(); + var configuration = new FileConfiguration { ReRoutes = new List @@ -263,7 +272,7 @@ namespace Ocelot.AcceptanceTests new FileHostAndPort { Host = "localhost", - Port = 51005, + Port = port, } }, UpstreamPathTemplate = "/{url}", @@ -272,7 +281,7 @@ namespace Ocelot.AcceptanceTests } }; - this.Given(x => x.GivenThereIsAServiceRunningOn("http://localhost:51005", "/", 200, "Hello from Laura")) + this.Given(x => x.GivenThereIsAServiceRunningOn($"http://localhost:{port}", "/", 200, "Hello from Laura")) .And(x => _steps.GivenThereIsAConfiguration(configuration)) .And(x => _steps.GivenOcelotIsRunning()) .When(x => _steps.WhenIGetUrlOnTheApiGateway("")) @@ -284,6 +293,8 @@ namespace Ocelot.AcceptanceTests [Fact] public void should_return_response_200_with_simple_url() { + var port = RandomPortFinder.GetRandomPort(); + var configuration = new FileConfiguration { ReRoutes = new List @@ -297,7 +308,7 @@ namespace Ocelot.AcceptanceTests new FileHostAndPort { Host = "localhost", - Port = 58589, + Port = port, } }, UpstreamPathTemplate = "/", @@ -306,7 +317,7 @@ namespace Ocelot.AcceptanceTests } }; - this.Given(x => x.GivenThereIsAServiceRunningOn("http://localhost:58589", "/", 200, "Hello from Laura")) + this.Given(x => x.GivenThereIsAServiceRunningOn($"http://localhost:{port}", "/", 200, "Hello from Laura")) .And(x => _steps.GivenThereIsAConfiguration(configuration)) .And(x => _steps.GivenOcelotIsRunning()) .When(x => _steps.WhenIGetUrlOnTheApiGateway("/")) @@ -318,6 +329,8 @@ namespace Ocelot.AcceptanceTests [Fact] public void bug() { + var port = RandomPortFinder.GetRandomPort(); + var configuration = new FileConfiguration { ReRoutes = new List @@ -331,7 +344,7 @@ namespace Ocelot.AcceptanceTests new FileHostAndPort { Host = "localhost", - Port = 51874, + Port = port, } }, UpstreamPathTemplate = "/vacancy/", @@ -347,7 +360,7 @@ namespace Ocelot.AcceptanceTests new FileHostAndPort { Host = "localhost", - Port = 51874, + Port = port, } }, UpstreamPathTemplate = "/vacancy/{vacancyId}", @@ -357,7 +370,7 @@ namespace Ocelot.AcceptanceTests } }; - this.Given(x => x.GivenThereIsAServiceRunningOn("http://localhost:51874", "/api/v1/vacancy/1", 200, "Hello from Laura")) + this.Given(x => x.GivenThereIsAServiceRunningOn($"http://localhost:{port}", "/api/v1/vacancy/1", 200, "Hello from Laura")) .And(x => _steps.GivenThereIsAConfiguration(configuration)) .And(x => _steps.GivenOcelotIsRunning()) .When(x => _steps.WhenIGetUrlOnTheApiGateway("/vacancy/1")) @@ -369,6 +382,8 @@ namespace Ocelot.AcceptanceTests [Fact] public void should_return_response_200_when_path_missing_forward_slash_as_first_char() { + var port = RandomPortFinder.GetRandomPort(); + var configuration = new FileConfiguration { ReRoutes = new List @@ -382,7 +397,7 @@ namespace Ocelot.AcceptanceTests new FileHostAndPort { Host = "localhost", - Port = 51206, + Port = port, } }, UpstreamPathTemplate = "/", @@ -391,7 +406,7 @@ namespace Ocelot.AcceptanceTests } }; - this.Given(x => x.GivenThereIsAServiceRunningOn("http://localhost:51206", "/api/products", 200, "Hello from Laura")) + this.Given(x => x.GivenThereIsAServiceRunningOn($"http://localhost:{port}", "/api/products", 200, "Hello from Laura")) .And(x => _steps.GivenThereIsAConfiguration(configuration)) .And(x => _steps.GivenOcelotIsRunning()) .When(x => _steps.WhenIGetUrlOnTheApiGateway("/")) @@ -403,6 +418,8 @@ namespace Ocelot.AcceptanceTests [Fact] public void should_return_response_200_when_host_has_trailing_slash() { + var port = RandomPortFinder.GetRandomPort(); + var configuration = new FileConfiguration { ReRoutes = new List @@ -416,7 +433,7 @@ namespace Ocelot.AcceptanceTests new FileHostAndPort { Host = "localhost", - Port = 51990, + Port = port, } }, UpstreamPathTemplate = "/", @@ -425,7 +442,7 @@ namespace Ocelot.AcceptanceTests } }; - this.Given(x => x.GivenThereIsAServiceRunningOn("http://localhost:51990", "/api/products", 200, "Hello from Laura")) + this.Given(x => x.GivenThereIsAServiceRunningOn($"http://localhost:{port}", "/api/products", 200, "Hello from Laura")) .And(x => _steps.GivenThereIsAConfiguration(configuration)) .And(x => _steps.GivenOcelotIsRunning()) .When(x => _steps.WhenIGetUrlOnTheApiGateway("/")) @@ -437,6 +454,8 @@ namespace Ocelot.AcceptanceTests [Fact] public void should_return_ok_when_upstream_url_ends_with_forward_slash_but_template_does_not() { + var port = RandomPortFinder.GetRandomPort(); + var configuration = new FileConfiguration { ReRoutes = new List @@ -450,7 +469,7 @@ namespace Ocelot.AcceptanceTests new FileHostAndPort { Host = "localhost", - Port = 58804, + Port = port, } }, UpstreamPathTemplate = "/products/", @@ -459,7 +478,7 @@ namespace Ocelot.AcceptanceTests } }; - this.Given(x => x.GivenThereIsAServiceRunningOn("http://localhost:58804", "/products", 200, "Hello from Laura")) + this.Given(x => x.GivenThereIsAServiceRunningOn($"http://localhost:{port}", "/products", 200, "Hello from Laura")) .And(x => _steps.GivenThereIsAConfiguration(configuration)) .And(x => _steps.GivenOcelotIsRunning()) .When(x => _steps.WhenIGetUrlOnTheApiGateway("/products")) @@ -471,6 +490,8 @@ namespace Ocelot.AcceptanceTests [Fact] public void should_return_not_found_when_upstream_url_ends_with_forward_slash_but_template_does_not() { + var port = RandomPortFinder.GetRandomPort(); + var configuration = new FileConfiguration { ReRoutes = new List @@ -484,7 +505,7 @@ namespace Ocelot.AcceptanceTests new FileHostAndPort { Host = "localhost", - Port = 54015, + Port = port, } }, UpstreamPathTemplate = "/products", @@ -493,7 +514,7 @@ namespace Ocelot.AcceptanceTests } }; - this.Given(x => x.GivenThereIsAServiceRunningOn("http://localhost:54015", "/products", 200, "Hello from Laura")) + this.Given(x => x.GivenThereIsAServiceRunningOn($"http://localhost:{port}", "/products", 200, "Hello from Laura")) .And(x => _steps.GivenThereIsAConfiguration(configuration)) .And(x => _steps.GivenOcelotIsRunning()) .When(x => _steps.WhenIGetUrlOnTheApiGateway("/products/")) @@ -504,6 +525,8 @@ namespace Ocelot.AcceptanceTests [Fact] public void should_return_not_found() { + var port = RandomPortFinder.GetRandomPort(); + var configuration = new FileConfiguration { ReRoutes = new List @@ -517,7 +540,7 @@ namespace Ocelot.AcceptanceTests new FileHostAndPort { Host = "localhost", - Port = 54072, + Port = port, } }, UpstreamPathTemplate = "/products/{productId}", @@ -526,7 +549,7 @@ namespace Ocelot.AcceptanceTests } }; - this.Given(x => x.GivenThereIsAServiceRunningOn("http://localhost:54072", "/products", 200, "Hello from Laura")) + this.Given(x => x.GivenThereIsAServiceRunningOn($"http://localhost:{port}", "/products", 200, "Hello from Laura")) .And(x => _steps.GivenThereIsAConfiguration(configuration)) .And(x => _steps.GivenOcelotIsRunning()) .When(x => _steps.WhenIGetUrlOnTheApiGateway("/products/")) @@ -537,6 +560,8 @@ namespace Ocelot.AcceptanceTests [Fact] public void should_return_response_200_with_complex_url() { + var port = RandomPortFinder.GetRandomPort(); + var configuration = new FileConfiguration { ReRoutes = new List @@ -550,7 +575,7 @@ namespace Ocelot.AcceptanceTests new FileHostAndPort { Host = "localhost", - Port = 55961, + Port = port, } }, UpstreamPathTemplate = "/products/{productId}", @@ -559,7 +584,7 @@ namespace Ocelot.AcceptanceTests } }; - this.Given(x => x.GivenThereIsAServiceRunningOn("http://localhost:55961", "/api/products/1", 200, "Some Product")) + this.Given(x => x.GivenThereIsAServiceRunningOn($"http://localhost:{port}", "/api/products/1", 200, "Some Product")) .And(x => _steps.GivenThereIsAConfiguration(configuration)) .And(x => _steps.GivenOcelotIsRunning()) .When(x => _steps.WhenIGetUrlOnTheApiGateway("/products/1")) @@ -571,6 +596,8 @@ namespace Ocelot.AcceptanceTests [Fact] public void should_return_response_200_with_complex_url_that_starts_with_placeholder() { + var port = RandomPortFinder.GetRandomPort(); + var configuration = new FileConfiguration { ReRoutes = new List @@ -584,7 +611,7 @@ namespace Ocelot.AcceptanceTests new FileHostAndPort { Host = "localhost", - Port = 51116, + Port = port, } }, UpstreamPathTemplate = "/{variantId}/products/{productId}", @@ -593,7 +620,7 @@ namespace Ocelot.AcceptanceTests } }; - this.Given(x => x.GivenThereIsAServiceRunningOn("http://localhost:51116", "/api/23/products/1", 200, "Some Product")) + this.Given(x => x.GivenThereIsAServiceRunningOn($"http://localhost:{port}", "/api/23/products/1", 200, "Some Product")) .And(x => _steps.GivenThereIsAConfiguration(configuration)) .And(x => _steps.GivenOcelotIsRunning()) .When(x => _steps.WhenIGetUrlOnTheApiGateway("23/products/1")) @@ -605,6 +632,8 @@ namespace Ocelot.AcceptanceTests [Fact] public void should_not_add_trailing_slash_to_downstream_url() { + var port = RandomPortFinder.GetRandomPort(); + var configuration = new FileConfiguration { ReRoutes = new List @@ -618,7 +647,7 @@ namespace Ocelot.AcceptanceTests new FileHostAndPort { Host = "localhost", - Port = 51809, + Port = port, } }, UpstreamPathTemplate = "/products/{productId}", @@ -627,7 +656,7 @@ namespace Ocelot.AcceptanceTests } }; - this.Given(x => GivenThereIsAServiceRunningOn("http://localhost:51809", "/api/products/1", 200, "Some Product")) + this.Given(x => GivenThereIsAServiceRunningOn($"http://localhost:{port}", "/api/products/1", 200, "Some Product")) .And(x => _steps.GivenThereIsAConfiguration(configuration)) .And(x => _steps.GivenOcelotIsRunning()) .When(x => _steps.WhenIGetUrlOnTheApiGateway("/products/1")) @@ -638,6 +667,8 @@ namespace Ocelot.AcceptanceTests [Fact] public void should_return_response_201_with_simple_url() { + var port = RandomPortFinder.GetRandomPort(); + var configuration = new FileConfiguration { ReRoutes = new List @@ -650,7 +681,7 @@ namespace Ocelot.AcceptanceTests new FileHostAndPort { Host = "localhost", - Port = 56615, + Port = port, } }, DownstreamScheme = "http", @@ -660,7 +691,7 @@ namespace Ocelot.AcceptanceTests } }; - this.Given(x => x.GivenThereIsAServiceRunningOn("http://localhost:56615", "/", 201, string.Empty)) + this.Given(x => x.GivenThereIsAServiceRunningOn($"http://localhost:{port}", "/", 201, string.Empty)) .And(x => _steps.GivenThereIsAConfiguration(configuration)) .And(x => _steps.GivenOcelotIsRunning()) .And(x => _steps.GivenThePostHasContent("postContent")) @@ -672,6 +703,8 @@ namespace Ocelot.AcceptanceTests [Fact] public void should_return_response_201_with_complex_query_string() { + var port = RandomPortFinder.GetRandomPort(); + var configuration = new FileConfiguration { ReRoutes = new List @@ -686,7 +719,7 @@ namespace Ocelot.AcceptanceTests new FileHostAndPort { Host = "localhost", - Port = 57771, + Port = port, } }, UpstreamHttpMethod = new List { "Get" }, @@ -694,7 +727,7 @@ namespace Ocelot.AcceptanceTests } }; - this.Given(x => x.GivenThereIsAServiceRunningOn("http://localhost:57771", "/newThing", 200, "Hello from Laura")) + this.Given(x => x.GivenThereIsAServiceRunningOn($"http://localhost:{port}", "/newThing", 200, "Hello from Laura")) .And(x => _steps.GivenThereIsAConfiguration(configuration)) .And(x => _steps.GivenOcelotIsRunning()) .When(x => _steps.WhenIGetUrlOnTheApiGateway("/newThing?DeviceType=IphoneApp&Browser=moonpigIphone&BrowserString=-&CountryCode=123&DeviceName=iPhone 5 (GSM+CDMA)&OperatingSystem=iPhone OS 7.1.2&BrowserVersion=3708AdHoc&ipAddress=-")) @@ -706,6 +739,8 @@ namespace Ocelot.AcceptanceTests [Fact] public void should_return_response_200_with_placeholder_for_final_url_path() { + var port = RandomPortFinder.GetRandomPort(); + var configuration = new FileConfiguration { ReRoutes = new List @@ -719,7 +754,7 @@ namespace Ocelot.AcceptanceTests new FileHostAndPort { Host = "localhost", - Port = 55609, + Port = port, } }, UpstreamPathTemplate = "/myApp1Name/api/{urlPath}", @@ -728,7 +763,7 @@ namespace Ocelot.AcceptanceTests } }; - this.Given(x => x.GivenThereIsAServiceRunningOn("http://localhost:55609", "/api/products/1", 200, "Some Product")) + this.Given(x => x.GivenThereIsAServiceRunningOn($"http://localhost:{port}", "/api/products/1", 200, "Some Product")) .And(x => _steps.GivenThereIsAConfiguration(configuration)) .And(x => _steps.GivenOcelotIsRunning()) .When(x => _steps.WhenIGetUrlOnTheApiGateway("/myApp1Name/api/products/1")) @@ -740,6 +775,8 @@ namespace Ocelot.AcceptanceTests [Fact] public void should_return_response_201_with_simple_url_and_multiple_upstream_http_method() { + var port = RandomPortFinder.GetRandomPort(); + var configuration = new FileConfiguration { ReRoutes = new List @@ -752,7 +789,7 @@ namespace Ocelot.AcceptanceTests new FileHostAndPort { Host = "localhost", - Port = 59911, + Port = port, } }, DownstreamScheme = "http", @@ -762,7 +799,7 @@ namespace Ocelot.AcceptanceTests } }; - this.Given(x => x.GivenThereIsAServiceRunningOn("http://localhost:59911", "", 201, string.Empty)) + this.Given(x => x.GivenThereIsAServiceRunningOn($"http://localhost:{port}", "", 201, string.Empty)) .And(x => _steps.GivenThereIsAConfiguration(configuration)) .And(x => _steps.GivenOcelotIsRunning()) .And(x => _steps.GivenThePostHasContent("postContent")) @@ -774,6 +811,8 @@ namespace Ocelot.AcceptanceTests [Fact] public void should_return_response_200_with_simple_url_and_any_upstream_http_method() { + var port = RandomPortFinder.GetRandomPort(); + var configuration = new FileConfiguration { ReRoutes = new List @@ -786,7 +825,7 @@ namespace Ocelot.AcceptanceTests new FileHostAndPort { Host = "localhost", - Port = 59187, + Port = port, } }, DownstreamScheme = "http", @@ -796,7 +835,7 @@ namespace Ocelot.AcceptanceTests } }; - this.Given(x => x.GivenThereIsAServiceRunningOn("http://localhost:59187", "/", 200, "Hello from Laura")) + this.Given(x => x.GivenThereIsAServiceRunningOn($"http://localhost:{port}", "/", 200, "Hello from Laura")) .And(x => _steps.GivenThereIsAConfiguration(configuration)) .And(x => _steps.GivenOcelotIsRunning()) .When(x => _steps.WhenIGetUrlOnTheApiGateway("/")) @@ -808,6 +847,8 @@ namespace Ocelot.AcceptanceTests [Fact] public void should_return_404_when_calling_upstream_route_with_no_matching_downstream_re_route_github_issue_134() { + var port = RandomPortFinder.GetRandomPort(); + var configuration = new FileConfiguration { ReRoutes = new List @@ -821,7 +862,7 @@ namespace Ocelot.AcceptanceTests new FileHostAndPort { Host = "localhost", - Port = 54079, + Port = port, } }, UpstreamPathTemplate = "/vacancy/", @@ -837,7 +878,7 @@ namespace Ocelot.AcceptanceTests new FileHostAndPort { Host = "localhost", - Port = 54079, + Port = port, } }, UpstreamPathTemplate = "/vacancy/{vacancyId}", @@ -847,7 +888,7 @@ namespace Ocelot.AcceptanceTests } }; - this.Given(x => x.GivenThereIsAServiceRunningOn("http://localhost:54079", "/api/v1/vacancy/1", 200, "Hello from Laura")) + this.Given(x => x.GivenThereIsAServiceRunningOn($"http://localhost:{port}", "/api/v1/vacancy/1", 200, "Hello from Laura")) .And(x => _steps.GivenThereIsAConfiguration(configuration)) .And(x => _steps.GivenOcelotIsRunning()) .When(x => _steps.WhenIGetUrlOnTheApiGateway("api/vacancy/1")) @@ -858,6 +899,8 @@ namespace Ocelot.AcceptanceTests [Fact] public void should_not_set_trailing_slash_on_url_template() { + var port = RandomPortFinder.GetRandomPort(); + var configuration = new FileConfiguration { ReRoutes = new List @@ -871,7 +914,7 @@ namespace Ocelot.AcceptanceTests new FileHostAndPort { Host = "localhost", - Port = 51899, + Port = port, } }, UpstreamPathTemplate = "/platform/{url}", @@ -880,7 +923,7 @@ namespace Ocelot.AcceptanceTests } }; - this.Given(x => x.GivenThereIsAServiceRunningOn("http://localhost:51899", "/api/swagger/lib/backbone-min.js", 200, "Hello from Laura")) + this.Given(x => x.GivenThereIsAServiceRunningOn($"http://localhost:{port}", "/api/swagger/lib/backbone-min.js", 200, "Hello from Laura")) .And(x => _steps.GivenThereIsAConfiguration(configuration)) .And(x => _steps.GivenOcelotIsRunning()) .When(x => _steps.WhenIGetUrlOnTheApiGateway("/platform/swagger/lib/backbone-min.js")) @@ -893,6 +936,8 @@ namespace Ocelot.AcceptanceTests [Fact] public void should_use_priority() { + var port = RandomPortFinder.GetRandomPort(); + var configuration = new FileConfiguration { ReRoutes = new List @@ -924,14 +969,14 @@ namespace Ocelot.AcceptanceTests new FileHostAndPort { Host = "localhost", - Port = 52879, + Port = port, } }, } } }; - this.Given(x => x.GivenThereIsAServiceRunningOn("http://localhost:52879/", "/goods/delete", 200, "Hello from Laura")) + this.Given(x => x.GivenThereIsAServiceRunningOn($"http://localhost:{port}/", "/goods/delete", 200, "Hello from Laura")) .And(x => _steps.GivenThereIsAConfiguration(configuration)) .And(x => _steps.GivenOcelotIsRunning()) .When(x => _steps.WhenIGetUrlOnTheApiGateway("/goods/delete")) @@ -943,7 +988,8 @@ namespace Ocelot.AcceptanceTests [Fact] public void should_match_multiple_paths_with_catch_all() { - var port = 61999; + var port = RandomPortFinder.GetRandomPort(); + var configuration = new FileConfiguration { ReRoutes = new List @@ -978,6 +1024,8 @@ namespace Ocelot.AcceptanceTests [Fact] public void should_fix_issue_271() { + var port = RandomPortFinder.GetRandomPort(); + var configuration = new FileConfiguration { ReRoutes = new List @@ -993,7 +1041,7 @@ namespace Ocelot.AcceptanceTests new FileHostAndPort { Host = "localhost", - Port = 54879, + Port = port, } }, }, @@ -1015,7 +1063,7 @@ namespace Ocelot.AcceptanceTests } }; - this.Given(x => x.GivenThereIsAServiceRunningOn("http://localhost:54879/", "/api/v1/modules/Test", 200, "Hello from Laura")) + this.Given(x => x.GivenThereIsAServiceRunningOn($"http://localhost:{port}/", "/api/v1/modules/Test", 200, "Hello from Laura")) .And(x => _steps.GivenThereIsAConfiguration(configuration)) .And(x => _steps.GivenOcelotIsRunning()) .When(x => _steps.WhenIGetUrlOnTheApiGateway("/api/v1/modules/Test")) diff --git a/test/Ocelot.AcceptanceTests/RoutingWithQueryStringTests.cs b/test/Ocelot.AcceptanceTests/RoutingWithQueryStringTests.cs index 58e54b2f..c8339381 100644 --- a/test/Ocelot.AcceptanceTests/RoutingWithQueryStringTests.cs +++ b/test/Ocelot.AcceptanceTests/RoutingWithQueryStringTests.cs @@ -24,6 +24,7 @@ namespace Ocelot.AcceptanceTests { var subscriptionId = Guid.NewGuid().ToString(); var unitId = Guid.NewGuid().ToString(); + var port = RandomPortFinder.GetRandomPort(); var configuration = new FileConfiguration { @@ -38,7 +39,7 @@ namespace Ocelot.AcceptanceTests new FileHostAndPort { Host = "localhost", - Port = 61879, + Port = port, } }, UpstreamPathTemplate = "/api/units/{subscriptionId}/{unitId}/updates", @@ -47,7 +48,7 @@ namespace Ocelot.AcceptanceTests } }; - this.Given(x => x.GivenThereIsAServiceRunningOn("http://localhost:61879", $"/api/subscriptions/{subscriptionId}/updates", $"?unitId={unitId}", 200, "Hello from Laura")) + this.Given(x => x.GivenThereIsAServiceRunningOn($"http://localhost:{port}", $"/api/subscriptions/{subscriptionId}/updates", $"?unitId={unitId}", 200, "Hello from Laura")) .And(x => _steps.GivenThereIsAConfiguration(configuration)) .And(x => _steps.GivenOcelotIsRunning()) .When(x => _steps.WhenIGetUrlOnTheApiGateway($"/api/units/{subscriptionId}/{unitId}/updates")) @@ -61,7 +62,7 @@ namespace Ocelot.AcceptanceTests { var subscriptionId = Guid.NewGuid().ToString(); var unitId = Guid.NewGuid().ToString(); - var port = 57359; + var port = RandomPortFinder.GetRandomPort(); var configuration = new FileConfiguration { @@ -99,6 +100,7 @@ namespace Ocelot.AcceptanceTests { var subscriptionId = Guid.NewGuid().ToString(); var unitId = Guid.NewGuid().ToString(); + var port = RandomPortFinder.GetRandomPort(); var configuration = new FileConfiguration { @@ -113,7 +115,7 @@ namespace Ocelot.AcceptanceTests new FileHostAndPort { Host = "localhost", - Port = 64879, + Port = port, } }, UpstreamPathTemplate = "/api/subscriptions/{subscriptionId}/updates?unitId={unitId}", @@ -122,7 +124,7 @@ namespace Ocelot.AcceptanceTests } }; - this.Given(x => x.GivenThereIsAServiceRunningOn("http://localhost:64879", $"/api/units/{subscriptionId}/{unitId}/updates", "", 200, "Hello from Laura")) + this.Given(x => x.GivenThereIsAServiceRunningOn($"http://localhost:{port}", $"/api/units/{subscriptionId}/{unitId}/updates", "", 200, "Hello from Laura")) .And(x => _steps.GivenThereIsAConfiguration(configuration)) .And(x => _steps.GivenOcelotIsRunning()) .When(x => _steps.WhenIGetUrlOnTheApiGateway($"/api/subscriptions/{subscriptionId}/updates?unitId={unitId}")) @@ -136,6 +138,7 @@ namespace Ocelot.AcceptanceTests { var subscriptionId = Guid.NewGuid().ToString(); var unitId = Guid.NewGuid().ToString(); + var port = RandomPortFinder.GetRandomPort(); var configuration = new FileConfiguration { @@ -150,7 +153,7 @@ namespace Ocelot.AcceptanceTests new FileHostAndPort { Host = "localhost", - Port = 64879, + Port = port, } }, UpstreamPathTemplate = "/api/subscriptions/{subscriptionId}/updates?unitId={unitId}", @@ -159,7 +162,7 @@ namespace Ocelot.AcceptanceTests } }; - this.Given(x => x.GivenThereIsAServiceRunningOn("http://localhost:64879", $"/api/units/{subscriptionId}/{unitId}/updates", "", 200, "Hello from Laura")) + this.Given(x => x.GivenThereIsAServiceRunningOn($"http://localhost:{port}", $"/api/units/{subscriptionId}/{unitId}/updates", "", 200, "Hello from Laura")) .And(x => _steps.GivenThereIsAConfiguration(configuration)) .And(x => _steps.GivenOcelotIsRunning()) .When(x => _steps.WhenIGetUrlOnTheApiGateway($"/api/subscriptions/{subscriptionId}/updates")) @@ -172,6 +175,7 @@ namespace Ocelot.AcceptanceTests { var subscriptionId = Guid.NewGuid().ToString(); var unitId = Guid.NewGuid().ToString(); + var port = RandomPortFinder.GetRandomPort(); var configuration = new FileConfiguration { @@ -186,7 +190,7 @@ namespace Ocelot.AcceptanceTests new FileHostAndPort { Host = "localhost", - Port = 64879, + Port = port, } }, UpstreamPathTemplate = "/api/subscriptions/{subscriptionId}/updates?unitId={unitId}", @@ -195,7 +199,7 @@ namespace Ocelot.AcceptanceTests } }; - this.Given(x => x.GivenThereIsAServiceRunningOn("http://localhost:64879", $"/api/units/{subscriptionId}/{unitId}/updates", "", 200, "Hello from Laura")) + this.Given(x => x.GivenThereIsAServiceRunningOn($"http://localhost:{port}", $"/api/units/{subscriptionId}/{unitId}/updates", "", 200, "Hello from Laura")) .And(x => _steps.GivenThereIsAConfiguration(configuration)) .And(x => _steps.GivenOcelotIsRunning()) .When(x => _steps.WhenIGetUrlOnTheApiGateway($"/api/subscriptions/{subscriptionId}/updates?test=1")) @@ -208,6 +212,7 @@ namespace Ocelot.AcceptanceTests { var subscriptionId = Guid.NewGuid().ToString(); var unitId = Guid.NewGuid().ToString(); + var port = RandomPortFinder.GetRandomPort(); var configuration = new FileConfiguration { @@ -222,7 +227,7 @@ namespace Ocelot.AcceptanceTests new FileHostAndPort { Host = "localhost", - Port = 64879, + Port = port, } }, UpstreamPathTemplate = "/api/subscriptions/{subscriptionId}/updates?unitId={unitId}", @@ -231,7 +236,7 @@ namespace Ocelot.AcceptanceTests } }; - this.Given(x => x.GivenThereIsAServiceRunningOn("http://localhost:64879", $"/api/units/{subscriptionId}/{unitId}/updates", "?productId=1", 200, "Hello from Laura")) + this.Given(x => x.GivenThereIsAServiceRunningOn($"http://localhost:{port}", $"/api/units/{subscriptionId}/{unitId}/updates", "?productId=1", 200, "Hello from Laura")) .And(x => _steps.GivenThereIsAConfiguration(configuration)) .And(x => _steps.GivenOcelotIsRunning()) .When(x => _steps.WhenIGetUrlOnTheApiGateway($"/api/subscriptions/{subscriptionId}/updates?unitId={unitId}&productId=1")) diff --git a/test/Ocelot.AcceptanceTests/ServiceDiscoveryTests.cs b/test/Ocelot.AcceptanceTests/ServiceDiscoveryTests.cs index b464a3d1..c3d5479c 100644 --- a/test/Ocelot.AcceptanceTests/ServiceDiscoveryTests.cs +++ b/test/Ocelot.AcceptanceTests/ServiceDiscoveryTests.cs @@ -33,10 +33,12 @@ [Fact] public void should_use_consul_service_discovery_and_load_balance_request() { - var consulPort = 8502; + var consulPort = RandomPortFinder.GetRandomPort(); + var servicePort1 = RandomPortFinder.GetRandomPort(); + var servicePort2 = RandomPortFinder.GetRandomPort(); var serviceName = "product"; - var downstreamServiceOneUrl = "http://localhost:50881"; - var downstreamServiceTwoUrl = "http://localhost:50882"; + var downstreamServiceOneUrl = $"http://localhost:{servicePort1}"; + var downstreamServiceTwoUrl = $"http://localhost:{servicePort2}"; var fakeConsulServiceDiscoveryUrl = $"http://localhost:{consulPort}"; var serviceEntryOne = new ServiceEntry() { @@ -44,7 +46,7 @@ { Service = serviceName, Address = "localhost", - Port = 50881, + Port = servicePort1, ID = Guid.NewGuid().ToString(), Tags = new string[0] }, @@ -55,7 +57,7 @@ { Service = serviceName, Address = "localhost", - Port = 50882, + Port = servicePort2, ID = Guid.NewGuid().ToString(), Tags = new string[0] }, @@ -100,9 +102,10 @@ [Fact] public void should_handle_request_to_consul_for_downstream_service_and_make_request() { - const int consulPort = 8505; + int consulPort = RandomPortFinder.GetRandomPort(); + int servicePort = RandomPortFinder.GetRandomPort(); const string serviceName = "web"; - const string downstreamServiceOneUrl = "http://localhost:8080"; + string downstreamServiceOneUrl = $"http://localhost:{servicePort}"; var fakeConsulServiceDiscoveryUrl = $"http://localhost:{consulPort}"; var serviceEntryOne = new ServiceEntry() { @@ -110,7 +113,7 @@ { Service = serviceName, Address = "localhost", - Port = 8080, + Port = servicePort, ID = "web_90_0_2_224_8080", Tags = new[] { "version-v1" } }, @@ -154,9 +157,9 @@ [Fact] public void should_handle_request_to_consul_for_downstream_service_and_make_request_no_re_routes() { - const int consulPort = 8513; + int consulPort = RandomPortFinder.GetRandomPort(); const string serviceName = "web"; - const int downstreamServicePort = 8087; + int downstreamServicePort = RandomPortFinder.GetRandomPort(); var downstreamServiceOneUrl = $"http://localhost:{downstreamServicePort}"; var fakeConsulServiceDiscoveryUrl = $"http://localhost:{consulPort}"; var serviceEntryOne = new ServiceEntry() @@ -204,10 +207,10 @@ [Fact] public void should_use_consul_service_discovery_and_load_balance_request_no_re_routes() { - var consulPort = 8510; + var consulPort = RandomPortFinder.GetRandomPort(); var serviceName = "product"; - var serviceOnePort = 50888; - var serviceTwoPort = 50889; + var serviceOnePort = RandomPortFinder.GetRandomPort(); + var serviceTwoPort = RandomPortFinder.GetRandomPort(); var downstreamServiceOneUrl = $"http://localhost:{serviceOnePort}"; var downstreamServiceTwoUrl = $"http://localhost:{serviceTwoPort}"; var fakeConsulServiceDiscoveryUrl = $"http://localhost:{consulPort}"; @@ -264,9 +267,10 @@ public void should_use_token_to_make_request_to_consul() { var token = "abctoken"; - var consulPort = 8515; + var consulPort = RandomPortFinder.GetRandomPort(); var serviceName = "web"; - var downstreamServiceOneUrl = "http://localhost:8081"; + var servicePort = RandomPortFinder.GetRandomPort(); + var downstreamServiceOneUrl = $"http://localhost:{servicePort}"; var fakeConsulServiceDiscoveryUrl = $"http://localhost:{consulPort}"; var serviceEntryOne = new ServiceEntry() { @@ -274,7 +278,7 @@ { Service = serviceName, Address = "localhost", - Port = 8081, + Port = servicePort, ID = "web_90_0_2_224_8080", Tags = new[] { "version-v1" } }, @@ -320,10 +324,12 @@ [Fact] public void should_send_request_to_service_after_it_becomes_available_in_consul() { - var consulPort = 8501; + var consulPort = RandomPortFinder.GetRandomPort(); var serviceName = "product"; - var downstreamServiceOneUrl = "http://localhost:50879"; - var downstreamServiceTwoUrl = "http://localhost:50880"; + var servicePort1 = RandomPortFinder.GetRandomPort(); + var servicePort2 = RandomPortFinder.GetRandomPort(); + var downstreamServiceOneUrl = $"http://localhost:{servicePort1}"; + var downstreamServiceTwoUrl = $"http://localhost:{servicePort2}"; var fakeConsulServiceDiscoveryUrl = $"http://localhost:{consulPort}"; var serviceEntryOne = new ServiceEntry() { @@ -331,7 +337,7 @@ { Service = serviceName, Address = "localhost", - Port = 50879, + Port = servicePort1, ID = Guid.NewGuid().ToString(), Tags = new string[0] }, @@ -342,7 +348,7 @@ { Service = serviceName, Address = "localhost", - Port = 50880, + Port = servicePort2, ID = Guid.NewGuid().ToString(), Tags = new string[0] }, @@ -396,9 +402,9 @@ [Fact] public void should_handle_request_to_poll_consul_for_downstream_service_and_make_request() { - const int consulPort = 8518; + int consulPort = RandomPortFinder.GetRandomPort(); const string serviceName = "web"; - const int downstreamServicePort = 8082; + int downstreamServicePort = RandomPortFinder.GetRandomPort(); var downstreamServiceOneUrl = $"http://localhost:{downstreamServicePort}"; var fakeConsulServiceDiscoveryUrl = $"http://localhost:{consulPort}"; var serviceEntryOne = new ServiceEntry() diff --git a/test/Ocelot.AcceptanceTests/ServiceFabricTests.cs b/test/Ocelot.AcceptanceTests/ServiceFabricTests.cs index 57dd3855..03643a7f 100644 --- a/test/Ocelot.AcceptanceTests/ServiceFabricTests.cs +++ b/test/Ocelot.AcceptanceTests/ServiceFabricTests.cs @@ -23,6 +23,8 @@ namespace Ocelot.AcceptanceTests [Fact] public void should_fix_issue_555() { + var port = RandomPortFinder.GetRandomPort(); + var configuration = new FileConfiguration { ReRoutes = new List @@ -41,13 +43,13 @@ namespace Ocelot.AcceptanceTests ServiceDiscoveryProvider = new FileServiceDiscoveryProvider() { Host = "localhost", - Port = 19081, + Port = port, Type = "ServiceFabric" } } }; - this.Given(x => x.GivenThereIsAServiceRunningOn("http://localhost:19081", "/OcelotServiceApplication/OcelotApplicationService/a", 200, "Hello from Laura", "b=c")) + this.Given(x => x.GivenThereIsAServiceRunningOn($"http://localhost:{port}", "/OcelotServiceApplication/OcelotApplicationService/a", 200, "Hello from Laura", "b=c")) .And(x => _steps.GivenThereIsAConfiguration(configuration)) .And(x => _steps.GivenOcelotIsRunning()) .When(x => _steps.WhenIGetUrlOnTheApiGateway("/a?b=c")) @@ -59,6 +61,8 @@ namespace Ocelot.AcceptanceTests [Fact] public void should_support_service_fabric_naming_and_dns_service_stateless_and_guest() { + var port = RandomPortFinder.GetRandomPort(); + var configuration = new FileConfiguration { ReRoutes = new List @@ -77,13 +81,13 @@ namespace Ocelot.AcceptanceTests ServiceDiscoveryProvider = new FileServiceDiscoveryProvider() { Host = "localhost", - Port = 19081, + Port = port, Type = "ServiceFabric" } } }; - this.Given(x => x.GivenThereIsAServiceRunningOn("http://localhost:19081", "/OcelotServiceApplication/OcelotApplicationService/api/values", 200, "Hello from Laura", "test=best")) + this.Given(x => x.GivenThereIsAServiceRunningOn($"http://localhost:{port}", "/OcelotServiceApplication/OcelotApplicationService/api/values", 200, "Hello from Laura", "test=best")) .And(x => _steps.GivenThereIsAConfiguration(configuration)) .And(x => _steps.GivenOcelotIsRunning()) .When(x => _steps.WhenIGetUrlOnTheApiGateway("/EquipmentInterfaces?test=best")) @@ -95,6 +99,8 @@ namespace Ocelot.AcceptanceTests [Fact] public void should_support_service_fabric_naming_and_dns_service_statefull_and_actors() { + var port = RandomPortFinder.GetRandomPort(); + var configuration = new FileConfiguration { ReRoutes = new List @@ -113,13 +119,13 @@ namespace Ocelot.AcceptanceTests ServiceDiscoveryProvider = new FileServiceDiscoveryProvider() { Host = "localhost", - Port = 19081, + Port = port, Type = "ServiceFabric" } } }; - this.Given(x => x.GivenThereIsAServiceRunningOn("http://localhost:19081", "/OcelotServiceApplication/OcelotApplicationService/api/values", 200, "Hello from Laura", "PartitionKind=test&PartitionKey=1")) + this.Given(x => x.GivenThereIsAServiceRunningOn($"http://localhost:{port}", "/OcelotServiceApplication/OcelotApplicationService/api/values", 200, "Hello from Laura", "PartitionKind=test&PartitionKey=1")) .And(x => _steps.GivenThereIsAConfiguration(configuration)) .And(x => _steps.GivenOcelotIsRunning()) .When(x => _steps.WhenIGetUrlOnTheApiGateway("/EquipmentInterfaces?PartitionKind=test&PartitionKey=1")) @@ -131,6 +137,8 @@ namespace Ocelot.AcceptanceTests [Fact] public void should_support_placeholder_in_service_fabric_service_name() { + var port = RandomPortFinder.GetRandomPort(); + var configuration = new FileConfiguration { ReRoutes = new List @@ -149,13 +157,13 @@ namespace Ocelot.AcceptanceTests ServiceDiscoveryProvider = new FileServiceDiscoveryProvider() { Host = "localhost", - Port = 19081, + Port = port, Type = "ServiceFabric" } } }; - this.Given(x => x.GivenThereIsAServiceRunningOn("http://localhost:19081", "/Service_1.0/Api/values", 200, "Hello from Laura", "test=best")) + this.Given(x => x.GivenThereIsAServiceRunningOn($"http://localhost:{port}", "/Service_1.0/Api/values", 200, "Hello from Laura", "test=best")) .And(x => _steps.GivenThereIsAConfiguration(configuration)) .And(x => _steps.GivenOcelotIsRunning()) .When(x => _steps.WhenIGetUrlOnTheApiGateway("/api/1.0/values?test=best")) diff --git a/test/Ocelot.AcceptanceTests/SslTests.cs b/test/Ocelot.AcceptanceTests/SslTests.cs index a0ea17a4..58c9e6a1 100644 --- a/test/Ocelot.AcceptanceTests/SslTests.cs +++ b/test/Ocelot.AcceptanceTests/SslTests.cs @@ -23,7 +23,7 @@ namespace Ocelot.AcceptanceTests [Fact] public void should_dangerous_accept_any_server_certificate_validator() { - int port = 51129; + int port = RandomPortFinder.GetRandomPort(); var configuration = new FileConfiguration { @@ -60,7 +60,7 @@ namespace Ocelot.AcceptanceTests [Fact] public void should_not_dangerous_accept_any_server_certificate_validator() { - int port = 52129; + int port = RandomPortFinder.GetRandomPort(); var configuration = new FileConfiguration { diff --git a/test/Ocelot.AcceptanceTests/StartupTests.cs b/test/Ocelot.AcceptanceTests/StartupTests.cs index 3bab3f57..5fc2ea0e 100644 --- a/test/Ocelot.AcceptanceTests/StartupTests.cs +++ b/test/Ocelot.AcceptanceTests/StartupTests.cs @@ -27,6 +27,8 @@ [Fact] public void should_not_try_and_write_to_disk_on_startup_when_not_using_admin_api() { + var port = RandomPortFinder.GetRandomPort(); + var configuration = new FileConfiguration { ReRoutes = new List @@ -40,7 +42,7 @@ new FileHostAndPort { Host = "localhost", - Port = 52179, + Port = port, } }, UpstreamPathTemplate = "/", @@ -51,7 +53,7 @@ var fakeRepo = new FakeFileConfigurationRepository(); - this.Given(x => x.GivenThereIsAServiceRunningOn("http://localhost:52179", "/", 200, "Hello from Laura")) + this.Given(x => x.GivenThereIsAServiceRunningOn($"http://localhost:{port}", "/", 200, "Hello from Laura")) .And(x => _steps.GivenThereIsAConfiguration(configuration)) .And(x => _steps.GivenOcelotIsRunningWithBlowingUpDiskRepo(fakeRepo)) .When(x => _steps.WhenIGetUrlOnTheApiGateway("/")) diff --git a/test/Ocelot.AcceptanceTests/StickySessionsTests.cs b/test/Ocelot.AcceptanceTests/StickySessionsTests.cs index 77f8b176..c4073d87 100644 --- a/test/Ocelot.AcceptanceTests/StickySessionsTests.cs +++ b/test/Ocelot.AcceptanceTests/StickySessionsTests.cs @@ -25,8 +25,8 @@ namespace Ocelot.AcceptanceTests [Fact] public void should_use_same_downstream_host() { - var downstreamPortOne = 51375; - var downstreamPortTwo = 51892; + var downstreamPortOne = RandomPortFinder.GetRandomPort(); + var downstreamPortTwo = RandomPortFinder.GetRandomPort(); var downstreamServiceOneUrl = $"http://localhost:{downstreamPortOne}"; var downstreamServiceTwoUrl = $"http://localhost:{downstreamPortTwo}"; @@ -76,8 +76,8 @@ namespace Ocelot.AcceptanceTests [Fact] public void should_use_different_downstream_host_for_different_re_route() { - var downstreamPortOne = 52881; - var downstreamPortTwo = 52892; + var downstreamPortOne = RandomPortFinder.GetRandomPort(); + var downstreamPortTwo = RandomPortFinder.GetRandomPort(); var downstreamServiceOneUrl = $"http://localhost:{downstreamPortOne}"; var downstreamServiceTwoUrl = $"http://localhost:{downstreamPortTwo}"; @@ -154,8 +154,8 @@ namespace Ocelot.AcceptanceTests [Fact] public void should_use_same_downstream_host_for_different_re_route() { - var downstreamPortOne = 53881; - var downstreamPortTwo = 53892; + var downstreamPortOne = RandomPortFinder.GetRandomPort(); + var downstreamPortTwo = RandomPortFinder.GetRandomPort(); var downstreamServiceOneUrl = $"http://localhost:{downstreamPortOne}"; var downstreamServiceTwoUrl = $"http://localhost:{downstreamPortTwo}"; diff --git a/test/Ocelot.AcceptanceTests/TwoDownstreamServicesTests.cs b/test/Ocelot.AcceptanceTests/TwoDownstreamServicesTests.cs index 284ebd6f..6e3e843b 100644 --- a/test/Ocelot.AcceptanceTests/TwoDownstreamServicesTests.cs +++ b/test/Ocelot.AcceptanceTests/TwoDownstreamServicesTests.cs @@ -28,9 +28,11 @@ [Fact] public void should_fix_issue_194() { - var consulPort = 8503; - var downstreamServiceOneUrl = "http://localhost:8362"; - var downstreamServiceTwoUrl = "http://localhost:8330"; + var consulPort = RandomPortFinder.GetRandomPort(); + var servicePort1 = RandomPortFinder.GetRandomPort(); + var servicePort2 = RandomPortFinder.GetRandomPort(); + var downstreamServiceOneUrl = $"http://localhost:{servicePort1}"; + var downstreamServiceTwoUrl = $"http://localhost:{servicePort2}"; var fakeConsulServiceDiscoveryUrl = $"http://localhost:{consulPort}"; var configuration = new FileConfiguration @@ -46,7 +48,7 @@ new FileHostAndPort { Host = "localhost", - Port = 8362, + Port = servicePort1, } }, UpstreamPathTemplate = "/api/user/{user}", @@ -61,7 +63,7 @@ new FileHostAndPort { Host = "localhost", - Port = 8330, + Port = servicePort2, } }, UpstreamPathTemplate = "/api/product/{product}", diff --git a/test/Ocelot.AcceptanceTests/UpstreamHostTests.cs b/test/Ocelot.AcceptanceTests/UpstreamHostTests.cs index 4af5a974..ebfcf805 100644 --- a/test/Ocelot.AcceptanceTests/UpstreamHostTests.cs +++ b/test/Ocelot.AcceptanceTests/UpstreamHostTests.cs @@ -23,7 +23,7 @@ namespace Ocelot.AcceptanceTests [Fact] public void should_return_response_200_with_simple_url_and_hosts_match() { - int port = 64905; + int port = RandomPortFinder.GetRandomPort(); var configuration = new FileConfiguration { @@ -60,7 +60,7 @@ namespace Ocelot.AcceptanceTests [Fact] public void should_return_response_200_with_simple_url_and_hosts_match_multiple_re_routes() { - int port = 64904; + int port = RandomPortFinder.GetRandomPort(); var configuration = new FileConfiguration { @@ -113,7 +113,7 @@ namespace Ocelot.AcceptanceTests [Fact] public void should_return_response_200_with_simple_url_and_hosts_match_multiple_re_routes_reversed() { - int port = 64903; + int port = RandomPortFinder.GetRandomPort(); var configuration = new FileConfiguration { @@ -166,7 +166,7 @@ namespace Ocelot.AcceptanceTests [Fact] public void should_return_response_200_with_simple_url_and_hosts_match_multiple_re_routes_reversed_with_no_host_first() { - int port = 64902; + int port = RandomPortFinder.GetRandomPort(); var configuration = new FileConfiguration { @@ -218,7 +218,7 @@ namespace Ocelot.AcceptanceTests [Fact] public void should_return_response_404_with_simple_url_and_hosts_dont_match() { - int port = 64901; + int port = RandomPortFinder.GetRandomPort(); var configuration = new FileConfiguration { diff --git a/test/Ocelot.AcceptanceTests/WebSocketTests.cs b/test/Ocelot.AcceptanceTests/WebSocketTests.cs index 425416e2..a8a39166 100644 --- a/test/Ocelot.AcceptanceTests/WebSocketTests.cs +++ b/test/Ocelot.AcceptanceTests/WebSocketTests.cs @@ -29,7 +29,7 @@ namespace Ocelot.AcceptanceTests [Fact] public void should_proxy_websocket_input_to_downstream_service() { - var downstreamPort = 5001; + var downstreamPort = RandomPortFinder.GetRandomPort(); var downstreamHost = "localhost"; var config = new FileConfiguration @@ -64,9 +64,9 @@ namespace Ocelot.AcceptanceTests [Fact] public void should_proxy_websocket_input_to_downstream_service_and_use_load_balancer() { - var downstreamPort = 5005; + var downstreamPort = RandomPortFinder.GetRandomPort(); var downstreamHost = "localhost"; - var secondDownstreamPort = 5006; + var secondDownstreamPort = RandomPortFinder.GetRandomPort(); var secondDownstreamHost = "localhost"; var config = new FileConfiguration