Merge branch 'jlukawska-feature/1115-find-available-port-in-acceptance-tests'

This commit is contained in:
TomPallister 2020-03-11 20:10:06 +00:00
commit b280b1c530
39 changed files with 673 additions and 392 deletions

View File

@ -31,6 +31,7 @@ namespace Ocelot.AcceptanceTests
[Fact] [Fact]
public void should_fix_issue_597() public void should_fix_issue_597()
{ {
var port = RandomPortFinder.GetRandomPort();
var configuration = new FileConfiguration var configuration = new FileConfiguration
{ {
ReRoutes = new List<FileReRoute> ReRoutes = new List<FileReRoute>
@ -46,7 +47,7 @@ namespace Ocelot.AcceptanceTests
new FileHostAndPort new FileHostAndPort
{ {
Host = "localhost", Host = "localhost",
Port = 8571 Port = port
} }
}, },
Key = "key1" Key = "key1"
@ -62,7 +63,7 @@ namespace Ocelot.AcceptanceTests
new FileHostAndPort new FileHostAndPort
{ {
Host = "localhost", Host = "localhost",
Port = 8571 Port = port
} }
}, },
Key = "key2" Key = "key2"
@ -78,7 +79,7 @@ namespace Ocelot.AcceptanceTests
new FileHostAndPort new FileHostAndPort
{ {
Host = "localhost", Host = "localhost",
Port = 8571 Port = port
} }
}, },
Key = "key3" Key = "key3"
@ -94,7 +95,7 @@ namespace Ocelot.AcceptanceTests
new FileHostAndPort new FileHostAndPort
{ {
Host = "localhost", Host = "localhost",
Port = 8571 Port = port
} }
}, },
Key = "key4" Key = "key4"
@ -129,7 +130,7 @@ namespace Ocelot.AcceptanceTests
var expected = "{\"key1\":some_data,\"key2\":some_data}"; 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.GivenThereIsAConfiguration(configuration))
.And(x => _steps.GivenOcelotIsRunning()) .And(x => _steps.GivenOcelotIsRunning())
.When(x => _steps.WhenIGetUrlOnTheApiGateway("/EmpDetail/US/1")) .When(x => _steps.WhenIGetUrlOnTheApiGateway("/EmpDetail/US/1"))
@ -141,6 +142,9 @@ namespace Ocelot.AcceptanceTests
[Fact] [Fact]
public void should_return_response_200_with_advanced_aggregate_configs() 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 var configuration = new FileConfiguration
{ {
ReRoutes = new List<FileReRoute> ReRoutes = new List<FileReRoute>
@ -154,7 +158,7 @@ namespace Ocelot.AcceptanceTests
new FileHostAndPort new FileHostAndPort
{ {
Host = "localhost", Host = "localhost",
Port = 51889, Port = port1,
} }
}, },
UpstreamPathTemplate = "/Comments", UpstreamPathTemplate = "/Comments",
@ -170,7 +174,7 @@ namespace Ocelot.AcceptanceTests
new FileHostAndPort new FileHostAndPort
{ {
Host = "localhost", Host = "localhost",
Port = 54030, Port = port2,
} }
}, },
UpstreamPathTemplate = "/UserDetails", UpstreamPathTemplate = "/UserDetails",
@ -186,7 +190,7 @@ namespace Ocelot.AcceptanceTests
new FileHostAndPort new FileHostAndPort
{ {
Host = "localhost", Host = "localhost",
Port = 51887, Port = port3,
} }
}, },
UpstreamPathTemplate = "/PostDetails", UpstreamPathTemplate = "/PostDetails",
@ -221,9 +225,9 @@ namespace Ocelot.AcceptanceTests
var expected = "{\"Comments\":" + commentsResponseContent + ",\"UserDetails\":" + userDetailsResponseContent + ",\"PostDetails\":" + postDetailsResponseContent + "}"; var expected = "{\"Comments\":" + commentsResponseContent + ",\"UserDetails\":" + userDetailsResponseContent + ",\"PostDetails\":" + postDetailsResponseContent + "}";
this.Given(x => x.GivenServiceOneIsRunning("http://localhost:51889", "/", 200, commentsResponseContent)) this.Given(x => x.GivenServiceOneIsRunning($"http://localhost:{port1}", "/", 200, commentsResponseContent))
.Given(x => x.GivenServiceTwoIsRunning("http://localhost:54030", "/users/1", 200, userDetailsResponseContent)) .Given(x => x.GivenServiceTwoIsRunning($"http://localhost:{port2}", "/users/1", 200, userDetailsResponseContent))
.Given(x => x.GivenServiceTwoIsRunning("http://localhost:51887", "/posts/2", 200, postDetailsResponseContent)) .Given(x => x.GivenServiceTwoIsRunning($"http://localhost:{port3}", "/posts/2", 200, postDetailsResponseContent))
.And(x => _steps.GivenThereIsAConfiguration(configuration)) .And(x => _steps.GivenThereIsAConfiguration(configuration))
.And(x => _steps.GivenOcelotIsRunning()) .And(x => _steps.GivenOcelotIsRunning())
.When(x => _steps.WhenIGetUrlOnTheApiGateway("/")) .When(x => _steps.WhenIGetUrlOnTheApiGateway("/"))
@ -235,6 +239,8 @@ namespace Ocelot.AcceptanceTests
[Fact] [Fact]
public void should_return_response_200_with_simple_url_user_defined_aggregate() public void should_return_response_200_with_simple_url_user_defined_aggregate()
{ {
var port1 = RandomPortFinder.GetRandomPort();
var port2 = RandomPortFinder.GetRandomPort();
var configuration = new FileConfiguration var configuration = new FileConfiguration
{ {
ReRoutes = new List<FileReRoute> ReRoutes = new List<FileReRoute>
@ -248,7 +254,7 @@ namespace Ocelot.AcceptanceTests
new FileHostAndPort new FileHostAndPort
{ {
Host = "localhost", Host = "localhost",
Port = 51885, Port = port1,
} }
}, },
UpstreamPathTemplate = "/laura", UpstreamPathTemplate = "/laura",
@ -264,7 +270,7 @@ namespace Ocelot.AcceptanceTests
new FileHostAndPort new FileHostAndPort
{ {
Host = "localhost", Host = "localhost",
Port = 51886, Port = port2,
} }
}, },
UpstreamPathTemplate = "/tom", UpstreamPathTemplate = "/tom",
@ -290,8 +296,8 @@ namespace Ocelot.AcceptanceTests
var expected = "Bye from Laura, Bye from Tom"; var expected = "Bye from Laura, Bye from Tom";
this.Given(x => x.GivenServiceOneIsRunning("http://localhost:51885", "/", 200, "{Hello from Laura}")) this.Given(x => x.GivenServiceOneIsRunning($"http://localhost:{port1}", "/", 200, "{Hello from Laura}"))
.Given(x => x.GivenServiceTwoIsRunning("http://localhost:51886", "/", 200, "{Hello from Tom}")) .Given(x => x.GivenServiceTwoIsRunning($"http://localhost:{port2}", "/", 200, "{Hello from Tom}"))
.And(x => _steps.GivenThereIsAConfiguration(configuration)) .And(x => _steps.GivenThereIsAConfiguration(configuration))
.And(x => _steps.GivenOcelotIsRunningWithSpecficAggregatorsRegisteredInDi<FakeDefinedAggregator, FakeDepdendency>()) .And(x => _steps.GivenOcelotIsRunningWithSpecficAggregatorsRegisteredInDi<FakeDefinedAggregator, FakeDepdendency>())
.When(x => _steps.WhenIGetUrlOnTheApiGateway("/")) .When(x => _steps.WhenIGetUrlOnTheApiGateway("/"))
@ -304,6 +310,8 @@ namespace Ocelot.AcceptanceTests
[Fact] [Fact]
public void should_return_response_200_with_simple_url() public void should_return_response_200_with_simple_url()
{ {
var port1 = RandomPortFinder.GetRandomPort();
var port2 = RandomPortFinder.GetRandomPort();
var configuration = new FileConfiguration var configuration = new FileConfiguration
{ {
ReRoutes = new List<FileReRoute> ReRoutes = new List<FileReRoute>
@ -317,7 +325,7 @@ namespace Ocelot.AcceptanceTests
new FileHostAndPort new FileHostAndPort
{ {
Host = "localhost", Host = "localhost",
Port = 51875, Port = port1,
} }
}, },
UpstreamPathTemplate = "/laura", UpstreamPathTemplate = "/laura",
@ -333,7 +341,7 @@ namespace Ocelot.AcceptanceTests
new FileHostAndPort new FileHostAndPort
{ {
Host = "localhost", Host = "localhost",
Port = 52476, Port = port2,
} }
}, },
UpstreamPathTemplate = "/tom", UpstreamPathTemplate = "/tom",
@ -358,8 +366,8 @@ namespace Ocelot.AcceptanceTests
var expected = "{\"Laura\":{Hello from Laura},\"Tom\":{Hello from Tom}}"; var expected = "{\"Laura\":{Hello from Laura},\"Tom\":{Hello from Tom}}";
this.Given(x => x.GivenServiceOneIsRunning("http://localhost:51875", "/", 200, "{Hello from Laura}")) this.Given(x => x.GivenServiceOneIsRunning($"http://localhost:{port1}", "/", 200, "{Hello from Laura}"))
.Given(x => x.GivenServiceTwoIsRunning("http://localhost:52476", "/", 200, "{Hello from Tom}")) .Given(x => x.GivenServiceTwoIsRunning($"http://localhost:{port2}", "/", 200, "{Hello from Tom}"))
.And(x => _steps.GivenThereIsAConfiguration(configuration)) .And(x => _steps.GivenThereIsAConfiguration(configuration))
.And(x => _steps.GivenOcelotIsRunning()) .And(x => _steps.GivenOcelotIsRunning())
.When(x => _steps.WhenIGetUrlOnTheApiGateway("/")) .When(x => _steps.WhenIGetUrlOnTheApiGateway("/"))
@ -372,6 +380,8 @@ namespace Ocelot.AcceptanceTests
[Fact] [Fact]
public void should_return_response_200_with_simple_url_one_service_404() public void should_return_response_200_with_simple_url_one_service_404()
{ {
var port1 = RandomPortFinder.GetRandomPort();
var port2 = RandomPortFinder.GetRandomPort();
var configuration = new FileConfiguration var configuration = new FileConfiguration
{ {
ReRoutes = new List<FileReRoute> ReRoutes = new List<FileReRoute>
@ -385,7 +395,7 @@ namespace Ocelot.AcceptanceTests
new FileHostAndPort new FileHostAndPort
{ {
Host = "localhost", Host = "localhost",
Port = 51881, Port = port1,
} }
}, },
UpstreamPathTemplate = "/laura", UpstreamPathTemplate = "/laura",
@ -401,7 +411,7 @@ namespace Ocelot.AcceptanceTests
new FileHostAndPort new FileHostAndPort
{ {
Host = "localhost", Host = "localhost",
Port = 51889, Port = port2,
} }
}, },
UpstreamPathTemplate = "/tom", UpstreamPathTemplate = "/tom",
@ -426,8 +436,8 @@ namespace Ocelot.AcceptanceTests
var expected = "{\"Laura\":,\"Tom\":{Hello from Tom}}"; var expected = "{\"Laura\":,\"Tom\":{Hello from Tom}}";
this.Given(x => x.GivenServiceOneIsRunning("http://localhost:51881", "/", 404, "")) this.Given(x => x.GivenServiceOneIsRunning($"http://localhost:{port1}", "/", 404, ""))
.Given(x => x.GivenServiceTwoIsRunning("http://localhost:51889", "/", 200, "{Hello from Tom}")) .Given(x => x.GivenServiceTwoIsRunning($"http://localhost:{port2}", "/", 200, "{Hello from Tom}"))
.And(x => _steps.GivenThereIsAConfiguration(configuration)) .And(x => _steps.GivenThereIsAConfiguration(configuration))
.And(x => _steps.GivenOcelotIsRunning()) .And(x => _steps.GivenOcelotIsRunning())
.When(x => _steps.WhenIGetUrlOnTheApiGateway("/")) .When(x => _steps.WhenIGetUrlOnTheApiGateway("/"))
@ -440,6 +450,8 @@ namespace Ocelot.AcceptanceTests
[Fact] [Fact]
public void should_return_response_200_with_simple_url_both_service_404() public void should_return_response_200_with_simple_url_both_service_404()
{ {
var port1 = RandomPortFinder.GetRandomPort();
var port2 = RandomPortFinder.GetRandomPort();
var configuration = new FileConfiguration var configuration = new FileConfiguration
{ {
ReRoutes = new List<FileReRoute> ReRoutes = new List<FileReRoute>
@ -453,7 +465,7 @@ namespace Ocelot.AcceptanceTests
new FileHostAndPort new FileHostAndPort
{ {
Host = "localhost", Host = "localhost",
Port = 51883, Port = port1,
} }
}, },
UpstreamPathTemplate = "/laura", UpstreamPathTemplate = "/laura",
@ -469,7 +481,7 @@ namespace Ocelot.AcceptanceTests
new FileHostAndPort new FileHostAndPort
{ {
Host = "localhost", Host = "localhost",
Port = 51884, Port = port2,
} }
}, },
UpstreamPathTemplate = "/tom", UpstreamPathTemplate = "/tom",
@ -494,8 +506,8 @@ namespace Ocelot.AcceptanceTests
var expected = "{\"Laura\":,\"Tom\":}"; var expected = "{\"Laura\":,\"Tom\":}";
this.Given(x => x.GivenServiceOneIsRunning("http://localhost:51883", "/", 404, "")) this.Given(x => x.GivenServiceOneIsRunning($"http://localhost:{port1}", "/", 404, ""))
.Given(x => x.GivenServiceTwoIsRunning("http://localhost:51884", "/", 404, "")) .Given(x => x.GivenServiceTwoIsRunning($"http://localhost:{port2}", "/", 404, ""))
.And(x => _steps.GivenThereIsAConfiguration(configuration)) .And(x => _steps.GivenThereIsAConfiguration(configuration))
.And(x => _steps.GivenOcelotIsRunning()) .And(x => _steps.GivenOcelotIsRunning())
.When(x => _steps.WhenIGetUrlOnTheApiGateway("/")) .When(x => _steps.WhenIGetUrlOnTheApiGateway("/"))
@ -508,6 +520,8 @@ namespace Ocelot.AcceptanceTests
[Fact] [Fact]
public void should_be_thread_safe() public void should_be_thread_safe()
{ {
var port1 = RandomPortFinder.GetRandomPort();
var port2 = RandomPortFinder.GetRandomPort();
var configuration = new FileConfiguration var configuration = new FileConfiguration
{ {
ReRoutes = new List<FileReRoute> ReRoutes = new List<FileReRoute>
@ -521,7 +535,7 @@ namespace Ocelot.AcceptanceTests
new FileHostAndPort new FileHostAndPort
{ {
Host = "localhost", Host = "localhost",
Port = 51878, Port = port1,
} }
}, },
UpstreamPathTemplate = "/laura", UpstreamPathTemplate = "/laura",
@ -537,7 +551,7 @@ namespace Ocelot.AcceptanceTests
new FileHostAndPort new FileHostAndPort
{ {
Host = "localhost", Host = "localhost",
Port = 51880, Port = port2,
} }
}, },
UpstreamPathTemplate = "/tom", UpstreamPathTemplate = "/tom",
@ -560,8 +574,8 @@ namespace Ocelot.AcceptanceTests
} }
}; };
this.Given(x => x.GivenServiceOneIsRunning("http://localhost:51878", "/", 200, "{Hello from Laura}")) this.Given(x => x.GivenServiceOneIsRunning($"http://localhost:{port1}", "/", 200, "{Hello from Laura}"))
.Given(x => x.GivenServiceTwoIsRunning("http://localhost:51880", "/", 200, "{Hello from Tom}")) .Given(x => x.GivenServiceTwoIsRunning($"http://localhost:{port2}", "/", 200, "{Hello from Tom}"))
.And(x => _steps.GivenThereIsAConfiguration(configuration)) .And(x => _steps.GivenThereIsAConfiguration(configuration))
.And(x => _steps.GivenOcelotIsRunning()) .And(x => _steps.GivenOcelotIsRunning())
.When(x => _steps.WhenIMakeLotsOfDifferentRequestsToTheApiGateway()) .When(x => _steps.WhenIMakeLotsOfDifferentRequestsToTheApiGateway())

View File

@ -20,7 +20,7 @@ namespace Ocelot.AcceptanceTests
{ {
private readonly Steps _steps; private readonly Steps _steps;
private IWebHost _identityServerBuilder; private IWebHost _identityServerBuilder;
private string _identityServerRootUrl = "http://localhost:51888"; private string _identityServerRootUrl;
private string _downstreamServicePath = "/"; private string _downstreamServicePath = "/";
private string _downstreamServiceHost = "localhost"; private string _downstreamServiceHost = "localhost";
private string _downstreamServiceScheme = "http"; private string _downstreamServiceScheme = "http";
@ -32,6 +32,8 @@ namespace Ocelot.AcceptanceTests
{ {
_serviceHandler = new ServiceHandler(); _serviceHandler = new ServiceHandler();
_steps = new Steps(); _steps = new Steps();
var identityServerPort = RandomPortFinder.GetRandomPort();
_identityServerRootUrl = $"http://localhost:{identityServerPort}";
_options = o => _options = o =>
{ {
o.Authority = _identityServerRootUrl; o.Authority = _identityServerRootUrl;
@ -45,7 +47,7 @@ namespace Ocelot.AcceptanceTests
[Fact] [Fact]
public void should_return_401_using_identity_server_access_token() public void should_return_401_using_identity_server_access_token()
{ {
int port = 54329; int port = RandomPortFinder.GetRandomPort();
var configuration = new FileConfiguration var configuration = new FileConfiguration
{ {
@ -86,7 +88,7 @@ namespace Ocelot.AcceptanceTests
[Fact] [Fact]
public void should_return_response_200_using_identity_server() public void should_return_response_200_using_identity_server()
{ {
int port = 54099; int port = RandomPortFinder.GetRandomPort();
var configuration = new FileConfiguration var configuration = new FileConfiguration
{ {
@ -129,7 +131,7 @@ namespace Ocelot.AcceptanceTests
[Fact] [Fact]
public void should_return_response_401_using_identity_server_with_token_requested_for_other_api() 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 var configuration = new FileConfiguration
{ {
@ -171,7 +173,7 @@ namespace Ocelot.AcceptanceTests
[Fact] [Fact]
public void should_return_201_using_identity_server_access_token() public void should_return_201_using_identity_server_access_token()
{ {
int port = 52226; int port = RandomPortFinder.GetRandomPort();
var configuration = new FileConfiguration var configuration = new FileConfiguration
{ {
@ -214,7 +216,7 @@ namespace Ocelot.AcceptanceTests
[Fact] [Fact]
public void should_return_201_using_identity_server_reference_token() public void should_return_201_using_identity_server_reference_token()
{ {
int port = 52222; int port = RandomPortFinder.GetRandomPort();
var configuration = new FileConfiguration var configuration = new FileConfiguration
{ {

View File

@ -21,13 +21,15 @@ namespace Ocelot.AcceptanceTests
private IWebHost _identityServerBuilder; private IWebHost _identityServerBuilder;
private readonly Steps _steps; private readonly Steps _steps;
private readonly Action<IdentityServerAuthenticationOptions> _options; private readonly Action<IdentityServerAuthenticationOptions> _options;
private string _identityServerRootUrl = "http://localhost:51888"; private string _identityServerRootUrl;
private readonly ServiceHandler _serviceHandler; private readonly ServiceHandler _serviceHandler;
public AuthorisationTests() public AuthorisationTests()
{ {
_serviceHandler = new ServiceHandler(); _serviceHandler = new ServiceHandler();
_steps = new Steps(); _steps = new Steps();
var identityServerPort = RandomPortFinder.GetRandomPort();
_identityServerRootUrl = $"http://localhost:{identityServerPort}";
_options = o => _options = o =>
{ {
o.Authority = _identityServerRootUrl; o.Authority = _identityServerRootUrl;
@ -41,7 +43,7 @@ namespace Ocelot.AcceptanceTests
[Fact] [Fact]
public void should_return_response_200_authorising_route() public void should_return_response_200_authorising_route()
{ {
int port = 52875; int port = RandomPortFinder.GetRandomPort();
var configuration = new FileConfiguration 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 => 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.GivenThereIsAConfiguration(configuration))
.And(x => _steps.GivenOcelotIsRunning(_options, "Test")) .And(x => _steps.GivenOcelotIsRunning(_options, "Test"))
.And(x => _steps.GivenIHaveAddedATokenToMyRequest()) .And(x => _steps.GivenIHaveAddedATokenToMyRequest())
@ -101,7 +103,7 @@ namespace Ocelot.AcceptanceTests
[Fact] [Fact]
public void should_return_response_403_authorising_route() public void should_return_response_403_authorising_route()
{ {
int port = 59471; int port = RandomPortFinder.GetRandomPort();
var configuration = new FileConfiguration 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 => 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.GivenThereIsAConfiguration(configuration))
.And(x => _steps.GivenOcelotIsRunning(_options, "Test")) .And(x => _steps.GivenOcelotIsRunning(_options, "Test"))
.And(x => _steps.GivenIHaveAddedATokenToMyRequest()) .And(x => _steps.GivenIHaveAddedATokenToMyRequest())
@ -159,7 +161,7 @@ namespace Ocelot.AcceptanceTests
[Fact] [Fact]
public void should_return_response_200_using_identity_server_with_allowed_scope() public void should_return_response_200_using_identity_server_with_allowed_scope()
{ {
int port = 63471; int port = RandomPortFinder.GetRandomPort();
var configuration = new FileConfiguration 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 => 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.GivenThereIsAConfiguration(configuration))
.And(x => _steps.GivenOcelotIsRunning(_options, "Test")) .And(x => _steps.GivenOcelotIsRunning(_options, "Test"))
.And(x => _steps.GivenIHaveAddedATokenToMyRequest()) .And(x => _steps.GivenIHaveAddedATokenToMyRequest())
@ -202,7 +204,7 @@ namespace Ocelot.AcceptanceTests
[Fact] [Fact]
public void should_return_response_403_using_identity_server_with_scope_not_allowed() public void should_return_response_403_using_identity_server_with_scope_not_allowed()
{ {
int port = 60571; int port = RandomPortFinder.GetRandomPort();
var configuration = new FileConfiguration 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 => 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.GivenThereIsAConfiguration(configuration))
.And(x => _steps.GivenOcelotIsRunning(_options, "Test")) .And(x => _steps.GivenOcelotIsRunning(_options, "Test"))
.And(x => _steps.GivenIHaveAddedATokenToMyRequest()) .And(x => _steps.GivenIHaveAddedATokenToMyRequest())
@ -245,7 +247,7 @@ namespace Ocelot.AcceptanceTests
[Fact] [Fact]
public void should_fix_issue_240() public void should_fix_issue_240()
{ {
int port = 61071; int port = RandomPortFinder.GetRandomPort();
var configuration = new FileConfiguration 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 => 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.GivenThereIsAConfiguration(configuration))
.And(x => _steps.GivenOcelotIsRunning(_options, "Test")) .And(x => _steps.GivenOcelotIsRunning(_options, "Test"))
.And(x => _steps.GivenIHaveAddedATokenToMyRequest()) .And(x => _steps.GivenIHaveAddedATokenToMyRequest())

View File

@ -35,6 +35,8 @@ namespace Ocelot.AcceptanceTests
[Fact] [Fact]
public void should_forward_tracing_information_from_ocelot_and_downstream_services() public void should_forward_tracing_information_from_ocelot_and_downstream_services()
{ {
int port1 = RandomPortFinder.GetRandomPort();
int port2 = RandomPortFinder.GetRandomPort();
var configuration = new FileConfiguration var configuration = new FileConfiguration
{ {
ReRoutes = new List<FileReRoute> ReRoutes = new List<FileReRoute>
@ -48,7 +50,7 @@ namespace Ocelot.AcceptanceTests
new FileHostAndPort new FileHostAndPort
{ {
Host = "localhost", Host = "localhost",
Port = 51887, Port = port1,
} }
}, },
UpstreamPathTemplate = "/api001/values", UpstreamPathTemplate = "/api001/values",
@ -67,7 +69,7 @@ namespace Ocelot.AcceptanceTests
new FileHostAndPort new FileHostAndPort
{ {
Host = "localhost", Host = "localhost",
Port = 51388, Port = port2,
} }
}, },
UpstreamPathTemplate = "/api002/values", UpstreamPathTemplate = "/api002/values",
@ -80,11 +82,12 @@ namespace Ocelot.AcceptanceTests
} }
}; };
var butterflyUrl = "http://localhost:9618"; var butterflyPort = RandomPortFinder.GetRandomPort();
var butterflyUrl = $"http://localhost:{butterflyPort}";
this.Given(x => GivenFakeButterfly(butterflyUrl)) this.Given(x => GivenFakeButterfly(butterflyUrl))
.And(x => GivenServiceOneIsRunning("http://localhost:51887", "/api/values", 200, "Hello from Laura", butterflyUrl)) .And(x => GivenServiceOneIsRunning($"http://localhost:{port1}", "/api/values", 200, "Hello from Laura", butterflyUrl))
.And(x => GivenServiceTwoIsRunning("http://localhost:51388", "/api/values", 200, "Hello from Tom", butterflyUrl)) .And(x => GivenServiceTwoIsRunning($"http://localhost:{port2}", "/api/values", 200, "Hello from Tom", butterflyUrl))
.And(x => _steps.GivenThereIsAConfiguration(configuration)) .And(x => _steps.GivenThereIsAConfiguration(configuration))
.And(x => _steps.GivenOcelotIsRunningUsingButterfly(butterflyUrl)) .And(x => _steps.GivenOcelotIsRunningUsingButterfly(butterflyUrl))
.When(x => _steps.WhenIGetUrlOnTheApiGateway("/api001/values")) .When(x => _steps.WhenIGetUrlOnTheApiGateway("/api001/values"))
@ -105,6 +108,7 @@ namespace Ocelot.AcceptanceTests
[Fact] [Fact]
public void should_return_tracing_header() public void should_return_tracing_header()
{ {
int port = RandomPortFinder.GetRandomPort();
var configuration = new FileConfiguration var configuration = new FileConfiguration
{ {
ReRoutes = new List<FileReRoute> ReRoutes = new List<FileReRoute>
@ -118,7 +122,7 @@ namespace Ocelot.AcceptanceTests
new FileHostAndPort new FileHostAndPort
{ {
Host = "localhost", Host = "localhost",
Port = 51387, Port = port,
} }
}, },
UpstreamPathTemplate = "/api001/values", 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)) 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.GivenThereIsAConfiguration(configuration))
.And(x => _steps.GivenOcelotIsRunningUsingButterfly(butterflyUrl)) .And(x => _steps.GivenOcelotIsRunningUsingButterfly(butterflyUrl))
.When(x => _steps.WhenIGetUrlOnTheApiGateway("/api001/values")) .When(x => _steps.WhenIGetUrlOnTheApiGateway("/api001/values"))

View File

@ -23,6 +23,8 @@ namespace Ocelot.AcceptanceTests
[Fact] [Fact]
public void should_return_cached_response() public void should_return_cached_response()
{ {
int port = RandomPortFinder.GetRandomPort();
var configuration = new FileConfiguration var configuration = new FileConfiguration
{ {
ReRoutes = new List<FileReRoute> ReRoutes = new List<FileReRoute>
@ -35,7 +37,7 @@ namespace Ocelot.AcceptanceTests
new FileHostAndPort new FileHostAndPort
{ {
Host = "localhost", Host = "localhost",
Port = 57899, Port = port,
} }
}, },
DownstreamScheme = "http", 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.GivenThereIsAConfiguration(configuration))
.And(x => _steps.GivenOcelotIsRunning()) .And(x => _steps.GivenOcelotIsRunning())
.When(x => _steps.WhenIGetUrlOnTheApiGateway("/")) .When(x => _steps.WhenIGetUrlOnTheApiGateway("/"))
.Then(x => _steps.ThenTheStatusCodeShouldBe(HttpStatusCode.OK)) .Then(x => _steps.ThenTheStatusCodeShouldBe(HttpStatusCode.OK))
.And(x => _steps.ThenTheResponseBodyShouldBe("Hello from Laura")) .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("/")) .When(x => _steps.WhenIGetUrlOnTheApiGateway("/"))
.Then(x => _steps.ThenTheStatusCodeShouldBe(HttpStatusCode.OK)) .Then(x => _steps.ThenTheStatusCodeShouldBe(HttpStatusCode.OK))
.And(x => _steps.ThenTheResponseBodyShouldBe("Hello from Laura")) .And(x => _steps.ThenTheResponseBodyShouldBe("Hello from Laura"))
@ -66,6 +68,8 @@ namespace Ocelot.AcceptanceTests
[Fact] [Fact]
public void should_return_cached_response_with_expires_header() public void should_return_cached_response_with_expires_header()
{ {
int port = RandomPortFinder.GetRandomPort();
var configuration = new FileConfiguration var configuration = new FileConfiguration
{ {
ReRoutes = new List<FileReRoute> ReRoutes = new List<FileReRoute>
@ -78,7 +82,7 @@ namespace Ocelot.AcceptanceTests
new FileHostAndPort new FileHostAndPort
{ {
Host = "localhost", Host = "localhost",
Port = 52839, Port = port,
} }
}, },
DownstreamScheme = "http", 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.GivenThereIsAConfiguration(configuration))
.And(x => _steps.GivenOcelotIsRunning()) .And(x => _steps.GivenOcelotIsRunning())
.When(x => _steps.WhenIGetUrlOnTheApiGateway("/")) .When(x => _steps.WhenIGetUrlOnTheApiGateway("/"))
.Then(x => _steps.ThenTheStatusCodeShouldBe(HttpStatusCode.OK)) .Then(x => _steps.ThenTheStatusCodeShouldBe(HttpStatusCode.OK))
.And(x => _steps.ThenTheResponseBodyShouldBe("Hello from Laura")) .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("/")) .When(x => _steps.WhenIGetUrlOnTheApiGateway("/"))
.Then(x => _steps.ThenTheStatusCodeShouldBe(HttpStatusCode.OK)) .Then(x => _steps.ThenTheStatusCodeShouldBe(HttpStatusCode.OK))
.And(x => _steps.ThenTheResponseBodyShouldBe("Hello from Laura")) .And(x => _steps.ThenTheResponseBodyShouldBe("Hello from Laura"))
@ -110,6 +114,8 @@ namespace Ocelot.AcceptanceTests
[Fact] [Fact]
public void should_return_cached_response_when_using_jsonserialized_cache() public void should_return_cached_response_when_using_jsonserialized_cache()
{ {
int port = RandomPortFinder.GetRandomPort();
var configuration = new FileConfiguration var configuration = new FileConfiguration
{ {
ReRoutes = new List<FileReRoute> ReRoutes = new List<FileReRoute>
@ -122,7 +128,7 @@ namespace Ocelot.AcceptanceTests
new FileHostAndPort new FileHostAndPort
{ {
Host = "localhost", Host = "localhost",
Port = 57879, Port = port,
} }
}, },
DownstreamScheme = "http", 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.GivenThereIsAConfiguration(configuration))
.And(x => _steps.GivenOcelotIsRunningUsingJsonSerializedCache()) .And(x => _steps.GivenOcelotIsRunningUsingJsonSerializedCache())
.When(x => _steps.WhenIGetUrlOnTheApiGateway("/")) .When(x => _steps.WhenIGetUrlOnTheApiGateway("/"))
.Then(x => _steps.ThenTheStatusCodeShouldBe(HttpStatusCode.OK)) .Then(x => _steps.ThenTheStatusCodeShouldBe(HttpStatusCode.OK))
.And(x => _steps.ThenTheResponseBodyShouldBe("Hello from Laura")) .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("/")) .When(x => _steps.WhenIGetUrlOnTheApiGateway("/"))
.Then(x => _steps.ThenTheStatusCodeShouldBe(HttpStatusCode.OK)) .Then(x => _steps.ThenTheStatusCodeShouldBe(HttpStatusCode.OK))
.And(x => _steps.ThenTheResponseBodyShouldBe("Hello from Laura")) .And(x => _steps.ThenTheResponseBodyShouldBe("Hello from Laura"))
@ -152,6 +158,8 @@ namespace Ocelot.AcceptanceTests
[Fact] [Fact]
public void should_not_return_cached_response_as_ttl_expires() public void should_not_return_cached_response_as_ttl_expires()
{ {
int port = RandomPortFinder.GetRandomPort();
var configuration = new FileConfiguration var configuration = new FileConfiguration
{ {
ReRoutes = new List<FileReRoute> ReRoutes = new List<FileReRoute>
@ -164,7 +172,7 @@ namespace Ocelot.AcceptanceTests
new FileHostAndPort new FileHostAndPort
{ {
Host = "localhost", Host = "localhost",
Port = 57873, Port = port,
} }
}, },
DownstreamScheme = "http", 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.GivenThereIsAConfiguration(configuration))
.And(x => _steps.GivenOcelotIsRunning()) .And(x => _steps.GivenOcelotIsRunning())
.When(x => _steps.WhenIGetUrlOnTheApiGateway("/")) .When(x => _steps.WhenIGetUrlOnTheApiGateway("/"))
.Then(x => _steps.ThenTheStatusCodeShouldBe(HttpStatusCode.OK)) .Then(x => _steps.ThenTheStatusCodeShouldBe(HttpStatusCode.OK))
.And(x => _steps.ThenTheResponseBodyShouldBe("Hello from Laura")) .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()) .And(x => x.GivenTheCacheExpires())
.When(x => _steps.WhenIGetUrlOnTheApiGateway("/")) .When(x => _steps.WhenIGetUrlOnTheApiGateway("/"))
.Then(x => _steps.ThenTheStatusCodeShouldBe(HttpStatusCode.OK)) .Then(x => _steps.ThenTheStatusCodeShouldBe(HttpStatusCode.OK))

View File

@ -22,6 +22,8 @@ namespace Ocelot.AcceptanceTests
[Fact] [Fact]
public void should_return_response_200_when_global_ignore_case_sensitivity_set() public void should_return_response_200_when_global_ignore_case_sensitivity_set()
{ {
int port = RandomPortFinder.GetRandomPort();
var configuration = new FileConfiguration var configuration = new FileConfiguration
{ {
ReRoutes = new List<FileReRoute> ReRoutes = new List<FileReRoute>
@ -34,7 +36,7 @@ namespace Ocelot.AcceptanceTests
new FileHostAndPort new FileHostAndPort
{ {
Host = "localhost", Host = "localhost",
Port = 51877, Port = port,
} }
}, },
DownstreamScheme = "http", 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.GivenThereIsAConfiguration(configuration))
.And(x => _steps.GivenOcelotIsRunning()) .And(x => _steps.GivenOcelotIsRunning())
.When(x => _steps.WhenIGetUrlOnTheApiGateway("/PRODUCTS/1")) .When(x => _steps.WhenIGetUrlOnTheApiGateway("/PRODUCTS/1"))
@ -55,6 +57,8 @@ namespace Ocelot.AcceptanceTests
[Fact] [Fact]
public void should_return_response_200_when_reroute_ignore_case_sensitivity_set() public void should_return_response_200_when_reroute_ignore_case_sensitivity_set()
{ {
int port = RandomPortFinder.GetRandomPort();
var configuration = new FileConfiguration var configuration = new FileConfiguration
{ {
ReRoutes = new List<FileReRoute> ReRoutes = new List<FileReRoute>
@ -67,7 +71,7 @@ namespace Ocelot.AcceptanceTests
new FileHostAndPort new FileHostAndPort
{ {
Host = "localhost", Host = "localhost",
Port = 51877, Port = port,
} }
}, },
DownstreamScheme = "http", 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.GivenThereIsAConfiguration(configuration))
.And(x => _steps.GivenOcelotIsRunning()) .And(x => _steps.GivenOcelotIsRunning())
.When(x => _steps.WhenIGetUrlOnTheApiGateway("/PRODUCTS/1")) .When(x => _steps.WhenIGetUrlOnTheApiGateway("/PRODUCTS/1"))
@ -89,6 +93,8 @@ namespace Ocelot.AcceptanceTests
[Fact] [Fact]
public void should_return_response_404_when_reroute_respect_case_sensitivity_set() public void should_return_response_404_when_reroute_respect_case_sensitivity_set()
{ {
int port = RandomPortFinder.GetRandomPort();
var configuration = new FileConfiguration var configuration = new FileConfiguration
{ {
ReRoutes = new List<FileReRoute> ReRoutes = new List<FileReRoute>
@ -101,7 +107,7 @@ namespace Ocelot.AcceptanceTests
new FileHostAndPort new FileHostAndPort
{ {
Host = "localhost", Host = "localhost",
Port = 51877, Port = port,
} }
}, },
DownstreamScheme = "http", 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.GivenThereIsAConfiguration(configuration))
.And(x => _steps.GivenOcelotIsRunning()) .And(x => _steps.GivenOcelotIsRunning())
.When(x => _steps.WhenIGetUrlOnTheApiGateway("/PRODUCTS/1")) .When(x => _steps.WhenIGetUrlOnTheApiGateway("/PRODUCTS/1"))
@ -123,6 +129,8 @@ namespace Ocelot.AcceptanceTests
[Fact] [Fact]
public void should_return_response_200_when_reroute_respect_case_sensitivity_set() public void should_return_response_200_when_reroute_respect_case_sensitivity_set()
{ {
int port = RandomPortFinder.GetRandomPort();
var configuration = new FileConfiguration var configuration = new FileConfiguration
{ {
ReRoutes = new List<FileReRoute> ReRoutes = new List<FileReRoute>
@ -135,7 +143,7 @@ namespace Ocelot.AcceptanceTests
new FileHostAndPort new FileHostAndPort
{ {
Host = "localhost", Host = "localhost",
Port = 51877, Port = port,
} }
}, },
DownstreamScheme = "http", 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.GivenThereIsAConfiguration(configuration))
.And(x => _steps.GivenOcelotIsRunning()) .And(x => _steps.GivenOcelotIsRunning())
.When(x => _steps.WhenIGetUrlOnTheApiGateway("/PRODUCTS/1")) .When(x => _steps.WhenIGetUrlOnTheApiGateway("/PRODUCTS/1"))
@ -157,6 +165,8 @@ namespace Ocelot.AcceptanceTests
[Fact] [Fact]
public void should_return_response_404_when_global_respect_case_sensitivity_set() public void should_return_response_404_when_global_respect_case_sensitivity_set()
{ {
int port = RandomPortFinder.GetRandomPort();
var configuration = new FileConfiguration var configuration = new FileConfiguration
{ {
ReRoutes = new List<FileReRoute> ReRoutes = new List<FileReRoute>
@ -169,7 +179,7 @@ namespace Ocelot.AcceptanceTests
new FileHostAndPort new FileHostAndPort
{ {
Host = "localhost", Host = "localhost",
Port = 51877, Port = port,
} }
}, },
DownstreamScheme = "http", 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.GivenThereIsAConfiguration(configuration))
.And(x => _steps.GivenOcelotIsRunning()) .And(x => _steps.GivenOcelotIsRunning())
.When(x => _steps.WhenIGetUrlOnTheApiGateway("/PRODUCTS/1")) .When(x => _steps.WhenIGetUrlOnTheApiGateway("/PRODUCTS/1"))
@ -191,6 +201,8 @@ namespace Ocelot.AcceptanceTests
[Fact] [Fact]
public void should_return_response_200_when_global_respect_case_sensitivity_set() public void should_return_response_200_when_global_respect_case_sensitivity_set()
{ {
int port = RandomPortFinder.GetRandomPort();
var configuration = new FileConfiguration var configuration = new FileConfiguration
{ {
ReRoutes = new List<FileReRoute> ReRoutes = new List<FileReRoute>
@ -203,7 +215,7 @@ namespace Ocelot.AcceptanceTests
new FileHostAndPort new FileHostAndPort
{ {
Host = "localhost", Host = "localhost",
Port = 51877, Port = port,
} }
}, },
DownstreamScheme = "http", 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.GivenThereIsAConfiguration(configuration))
.And(x => _steps.GivenOcelotIsRunning()) .And(x => _steps.GivenOcelotIsRunning())
.When(x => _steps.WhenIGetUrlOnTheApiGateway("/PRODUCTS/1")) .When(x => _steps.WhenIGetUrlOnTheApiGateway("/PRODUCTS/1"))

View File

@ -23,11 +23,13 @@ namespace Ocelot.AcceptanceTests
private IWebHost _identityServerBuilder; private IWebHost _identityServerBuilder;
private readonly Steps _steps; private readonly Steps _steps;
private Action<IdentityServerAuthenticationOptions> _options; private Action<IdentityServerAuthenticationOptions> _options;
private string _identityServerRootUrl = "http://localhost:57888"; private string _identityServerRootUrl;
private string _downstreamFinalPath; private string _downstreamFinalPath;
public ClaimsToDownstreamPathTests() public ClaimsToDownstreamPathTests()
{ {
var identityServerPort = RandomPortFinder.GetRandomPort();
_identityServerRootUrl = $"http://localhost:{identityServerPort}";
_steps = new Steps(); _steps = new Steps();
_options = o => _options = o =>
{ {
@ -49,6 +51,8 @@ namespace Ocelot.AcceptanceTests
SubjectId = "registered|1231231", SubjectId = "registered|1231231",
}; };
int port = RandomPortFinder.GetRandomPort();
var configuration = new FileConfiguration var configuration = new FileConfiguration
{ {
ReRoutes = new List<FileReRoute> ReRoutes = new List<FileReRoute>
@ -61,7 +65,7 @@ namespace Ocelot.AcceptanceTests
new FileHostAndPort new FileHostAndPort
{ {
Host = "localhost", Host = "localhost",
Port = 57876, Port = port,
}, },
}, },
DownstreamScheme = "http", DownstreamScheme = "http",
@ -83,9 +87,9 @@ namespace Ocelot.AcceptanceTests
}, },
}; };
this.Given(x => x.GivenThereIsAnIdentityServerOn("http://localhost:57888", "api", AccessTokenType.Jwt, user)) this.Given(x => x.GivenThereIsAnIdentityServerOn(_identityServerRootUrl, "api", AccessTokenType.Jwt, user))
.And(x => x.GivenThereIsAServiceRunningOn("http://localhost:57876", 200)) .And(x => x.GivenThereIsAServiceRunningOn($"http://localhost:{port}", 200))
.And(x => _steps.GivenIHaveAToken("http://localhost:57888")) .And(x => _steps.GivenIHaveAToken(_identityServerRootUrl))
.And(x => _steps.GivenThereIsAConfiguration(configuration)) .And(x => _steps.GivenThereIsAConfiguration(configuration))
.And(x => _steps.GivenOcelotIsRunning(_options, "Test")) .And(x => _steps.GivenOcelotIsRunning(_options, "Test"))
.And(x => _steps.GivenIHaveAddedATokenToMyRequest()) .And(x => _steps.GivenIHaveAddedATokenToMyRequest())

View File

@ -25,13 +25,15 @@ namespace Ocelot.AcceptanceTests
private IWebHost _identityServerBuilder; private IWebHost _identityServerBuilder;
private readonly Steps _steps; private readonly Steps _steps;
private Action<IdentityServerAuthenticationOptions> _options; private Action<IdentityServerAuthenticationOptions> _options;
private string _identityServerRootUrl = "http://localhost:52888"; private string _identityServerRootUrl;
private readonly ServiceHandler _serviceHandler; private readonly ServiceHandler _serviceHandler;
public ClaimsToHeadersForwardingTests() public ClaimsToHeadersForwardingTests()
{ {
_serviceHandler = new ServiceHandler(); _serviceHandler = new ServiceHandler();
_steps = new Steps(); _steps = new Steps();
var identityServerPort = RandomPortFinder.GetRandomPort();
_identityServerRootUrl = $"http://localhost:{identityServerPort}";
_options = o => _options = o =>
{ {
o.Authority = _identityServerRootUrl; o.Authority = _identityServerRootUrl;
@ -57,6 +59,8 @@ namespace Ocelot.AcceptanceTests
} }
}; };
int port = RandomPortFinder.GetRandomPort();
var configuration = new FileConfiguration var configuration = new FileConfiguration
{ {
ReRoutes = new List<FileReRoute> ReRoutes = new List<FileReRoute>
@ -69,7 +73,7 @@ namespace Ocelot.AcceptanceTests
new FileHostAndPort new FileHostAndPort
{ {
Host = "localhost", Host = "localhost",
Port = 52876, Port = port,
} }
}, },
DownstreamScheme = "http", DownstreamScheme = "http",
@ -94,9 +98,9 @@ namespace Ocelot.AcceptanceTests
} }
}; };
this.Given(x => x.GivenThereIsAnIdentityServerOn("http://localhost:52888", "api", AccessTokenType.Jwt, user)) this.Given(x => x.GivenThereIsAnIdentityServerOn(_identityServerRootUrl, "api", AccessTokenType.Jwt, user))
.And(x => x.GivenThereIsAServiceRunningOn("http://localhost:52876", 200)) .And(x => x.GivenThereIsAServiceRunningOn($"http://localhost:{port}", 200))
.And(x => _steps.GivenIHaveAToken("http://localhost:52888")) .And(x => _steps.GivenIHaveAToken(_identityServerRootUrl))
.And(x => _steps.GivenThereIsAConfiguration(configuration)) .And(x => _steps.GivenThereIsAConfiguration(configuration))
.And(x => _steps.GivenOcelotIsRunning(_options, "Test")) .And(x => _steps.GivenOcelotIsRunning(_options, "Test"))
.And(x => _steps.GivenIHaveAddedATokenToMyRequest()) .And(x => _steps.GivenIHaveAddedATokenToMyRequest())

View File

@ -25,12 +25,14 @@ namespace Ocelot.AcceptanceTests
private IWebHost _identityServerBuilder; private IWebHost _identityServerBuilder;
private readonly Steps _steps; private readonly Steps _steps;
private Action<IdentityServerAuthenticationOptions> _options; private Action<IdentityServerAuthenticationOptions> _options;
private string _identityServerRootUrl = "http://localhost:57888"; private string _identityServerRootUrl;
private string _downstreamQueryString; private string _downstreamQueryString;
public ClaimsToQueryStringForwardingTests() public ClaimsToQueryStringForwardingTests()
{ {
_steps = new Steps(); _steps = new Steps();
var identityServerPort = RandomPortFinder.GetRandomPort();
_identityServerRootUrl = $"http://localhost:{identityServerPort}";
_options = o => _options = o =>
{ {
o.Authority = _identityServerRootUrl; o.Authority = _identityServerRootUrl;
@ -56,6 +58,8 @@ namespace Ocelot.AcceptanceTests
} }
}; };
int port = RandomPortFinder.GetRandomPort();
var configuration = new FileConfiguration var configuration = new FileConfiguration
{ {
ReRoutes = new List<FileReRoute> ReRoutes = new List<FileReRoute>
@ -68,7 +72,7 @@ namespace Ocelot.AcceptanceTests
new FileHostAndPort new FileHostAndPort
{ {
Host = "localhost", Host = "localhost",
Port = 57876, Port = port,
} }
}, },
DownstreamScheme = "http", DownstreamScheme = "http",
@ -93,9 +97,9 @@ namespace Ocelot.AcceptanceTests
} }
}; };
this.Given(x => x.GivenThereIsAnIdentityServerOn("http://localhost:57888", "api", AccessTokenType.Jwt, user)) this.Given(x => x.GivenThereIsAnIdentityServerOn(_identityServerRootUrl, "api", AccessTokenType.Jwt, user))
.And(x => x.GivenThereIsAServiceRunningOn("http://localhost:57876", 200)) .And(x => x.GivenThereIsAServiceRunningOn($"http://localhost:{port}", 200))
.And(x => _steps.GivenIHaveAToken("http://localhost:57888")) .And(x => _steps.GivenIHaveAToken(_identityServerRootUrl))
.And(x => _steps.GivenThereIsAConfiguration(configuration)) .And(x => _steps.GivenThereIsAConfiguration(configuration))
.And(x => _steps.GivenOcelotIsRunning(_options, "Test")) .And(x => _steps.GivenOcelotIsRunning(_options, "Test"))
.And(x => _steps.GivenIHaveAddedATokenToMyRequest()) .And(x => _steps.GivenIHaveAddedATokenToMyRequest())
@ -120,6 +124,8 @@ namespace Ocelot.AcceptanceTests
} }
}; };
int port = RandomPortFinder.GetRandomPort();
var configuration = new FileConfiguration var configuration = new FileConfiguration
{ {
ReRoutes = new List<FileReRoute> ReRoutes = new List<FileReRoute>
@ -132,7 +138,7 @@ namespace Ocelot.AcceptanceTests
new FileHostAndPort new FileHostAndPort
{ {
Host = "localhost", Host = "localhost",
Port = 57876, Port = port,
} }
}, },
DownstreamScheme = "http", DownstreamScheme = "http",
@ -157,9 +163,9 @@ namespace Ocelot.AcceptanceTests
} }
}; };
this.Given(x => x.GivenThereIsAnIdentityServerOn("http://localhost:57888", "api", AccessTokenType.Jwt, user)) this.Given(x => x.GivenThereIsAnIdentityServerOn(_identityServerRootUrl, "api", AccessTokenType.Jwt, user))
.And(x => x.GivenThereIsAServiceRunningOn("http://localhost:57876", 200)) .And(x => x.GivenThereIsAServiceRunningOn($"http://localhost:{port}", 200))
.And(x => _steps.GivenIHaveAToken("http://localhost:57888")) .And(x => _steps.GivenIHaveAToken(_identityServerRootUrl))
.And(x => _steps.GivenThereIsAConfiguration(configuration)) .And(x => _steps.GivenThereIsAConfiguration(configuration))
.And(x => _steps.GivenOcelotIsRunning(_options, "Test")) .And(x => _steps.GivenOcelotIsRunning(_options, "Test"))
.And(x => _steps.GivenIHaveAddedATokenToMyRequest()) .And(x => _steps.GivenIHaveAddedATokenToMyRequest())

View File

@ -23,6 +23,8 @@
[Fact] [Fact]
public void should_call_withratelimiting() public void should_call_withratelimiting()
{ {
int port = RandomPortFinder.GetRandomPort();
var configuration = new FileConfiguration var configuration = new FileConfiguration
{ {
ReRoutes = new List<FileReRoute> ReRoutes = new List<FileReRoute>
@ -35,7 +37,7 @@
new FileHostAndPort new FileHostAndPort
{ {
Host = "localhost", Host = "localhost",
Port = 51876, Port = port,
} }
}, },
DownstreamScheme = "http", 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.GivenThereIsAConfiguration(configuration))
.And(x => _steps.GivenOcelotIsRunning()) .And(x => _steps.GivenOcelotIsRunning())
.When(x => _steps.WhenIGetUrlOnTheApiGatewayMultipleTimesForRateLimit("/api/ClientRateLimit", 1)) .When(x => _steps.WhenIGetUrlOnTheApiGatewayMultipleTimesForRateLimit("/api/ClientRateLimit", 1))
@ -81,6 +83,8 @@
[Fact] [Fact]
public void should_wait_for_period_timespan_to_elapse_before_making_next_request() public void should_wait_for_period_timespan_to_elapse_before_making_next_request()
{ {
int port = RandomPortFinder.GetRandomPort();
var configuration = new FileConfiguration var configuration = new FileConfiguration
{ {
ReRoutes = new List<FileReRoute> ReRoutes = new List<FileReRoute>
@ -93,7 +97,7 @@
new FileHostAndPort new FileHostAndPort
{ {
Host = "localhost", Host = "localhost",
Port = 51926, Port = port,
} }
}, },
DownstreamScheme = "http", 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.GivenThereIsAConfiguration(configuration))
.And(x => _steps.GivenOcelotIsRunning()) .And(x => _steps.GivenOcelotIsRunning())
.When(x => _steps.WhenIGetUrlOnTheApiGatewayMultipleTimesForRateLimit("/api/ClientRateLimit", 1)) .When(x => _steps.WhenIGetUrlOnTheApiGatewayMultipleTimesForRateLimit("/api/ClientRateLimit", 1))
@ -146,7 +150,7 @@
[Fact] [Fact]
public void should_call_middleware_withWhitelistClient() public void should_call_middleware_withWhitelistClient()
{ {
int port = 61876; int port = RandomPortFinder.GetRandomPort();
var configuration = new FileConfiguration var configuration = new FileConfiguration
{ {

View File

@ -32,6 +32,9 @@ namespace Ocelot.AcceptanceTests
[Fact] [Fact]
public void should_return_response_200_with_simple_url_when_using_jsonserialized_cache() 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 var configuration = new FileConfiguration
{ {
ReRoutes = new List<FileReRoute> ReRoutes = new List<FileReRoute>
@ -45,7 +48,7 @@ namespace Ocelot.AcceptanceTests
new FileHostAndPort new FileHostAndPort
{ {
Host = "localhost", Host = "localhost",
Port = 51779, Port = servicePort,
} }
}, },
UpstreamPathTemplate = "/", UpstreamPathTemplate = "/",
@ -57,15 +60,15 @@ namespace Ocelot.AcceptanceTests
ServiceDiscoveryProvider = new FileServiceDiscoveryProvider() ServiceDiscoveryProvider = new FileServiceDiscoveryProvider()
{ {
Host = "localhost", Host = "localhost",
Port = 9502 Port = consulPort
} }
} }
}; };
var fakeConsulServiceDiscoveryUrl = "http://localhost:9502"; var fakeConsulServiceDiscoveryUrl = $"http://localhost:{consulPort}";
this.Given(x => GivenThereIsAFakeConsulServiceDiscoveryProvider(fakeConsulServiceDiscoveryUrl, "")) 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.GivenThereIsAConfiguration(configuration))
.And(x => _steps.GivenOcelotIsRunningUsingConsulToStoreConfigAndJsonSerializedCache()) .And(x => _steps.GivenOcelotIsRunningUsingConsulToStoreConfigAndJsonSerializedCache())
.When(x => _steps.WhenIGetUrlOnTheApiGateway("/")) .When(x => _steps.WhenIGetUrlOnTheApiGateway("/"))

View File

@ -34,6 +34,9 @@
[Fact] [Fact]
public void should_return_response_200_with_simple_url() public void should_return_response_200_with_simple_url()
{ {
int consulPort = RandomPortFinder.GetRandomPort();
int servicePort = RandomPortFinder.GetRandomPort();
var configuration = new FileConfiguration var configuration = new FileConfiguration
{ {
ReRoutes = new List<FileReRoute> ReRoutes = new List<FileReRoute>
@ -47,7 +50,7 @@
new FileHostAndPort new FileHostAndPort
{ {
Host = "localhost", Host = "localhost",
Port = 51779, Port = servicePort,
} }
}, },
UpstreamPathTemplate = "/", UpstreamPathTemplate = "/",
@ -59,15 +62,15 @@
ServiceDiscoveryProvider = new FileServiceDiscoveryProvider() ServiceDiscoveryProvider = new FileServiceDiscoveryProvider()
{ {
Host = "localhost", Host = "localhost",
Port = 9500 Port = consulPort
} }
} }
}; };
var fakeConsulServiceDiscoveryUrl = "http://localhost:9500"; var fakeConsulServiceDiscoveryUrl = $"http://localhost:{consulPort}";
this.Given(x => GivenThereIsAFakeConsulServiceDiscoveryProvider(fakeConsulServiceDiscoveryUrl, "")) 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.GivenThereIsAConfiguration(configuration))
.And(x => _steps.GivenOcelotIsRunningUsingConsulToStoreConfig()) .And(x => _steps.GivenOcelotIsRunningUsingConsulToStoreConfig())
.When(x => _steps.WhenIGetUrlOnTheApiGateway("/")) .When(x => _steps.WhenIGetUrlOnTheApiGateway("/"))
@ -79,7 +82,8 @@
[Fact] [Fact]
public void should_load_configuration_out_of_consul() public void should_load_configuration_out_of_consul()
{ {
var consulPort = 8500; var consulPort = RandomPortFinder.GetRandomPort();
int servicePort = RandomPortFinder.GetRandomPort();
var configuration = new FileConfiguration var configuration = new FileConfiguration
{ {
@ -108,7 +112,7 @@
new FileHostAndPort new FileHostAndPort
{ {
Host = "localhost", Host = "localhost",
Port = 51779, Port = servicePort,
} }
}, },
UpstreamPathTemplate = "/cs/status", UpstreamPathTemplate = "/cs/status",
@ -127,7 +131,7 @@
this.Given(x => GivenTheConsulConfigurationIs(consulConfig)) this.Given(x => GivenTheConsulConfigurationIs(consulConfig))
.And(x => GivenThereIsAFakeConsulServiceDiscoveryProvider(fakeConsulServiceDiscoveryUrl, "")) .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.GivenThereIsAConfiguration(configuration))
.And(x => _steps.GivenOcelotIsRunningUsingConsulToStoreConfig()) .And(x => _steps.GivenOcelotIsRunningUsingConsulToStoreConfig())
.When(x => _steps.WhenIGetUrlOnTheApiGateway("/cs/status")) .When(x => _steps.WhenIGetUrlOnTheApiGateway("/cs/status"))
@ -139,7 +143,9 @@
[Fact] [Fact]
public void should_load_configuration_out_of_consul_if_it_is_changed() 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 var configuration = new FileConfiguration
{ {
GlobalConfiguration = new FileGlobalConfiguration() GlobalConfiguration = new FileGlobalConfiguration()
@ -167,7 +173,7 @@
new FileHostAndPort new FileHostAndPort
{ {
Host = "localhost", Host = "localhost",
Port = 51780, Port = servicePort,
} }
}, },
UpstreamPathTemplate = "/cs/status", UpstreamPathTemplate = "/cs/status",
@ -197,7 +203,7 @@
new FileHostAndPort new FileHostAndPort
{ {
Host = "localhost", Host = "localhost",
Port = 51780, Port = servicePort,
} }
}, },
UpstreamPathTemplate = "/cs/status/awesome", UpstreamPathTemplate = "/cs/status/awesome",
@ -216,7 +222,7 @@
this.Given(x => GivenTheConsulConfigurationIs(consulConfig)) this.Given(x => GivenTheConsulConfigurationIs(consulConfig))
.And(x => GivenThereIsAFakeConsulServiceDiscoveryProvider(fakeConsulServiceDiscoveryUrl, "")) .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.GivenThereIsAConfiguration(configuration))
.And(x => _steps.GivenOcelotIsRunningUsingConsulToStoreConfig()) .And(x => _steps.GivenOcelotIsRunningUsingConsulToStoreConfig())
.And(x => _steps.WhenIGetUrlOnTheApiGateway("/cs/status")) .And(x => _steps.WhenIGetUrlOnTheApiGateway("/cs/status"))
@ -230,9 +236,9 @@
[Fact] [Fact]
public void should_handle_request_to_consul_for_downstream_service_and_make_request_no_re_routes_and_rate_limit() 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 string serviceName = "web";
const int downstreamServicePort = 8187; int downstreamServicePort = RandomPortFinder.GetRandomPort();
var downstreamServiceOneUrl = $"http://localhost:{downstreamServicePort}"; var downstreamServiceOneUrl = $"http://localhost:{downstreamServicePort}";
var fakeConsulServiceDiscoveryUrl = $"http://localhost:{consulPort}"; var fakeConsulServiceDiscoveryUrl = $"http://localhost:{consulPort}";
var serviceEntryOne = new ServiceEntry() var serviceEntryOne = new ServiceEntry()

View File

@ -34,14 +34,14 @@
[Fact] [Fact]
public void should_proxy_websocket_input_to_downstream_service_and_use_service_discovery_and_load_balancer() 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 downstreamHost = "localhost";
var secondDownstreamPort = 5008; var secondDownstreamPort = RandomPortFinder.GetRandomPort();
var secondDownstreamHost = "localhost"; var secondDownstreamHost = "localhost";
var serviceName = "websockets"; var serviceName = "websockets";
var consulPort = 8509; var consulPort = RandomPortFinder.GetRandomPort();
var fakeConsulServiceDiscoveryUrl = $"http://localhost:{consulPort}"; var fakeConsulServiceDiscoveryUrl = $"http://localhost:{consulPort}";
var serviceEntryOne = new ServiceEntry() var serviceEntryOne = new ServiceEntry()
{ {

View File

@ -26,6 +26,8 @@ namespace Ocelot.AcceptanceTests
[Fact] [Fact]
public void should_not_add_content_type_or_content_length_headers() public void should_not_add_content_type_or_content_length_headers()
{ {
var port = RandomPortFinder.GetRandomPort();
var configuration = new FileConfiguration var configuration = new FileConfiguration
{ {
ReRoutes = new List<FileReRoute> ReRoutes = new List<FileReRoute>
@ -39,7 +41,7 @@ namespace Ocelot.AcceptanceTests
new FileHostAndPort new FileHostAndPort
{ {
Host = "localhost", Host = "localhost",
Port = 51339, Port = port,
} }
}, },
UpstreamPathTemplate = "/", 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.GivenThereIsAConfiguration(configuration))
.And(x => _steps.GivenOcelotIsRunning()) .And(x => _steps.GivenOcelotIsRunning())
.When(x => _steps.WhenIGetUrlOnTheApiGateway("/")) .When(x => _steps.WhenIGetUrlOnTheApiGateway("/"))
@ -62,6 +64,8 @@ namespace Ocelot.AcceptanceTests
[Fact] [Fact]
public void should_add_content_type_and_content_length_headers() public void should_add_content_type_and_content_length_headers()
{ {
var port = RandomPortFinder.GetRandomPort();
var configuration = new FileConfiguration var configuration = new FileConfiguration
{ {
ReRoutes = new List<FileReRoute> ReRoutes = new List<FileReRoute>
@ -74,7 +78,7 @@ namespace Ocelot.AcceptanceTests
new FileHostAndPort new FileHostAndPort
{ {
Host = "localhost", Host = "localhost",
Port = 51349, Port = port,
} }
}, },
DownstreamScheme = "http", DownstreamScheme = "http",
@ -86,7 +90,7 @@ namespace Ocelot.AcceptanceTests
var contentType = "application/json"; 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.GivenThereIsAConfiguration(configuration))
.And(x => _steps.GivenOcelotIsRunning()) .And(x => _steps.GivenOcelotIsRunning())
.And(x => _steps.GivenThePostHasContent("postContent")) .And(x => _steps.GivenThePostHasContent("postContent"))
@ -101,6 +105,8 @@ namespace Ocelot.AcceptanceTests
[Fact] [Fact]
public void should_add_default_content_type_header() public void should_add_default_content_type_header()
{ {
var port = RandomPortFinder.GetRandomPort();
var configuration = new FileConfiguration var configuration = new FileConfiguration
{ {
ReRoutes = new List<FileReRoute> ReRoutes = new List<FileReRoute>
@ -113,7 +119,7 @@ namespace Ocelot.AcceptanceTests
new FileHostAndPort new FileHostAndPort
{ {
Host = "localhost", Host = "localhost",
Port = 51359, Port = port,
} }
}, },
DownstreamScheme = "http", 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.GivenThereIsAConfiguration(configuration))
.And(x => _steps.GivenOcelotIsRunning()) .And(x => _steps.GivenOcelotIsRunning())
.And(x => _steps.GivenThePostHasContent("postContent")) .And(x => _steps.GivenThePostHasContent("postContent"))

View File

@ -39,6 +39,8 @@
} }
}; };
var port = RandomPortFinder.GetRandomPort();
var fileConfiguration = new FileConfiguration var fileConfiguration = new FileConfiguration
{ {
ReRoutes = new List<FileReRoute> ReRoutes = new List<FileReRoute>
@ -51,7 +53,7 @@
new FileHostAndPort new FileHostAndPort
{ {
Host = "localhost", Host = "localhost",
Port = 41879, Port = port,
} }
}, },
DownstreamScheme = "http", 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.GivenThereIsAConfiguration(fileConfiguration, _configurationPath))
.And(x => _steps.GivenOcelotIsRunning(configuration)) .And(x => _steps.GivenOcelotIsRunning(configuration))
.When(x => _steps.WhenIGetUrlOnTheApiGateway("/")) .When(x => _steps.WhenIGetUrlOnTheApiGateway("/"))
@ -82,6 +84,8 @@
} }
}; };
var port = RandomPortFinder.GetRandomPort();
var fileConfiguration = new FileConfiguration var fileConfiguration = new FileConfiguration
{ {
ReRoutes = new List<FileReRoute> ReRoutes = new List<FileReRoute>
@ -94,7 +98,7 @@
new FileHostAndPort new FileHostAndPort
{ {
Host = "localhost", Host = "localhost",
Port = 41879, Port = port,
} }
}, },
DownstreamScheme = "http", 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.GivenThereIsAConfiguration(fileConfiguration, _configurationPath))
.And(x => _steps.GivenOcelotIsRunning(configuration)) .And(x => _steps.GivenOcelotIsRunning(configuration))
.When(x => _steps.WhenIGetUrlOnTheApiGateway("/")) .When(x => _steps.WhenIGetUrlOnTheApiGateway("/"))
@ -125,6 +129,8 @@
} }
}; };
var port = RandomPortFinder.GetRandomPort();
var fileConfiguration = new FileConfiguration var fileConfiguration = new FileConfiguration
{ {
ReRoutes = new List<FileReRoute> ReRoutes = new List<FileReRoute>
@ -137,7 +143,7 @@
new FileHostAndPort new FileHostAndPort
{ {
Host = "localhost", Host = "localhost",
Port = 41879, Port = port,
} }
}, },
DownstreamScheme = "http", 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.GivenThereIsAConfiguration(fileConfiguration, _configurationPath))
.And(x => _steps.GivenOcelotIsRunning(configuration)) .And(x => _steps.GivenOcelotIsRunning(configuration))
.When(x => _steps.WhenIGetUrlOnTheApiGateway("/")) .When(x => _steps.WhenIGetUrlOnTheApiGateway("/"))
@ -168,6 +174,8 @@
} }
}; };
var port = RandomPortFinder.GetRandomPort();
var fileConfiguration = new FileConfiguration var fileConfiguration = new FileConfiguration
{ {
ReRoutes = new List<FileReRoute> ReRoutes = new List<FileReRoute>
@ -180,7 +188,7 @@
new FileHostAndPort new FileHostAndPort
{ {
Host = "localhost", Host = "localhost",
Port = 41879, Port = port,
} }
}, },
DownstreamScheme = "http", 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.GivenThereIsAConfiguration(fileConfiguration, _configurationPath))
.And(x => _steps.GivenOcelotIsRunning(configuration)) .And(x => _steps.GivenOcelotIsRunning(configuration))
.When(x => _steps.WhenIGetUrlOnTheApiGateway("/")) .When(x => _steps.WhenIGetUrlOnTheApiGateway("/"))
@ -211,6 +219,8 @@
} }
}; };
var port = RandomPortFinder.GetRandomPort();
var fileConfiguration = new FileConfiguration var fileConfiguration = new FileConfiguration
{ {
ReRoutes = new List<FileReRoute> ReRoutes = new List<FileReRoute>
@ -223,7 +233,7 @@
new FileHostAndPort new FileHostAndPort
{ {
Host = "localhost", Host = "localhost",
Port = 41879, Port = port,
} }
}, },
DownstreamScheme = "http", 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.GivenThereIsAConfiguration(fileConfiguration, _configurationPath))
.And(x => _steps.GivenOcelotIsRunning(configuration)) .And(x => _steps.GivenOcelotIsRunning(configuration))
.When(x => _steps.WhenIGetUrlOnTheApiGateway("/")) .When(x => _steps.WhenIGetUrlOnTheApiGateway("/"))
@ -254,6 +264,8 @@
} }
}; };
var port = RandomPortFinder.GetRandomPort();
var fileConfiguration = new FileConfiguration var fileConfiguration = new FileConfiguration
{ {
ReRoutes = new List<FileReRoute> ReRoutes = new List<FileReRoute>
@ -266,7 +278,7 @@
new FileHostAndPort new FileHostAndPort
{ {
Host = "localhost", Host = "localhost",
Port = 41879, Port = port,
} }
}, },
DownstreamScheme = "http", 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.GivenThereIsAConfiguration(fileConfiguration, _configurationPath))
.And(x => _steps.GivenOcelotIsRunning(configuration)) .And(x => _steps.GivenOcelotIsRunning(configuration))
.When(x => _steps.WhenIGetUrlOnTheApiGateway("/")) .When(x => _steps.WhenIGetUrlOnTheApiGateway("/"))
@ -301,6 +313,8 @@
return Task.CompletedTask; return Task.CompletedTask;
}; };
var port = RandomPortFinder.GetRandomPort();
var fileConfiguration = new FileConfiguration var fileConfiguration = new FileConfiguration
{ {
ReRoutes = new List<FileReRoute> ReRoutes = new List<FileReRoute>
@ -313,7 +327,7 @@
new FileHostAndPort new FileHostAndPort
{ {
Host = "localhost", Host = "localhost",
Port = 41880, Port = port,
} }
}, },
DownstreamScheme = "http", 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.GivenThereIsAConfiguration(fileConfiguration, _configurationPath))
.And(x => _steps.GivenOcelotIsRunningWithMiddleareBeforePipeline<FakeMiddleware>(callback)) .And(x => _steps.GivenOcelotIsRunningWithMiddleareBeforePipeline<FakeMiddleware>(callback))
.When(x => _steps.WhenIGetUrlOnTheApiGateway("/")) .When(x => _steps.WhenIGetUrlOnTheApiGateway("/"))

View File

@ -28,7 +28,7 @@
{ {
var eurekaPort = 8761; var eurekaPort = 8761;
var serviceName = "product"; var serviceName = "product";
var downstreamServicePort = 50371; var downstreamServicePort = RandomPortFinder.GetRandomPort();
var downstreamServiceOneUrl = $"http://localhost:{downstreamServicePort}"; var downstreamServiceOneUrl = $"http://localhost:{downstreamServicePort}";
var fakeEurekaServiceDiscoveryUrl = $"http://localhost:{eurekaPort}"; var fakeEurekaServiceDiscoveryUrl = $"http://localhost:{eurekaPort}";

View File

@ -26,6 +26,8 @@ namespace Ocelot.AcceptanceTests
[Fact] [Fact]
public void should_return_response_200_with_simple_url() public void should_return_response_200_with_simple_url()
{ {
var port = RandomPortFinder.GetRandomPort();
var configuration = new FileConfiguration var configuration = new FileConfiguration
{ {
ReRoutes = new List<FileReRoute> ReRoutes = new List<FileReRoute>
@ -39,7 +41,7 @@ namespace Ocelot.AcceptanceTests
new FileHostAndPort new FileHostAndPort
{ {
Host = "localhost", Host = "localhost",
Port = 51179, Port = port,
} }
}, },
UpstreamPathTemplate = "/", UpstreamPathTemplate = "/",
@ -50,7 +52,7 @@ namespace Ocelot.AcceptanceTests
var input = "people"; 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.GivenThereIsAConfiguration(configuration))
.And(x => _steps.GivenOcelotIsRunning()) .And(x => _steps.GivenOcelotIsRunning())
.And(x => _steps.GivenThePostHasGzipContent(input)) .And(x => _steps.GivenThePostHasGzipContent(input))

View File

@ -25,6 +25,8 @@ namespace Ocelot.AcceptanceTests
[Fact] [Fact]
public void should_transform_upstream_header() public void should_transform_upstream_header()
{ {
var port = RandomPortFinder.GetRandomPort();
var configuration = new FileConfiguration var configuration = new FileConfiguration
{ {
ReRoutes = new List<FileReRoute> ReRoutes = new List<FileReRoute>
@ -38,7 +40,7 @@ namespace Ocelot.AcceptanceTests
new FileHostAndPort new FileHostAndPort
{ {
Host = "localhost", Host = "localhost",
Port = 51871, Port = port,
} }
}, },
UpstreamPathTemplate = "/", 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.GivenThereIsAConfiguration(configuration))
.And(x => _steps.GivenOcelotIsRunning()) .And(x => _steps.GivenOcelotIsRunning())
.And(x => _steps.GivenIAddAHeader("Laz", "D")) .And(x => _steps.GivenIAddAHeader("Laz", "D"))
@ -64,6 +66,8 @@ namespace Ocelot.AcceptanceTests
[Fact] [Fact]
public void should_transform_downstream_header() public void should_transform_downstream_header()
{ {
var port = RandomPortFinder.GetRandomPort();
var configuration = new FileConfiguration var configuration = new FileConfiguration
{ {
ReRoutes = new List<FileReRoute> ReRoutes = new List<FileReRoute>
@ -77,7 +81,7 @@ namespace Ocelot.AcceptanceTests
new FileHostAndPort new FileHostAndPort
{ {
Host = "localhost", Host = "localhost",
Port = 51871, Port = port,
} }
}, },
UpstreamPathTemplate = "/", 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.GivenThereIsAConfiguration(configuration))
.And(x => _steps.GivenOcelotIsRunning()) .And(x => _steps.GivenOcelotIsRunning())
.When(x => _steps.WhenIGetUrlOnTheApiGateway("/")) .When(x => _steps.WhenIGetUrlOnTheApiGateway("/"))
@ -102,6 +106,8 @@ namespace Ocelot.AcceptanceTests
[Fact] [Fact]
public void should_fix_issue_190() public void should_fix_issue_190()
{ {
var port = RandomPortFinder.GetRandomPort();
var configuration = new FileConfiguration var configuration = new FileConfiguration
{ {
ReRoutes = new List<FileReRoute> ReRoutes = new List<FileReRoute>
@ -115,14 +121,14 @@ namespace Ocelot.AcceptanceTests
new FileHostAndPort new FileHostAndPort
{ {
Host = "localhost", Host = "localhost",
Port = 6773, Port = port,
} }
}, },
UpstreamPathTemplate = "/", UpstreamPathTemplate = "/",
UpstreamHttpMethod = new List<string> { "Get" }, UpstreamHttpMethod = new List<string> { "Get" },
DownstreamHeaderTransform = new Dictionary<string,string> DownstreamHeaderTransform = new Dictionary<string,string>
{ {
{"Location", "http://localhost:6773, {BaseUrl}"} {"Location", $"http://localhost:{port}, {{BaseUrl}}"}
}, },
HttpHandlerOptions = new FileHttpHandlerOptions 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.GivenThereIsAConfiguration(configuration))
.And(x => _steps.GivenOcelotIsRunning()) .And(x => _steps.GivenOcelotIsRunning())
.When(x => _steps.WhenIGetUrlOnTheApiGateway("/")) .When(x => _steps.WhenIGetUrlOnTheApiGateway("/"))
@ -144,6 +150,8 @@ namespace Ocelot.AcceptanceTests
[Fact] [Fact]
public void should_fix_issue_205() public void should_fix_issue_205()
{ {
var port = RandomPortFinder.GetRandomPort();
var configuration = new FileConfiguration var configuration = new FileConfiguration
{ {
ReRoutes = new List<FileReRoute> ReRoutes = new List<FileReRoute>
@ -157,7 +165,7 @@ namespace Ocelot.AcceptanceTests
new FileHostAndPort new FileHostAndPort
{ {
Host = "localhost", Host = "localhost",
Port = 6773, Port = port,
} }
}, },
UpstreamPathTemplate = "/", 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.GivenThereIsAConfiguration(configuration))
.And(x => _steps.GivenOcelotIsRunning()) .And(x => _steps.GivenOcelotIsRunning())
.When(x => _steps.WhenIGetUrlOnTheApiGateway("/")) .When(x => _steps.WhenIGetUrlOnTheApiGateway("/"))
@ -186,6 +194,8 @@ namespace Ocelot.AcceptanceTests
[Fact] [Fact]
public void should_fix_issue_417() public void should_fix_issue_417()
{ {
var port = RandomPortFinder.GetRandomPort();
var configuration = new FileConfiguration var configuration = new FileConfiguration
{ {
ReRoutes = new List<FileReRoute> ReRoutes = new List<FileReRoute>
@ -199,7 +209,7 @@ namespace Ocelot.AcceptanceTests
new FileHostAndPort new FileHostAndPort
{ {
Host = "localhost", Host = "localhost",
Port = 6773, Port = port,
} }
}, },
UpstreamPathTemplate = "/", 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.GivenThereIsAConfiguration(configuration))
.And(x => _steps.GivenOcelotIsRunning()) .And(x => _steps.GivenOcelotIsRunning())
.When(x => _steps.WhenIGetUrlOnTheApiGateway("/")) .When(x => _steps.WhenIGetUrlOnTheApiGateway("/"))
@ -232,6 +242,8 @@ namespace Ocelot.AcceptanceTests
[Fact] [Fact]
public void request_should_reuse_cookies_with_cookie_container() public void request_should_reuse_cookies_with_cookie_container()
{ {
var port = RandomPortFinder.GetRandomPort();
var configuration = new FileConfiguration var configuration = new FileConfiguration
{ {
ReRoutes = new List<FileReRoute> ReRoutes = new List<FileReRoute>
@ -245,7 +257,7 @@ namespace Ocelot.AcceptanceTests
new FileHostAndPort new FileHostAndPort
{ {
Host = "localhost", Host = "localhost",
Port = 6774, Port = port,
} }
}, },
UpstreamPathTemplate = "/sso/{everything}", 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.GivenThereIsAConfiguration(configuration))
.And(x => _steps.GivenOcelotIsRunning()) .And(x => _steps.GivenOcelotIsRunning())
.And(x => _steps.WhenIGetUrlOnTheApiGateway("/sso/test")) .And(x => _steps.WhenIGetUrlOnTheApiGateway("/sso/test"))
@ -273,6 +285,8 @@ namespace Ocelot.AcceptanceTests
[Fact] [Fact]
public void request_should_have_own_cookies_no_cookie_container() public void request_should_have_own_cookies_no_cookie_container()
{ {
var port = RandomPortFinder.GetRandomPort();
var configuration = new FileConfiguration var configuration = new FileConfiguration
{ {
ReRoutes = new List<FileReRoute> ReRoutes = new List<FileReRoute>
@ -286,7 +300,7 @@ namespace Ocelot.AcceptanceTests
new FileHostAndPort new FileHostAndPort
{ {
Host = "localhost", Host = "localhost",
Port = 6775, Port = port,
} }
}, },
UpstreamPathTemplate = "/sso/{everything}", 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.GivenThereIsAConfiguration(configuration))
.And(x => _steps.GivenOcelotIsRunning()) .And(x => _steps.GivenOcelotIsRunning())
.And(x => _steps.WhenIGetUrlOnTheApiGateway("/sso/test")) .And(x => _steps.WhenIGetUrlOnTheApiGateway("/sso/test"))
@ -314,6 +328,8 @@ namespace Ocelot.AcceptanceTests
[Fact] [Fact]
public void issue_474_should_not_put_spaces_in_header() public void issue_474_should_not_put_spaces_in_header()
{ {
var port = RandomPortFinder.GetRandomPort();
var configuration = new FileConfiguration var configuration = new FileConfiguration
{ {
ReRoutes = new List<FileReRoute> ReRoutes = new List<FileReRoute>
@ -327,7 +343,7 @@ namespace Ocelot.AcceptanceTests
new FileHostAndPort new FileHostAndPort
{ {
Host = "localhost", Host = "localhost",
Port = 52866, Port = port,
} }
}, },
UpstreamPathTemplate = "/", 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.GivenThereIsAConfiguration(configuration))
.And(x => _steps.GivenOcelotIsRunning()) .And(x => _steps.GivenOcelotIsRunning())
.And(x => _steps.GivenIAddAHeader("Accept", "text/html,application/xhtml+xml,application/xml;")) .And(x => _steps.GivenIAddAHeader("Accept", "text/html,application/xhtml+xml,application/xml;"))
@ -349,6 +365,8 @@ namespace Ocelot.AcceptanceTests
[Fact] [Fact]
public void issue_474_should_put_spaces_in_header() public void issue_474_should_put_spaces_in_header()
{ {
var port = RandomPortFinder.GetRandomPort();
var configuration = new FileConfiguration var configuration = new FileConfiguration
{ {
ReRoutes = new List<FileReRoute> ReRoutes = new List<FileReRoute>
@ -362,7 +380,7 @@ namespace Ocelot.AcceptanceTests
new FileHostAndPort new FileHostAndPort
{ {
Host = "localhost", Host = "localhost",
Port = 51874, Port = port,
} }
}, },
UpstreamPathTemplate = "/", 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.GivenThereIsAConfiguration(configuration))
.And(x => _steps.GivenOcelotIsRunning()) .And(x => _steps.GivenOcelotIsRunning())
.And(x => _steps.GivenIAddAHeader("Accept", "text/html")) .And(x => _steps.GivenIAddAHeader("Accept", "text/html"))

View File

@ -27,6 +27,8 @@ namespace Ocelot.AcceptanceTests
[Fact] [Fact]
public void should_cache_one_http_client_same_re_route() public void should_cache_one_http_client_same_re_route()
{ {
var port = RandomPortFinder.GetRandomPort();
var configuration = new FileConfiguration var configuration = new FileConfiguration
{ {
ReRoutes = new List<FileReRoute> ReRoutes = new List<FileReRoute>
@ -40,7 +42,7 @@ namespace Ocelot.AcceptanceTests
new FileHostAndPort new FileHostAndPort
{ {
Host = "localhost", Host = "localhost",
Port = 58814, Port = port,
} }
}, },
UpstreamPathTemplate = "/", UpstreamPathTemplate = "/",
@ -51,7 +53,7 @@ namespace Ocelot.AcceptanceTests
var cache = new FakeHttpClientCache(); 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.GivenThereIsAConfiguration(configuration))
.And(x => _steps.GivenOcelotIsRunningWithFakeHttpClientCache(cache)) .And(x => _steps.GivenOcelotIsRunningWithFakeHttpClientCache(cache))
.When(x => _steps.WhenIGetUrlOnTheApiGateway("/")) .When(x => _steps.WhenIGetUrlOnTheApiGateway("/"))
@ -67,6 +69,8 @@ namespace Ocelot.AcceptanceTests
[Fact] [Fact]
public void should_cache_two_http_client_different_re_route() public void should_cache_two_http_client_different_re_route()
{ {
var port = RandomPortFinder.GetRandomPort();
var configuration = new FileConfiguration var configuration = new FileConfiguration
{ {
ReRoutes = new List<FileReRoute> ReRoutes = new List<FileReRoute>
@ -80,7 +84,7 @@ namespace Ocelot.AcceptanceTests
new FileHostAndPort new FileHostAndPort
{ {
Host = "localhost", Host = "localhost",
Port = 58817, Port = port,
} }
}, },
UpstreamPathTemplate = "/", UpstreamPathTemplate = "/",
@ -95,7 +99,7 @@ namespace Ocelot.AcceptanceTests
new FileHostAndPort new FileHostAndPort
{ {
Host = "localhost", Host = "localhost",
Port = 58817, Port = port,
} }
}, },
UpstreamPathTemplate = "/two", UpstreamPathTemplate = "/two",
@ -106,7 +110,7 @@ namespace Ocelot.AcceptanceTests
var cache = new FakeHttpClientCache(); 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.GivenThereIsAConfiguration(configuration))
.And(x => _steps.GivenOcelotIsRunningWithFakeHttpClientCache(cache)) .And(x => _steps.GivenOcelotIsRunningWithFakeHttpClientCache(cache))
.When(x => _steps.WhenIGetUrlOnTheApiGateway("/")) .When(x => _steps.WhenIGetUrlOnTheApiGateway("/"))

View File

@ -27,6 +27,8 @@
[Fact] [Fact]
public void should_call_re_route_ordered_specific_handlers() public void should_call_re_route_ordered_specific_handlers()
{ {
var port = RandomPortFinder.GetRandomPort();
var configuration = new FileConfiguration var configuration = new FileConfiguration
{ {
ReRoutes = new List<FileReRoute> ReRoutes = new List<FileReRoute>
@ -40,7 +42,7 @@
new FileHostAndPort new FileHostAndPort
{ {
Host = "localhost", Host = "localhost",
Port = 7197, Port = port,
} }
}, },
UpstreamPathTemplate = "/", 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.GivenThereIsAConfiguration(configuration))
.And(x => _steps.GivenOcelotIsRunningWithSpecficHandlersRegisteredInDi<FakeHandler, FakeHandlerTwo>()) .And(x => _steps.GivenOcelotIsRunningWithSpecficHandlersRegisteredInDi<FakeHandler, FakeHandlerTwo>())
.When(x => _steps.WhenIGetUrlOnTheApiGateway("/")) .When(x => _steps.WhenIGetUrlOnTheApiGateway("/"))
@ -67,6 +69,8 @@
[Fact] [Fact]
public void should_call_global_di_handlers() public void should_call_global_di_handlers()
{ {
var port = RandomPortFinder.GetRandomPort();
var configuration = new FileConfiguration var configuration = new FileConfiguration
{ {
ReRoutes = new List<FileReRoute> ReRoutes = new List<FileReRoute>
@ -80,7 +84,7 @@
new FileHostAndPort new FileHostAndPort
{ {
Host = "localhost", Host = "localhost",
Port = 7187, Port = port,
} }
}, },
UpstreamPathTemplate = "/", 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.GivenThereIsAConfiguration(configuration))
.And(x => _steps.GivenOcelotIsRunningWithGlobalHandlersRegisteredInDi<FakeHandler, FakeHandlerTwo>()) .And(x => _steps.GivenOcelotIsRunningWithGlobalHandlersRegisteredInDi<FakeHandler, FakeHandlerTwo>())
.When(x => _steps.WhenIGetUrlOnTheApiGateway("/")) .When(x => _steps.WhenIGetUrlOnTheApiGateway("/"))
@ -102,6 +106,8 @@
[Fact] [Fact]
public void should_call_global_di_handlers_multiple_times() public void should_call_global_di_handlers_multiple_times()
{ {
var port = RandomPortFinder.GetRandomPort();
var configuration = new FileConfiguration var configuration = new FileConfiguration
{ {
ReRoutes = new List<FileReRoute> ReRoutes = new List<FileReRoute>
@ -115,7 +121,7 @@
new FileHostAndPort new FileHostAndPort
{ {
Host = "localhost", Host = "localhost",
Port = 9187, Port = port,
} }
}, },
UpstreamPathTemplate = "/", 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.GivenThereIsAConfiguration(configuration))
.And(x => _steps.GivenOcelotIsRunningWithGlobalHandlerRegisteredInDi<FakeHandlerAgain>()) .And(x => _steps.GivenOcelotIsRunningWithGlobalHandlerRegisteredInDi<FakeHandlerAgain>())
.When(x => _steps.WhenIGetUrlOnTheApiGateway("/")) .When(x => _steps.WhenIGetUrlOnTheApiGateway("/"))
@ -153,6 +159,8 @@
[Fact] [Fact]
public void should_call_global_di_handlers_with_dependency() public void should_call_global_di_handlers_with_dependency()
{ {
var port = RandomPortFinder.GetRandomPort();
var configuration = new FileConfiguration var configuration = new FileConfiguration
{ {
ReRoutes = new List<FileReRoute> ReRoutes = new List<FileReRoute>
@ -166,7 +174,7 @@
new FileHostAndPort new FileHostAndPort
{ {
Host = "localhost", Host = "localhost",
Port = 7188, Port = port,
} }
}, },
UpstreamPathTemplate = "/", UpstreamPathTemplate = "/",
@ -177,7 +185,7 @@
var dependency = new FakeDependency(); 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.GivenThereIsAConfiguration(configuration))
.And(x => _steps.GivenOcelotIsRunningWithGlobalHandlersRegisteredInDi<FakeHandlerWithDependency>(dependency)) .And(x => _steps.GivenOcelotIsRunningWithGlobalHandlersRegisteredInDi<FakeHandlerWithDependency>(dependency))
.When(x => _steps.WhenIGetUrlOnTheApiGateway("/")) .When(x => _steps.WhenIGetUrlOnTheApiGateway("/"))

View File

@ -25,7 +25,7 @@ namespace Ocelot.AcceptanceTests
[Fact] [Fact]
public void should_return_response_200_when_using_http_one() public void should_return_response_200_when_using_http_one()
{ {
const int port = 53219; var port = RandomPortFinder.GetRandomPort();
var configuration = new FileConfiguration var configuration = new FileConfiguration
{ {
@ -63,7 +63,7 @@ namespace Ocelot.AcceptanceTests
[Fact] [Fact]
public void should_return_response_200_when_using_http_one_point_one() public void should_return_response_200_when_using_http_one_point_one()
{ {
const int port = 53279; var port = RandomPortFinder.GetRandomPort();
var configuration = new FileConfiguration var configuration = new FileConfiguration
{ {
@ -101,7 +101,7 @@ namespace Ocelot.AcceptanceTests
[Fact] [Fact]
public void should_return_response_200_when_using_http_two_point_zero() public void should_return_response_200_when_using_http_two_point_zero()
{ {
const int port = 53675; var port = RandomPortFinder.GetRandomPort();
var configuration = new FileConfiguration var configuration = new FileConfiguration
{ {
@ -143,7 +143,7 @@ namespace Ocelot.AcceptanceTests
[Fact] [Fact]
public void should_return_response_500_when_using_http_one_to_talk_to_server_running_http_two() 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 var configuration = new FileConfiguration
{ {
@ -184,7 +184,7 @@ namespace Ocelot.AcceptanceTests
[Fact] [Fact]
public void should_return_response_200_when_using_http_two_to_talk_to_server_running_http_one_point_one() 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 var configuration = new FileConfiguration
{ {

View File

@ -26,8 +26,8 @@ namespace Ocelot.AcceptanceTests
[Fact] [Fact]
public void should_load_balance_request_with_least_connection() public void should_load_balance_request_with_least_connection()
{ {
int portOne = 50591; int portOne = RandomPortFinder.GetRandomPort();
int portTwo = 54483; int portTwo = RandomPortFinder.GetRandomPort();
var downstreamServiceOneUrl = $"http://localhost:{portOne}"; var downstreamServiceOneUrl = $"http://localhost:{portOne}";
var downstreamServiceTwoUrl = $"http://localhost:{portTwo}"; var downstreamServiceTwoUrl = $"http://localhost:{portTwo}";
@ -76,8 +76,8 @@ namespace Ocelot.AcceptanceTests
[Fact] [Fact]
public void should_load_balance_request_with_round_robin() public void should_load_balance_request_with_round_robin()
{ {
var downstreamPortOne = 51701; var downstreamPortOne = RandomPortFinder.GetRandomPort();
var downstreamPortTwo = 53802; var downstreamPortTwo = RandomPortFinder.GetRandomPort();
var downstreamServiceOneUrl = $"http://localhost:{downstreamPortOne}"; var downstreamServiceOneUrl = $"http://localhost:{downstreamPortOne}";
var downstreamServiceTwoUrl = $"http://localhost:{downstreamPortTwo}"; var downstreamServiceTwoUrl = $"http://localhost:{downstreamPortTwo}";

View File

@ -24,6 +24,8 @@ namespace Ocelot.AcceptanceTests
[Fact] [Fact]
public void should_return_response_200_when_get_converted_to_post() public void should_return_response_200_when_get_converted_to_post()
{ {
var port = RandomPortFinder.GetRandomPort();
var configuration = new FileConfiguration var configuration = new FileConfiguration
{ {
ReRoutes = new List<FileReRoute> ReRoutes = new List<FileReRoute>
@ -39,7 +41,7 @@ namespace Ocelot.AcceptanceTests
new FileHostAndPort new FileHostAndPort
{ {
Host = "localhost", Host = "localhost",
Port = 53171, Port = port,
}, },
}, },
DownstreamHttpMethod = "POST", 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.GivenThereIsAConfiguration(configuration))
.And(x => _steps.GivenOcelotIsRunning()) .And(x => _steps.GivenOcelotIsRunning())
.When(x => _steps.WhenIGetUrlOnTheApiGateway("/")) .When(x => _steps.WhenIGetUrlOnTheApiGateway("/"))
@ -58,6 +60,8 @@ namespace Ocelot.AcceptanceTests
[Fact] [Fact]
public void should_return_response_200_when_get_converted_to_post_with_content() public void should_return_response_200_when_get_converted_to_post_with_content()
{ {
var port = RandomPortFinder.GetRandomPort();
var configuration = new FileConfiguration var configuration = new FileConfiguration
{ {
ReRoutes = new List<FileReRoute> ReRoutes = new List<FileReRoute>
@ -73,7 +77,7 @@ namespace Ocelot.AcceptanceTests
new FileHostAndPort new FileHostAndPort
{ {
Host = "localhost", Host = "localhost",
Port = 53271, Port = port,
}, },
}, },
DownstreamHttpMethod = "POST", DownstreamHttpMethod = "POST",
@ -84,7 +88,7 @@ namespace Ocelot.AcceptanceTests
const string expected = "here is some content"; const string expected = "here is some content";
var httpContent = new StringContent(expected); 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.GivenThereIsAConfiguration(configuration))
.And(x => _steps.GivenOcelotIsRunning()) .And(x => _steps.GivenOcelotIsRunning())
.When(x => _steps.WhenIGetUrlOnTheApiGateway("/", httpContent)) .When(x => _steps.WhenIGetUrlOnTheApiGateway("/", httpContent))
@ -96,6 +100,8 @@ namespace Ocelot.AcceptanceTests
[Fact] [Fact]
public void should_return_response_200_when_get_converted_to_get_with_content() public void should_return_response_200_when_get_converted_to_get_with_content()
{ {
var port = RandomPortFinder.GetRandomPort();
var configuration = new FileConfiguration var configuration = new FileConfiguration
{ {
ReRoutes = new List<FileReRoute> ReRoutes = new List<FileReRoute>
@ -111,7 +117,7 @@ namespace Ocelot.AcceptanceTests
new FileHostAndPort new FileHostAndPort
{ {
Host = "localhost", Host = "localhost",
Port = 53272, Port = port,
}, },
}, },
DownstreamHttpMethod = "GET", DownstreamHttpMethod = "GET",
@ -122,7 +128,7 @@ namespace Ocelot.AcceptanceTests
const string expected = "here is some content"; const string expected = "here is some content";
var httpContent = new StringContent(expected); 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.GivenThereIsAConfiguration(configuration))
.And(x => _steps.GivenOcelotIsRunning()) .And(x => _steps.GivenOcelotIsRunning())
.When(x => _steps.WhenIPostUrlOnTheApiGateway("/", httpContent)) .When(x => _steps.WhenIPostUrlOnTheApiGateway("/", httpContent))

View File

@ -25,6 +25,8 @@
[Fact] [Fact]
public void should_not_timeout() public void should_not_timeout()
{ {
var port = RandomPortFinder.GetRandomPort();
var configuration = new FileConfiguration var configuration = new FileConfiguration
{ {
ReRoutes = new List<FileReRoute> ReRoutes = new List<FileReRoute>
@ -37,7 +39,7 @@
new FileHostAndPort new FileHostAndPort
{ {
Host = "localhost", Host = "localhost",
Port = 51569, Port = port,
} }
}, },
DownstreamScheme = "http", 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.GivenThereIsAConfiguration(configuration))
.And(x => _steps.GivenOcelotIsRunningWithPolly()) .And(x => _steps.GivenOcelotIsRunningWithPolly())
.And(x => _steps.GivenThePostHasContent("postContent")) .And(x => _steps.GivenThePostHasContent("postContent"))
@ -64,6 +66,8 @@
[Fact] [Fact]
public void should_timeout() public void should_timeout()
{ {
var port = RandomPortFinder.GetRandomPort();
var configuration = new FileConfiguration var configuration = new FileConfiguration
{ {
ReRoutes = new List<FileReRoute> ReRoutes = new List<FileReRoute>
@ -76,7 +80,7 @@
new FileHostAndPort new FileHostAndPort
{ {
Host = "localhost", Host = "localhost",
Port = 51579, Port = port,
} }
}, },
DownstreamScheme = "http", 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.GivenThereIsAConfiguration(configuration))
.And(x => _steps.GivenOcelotIsRunningWithPolly()) .And(x => _steps.GivenOcelotIsRunningWithPolly())
.And(x => _steps.GivenThePostHasContent("postContent")) .And(x => _steps.GivenThePostHasContent("postContent"))
@ -103,6 +107,8 @@
[Fact] [Fact]
public void should_open_circuit_breaker_then_close() public void should_open_circuit_breaker_then_close()
{ {
var port = RandomPortFinder.GetRandomPort();
var configuration = new FileConfiguration var configuration = new FileConfiguration
{ {
ReRoutes = new List<FileReRoute> ReRoutes = new List<FileReRoute>
@ -116,7 +122,7 @@
new FileHostAndPort new FileHostAndPort
{ {
Host = "localhost", Host = "localhost",
Port = 51892, Port = port,
} }
}, },
UpstreamPathTemplate = "/", 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.GivenThereIsAConfiguration(configuration))
.Given(x => _steps.GivenOcelotIsRunningWithPolly()) .Given(x => _steps.GivenOcelotIsRunningWithPolly())
.When(x => _steps.WhenIGetUrlOnTheApiGateway("/")) .When(x => _steps.WhenIGetUrlOnTheApiGateway("/"))
@ -153,6 +159,9 @@
[Fact] [Fact]
public void open_circuit_should_not_effect_different_reRoute() public void open_circuit_should_not_effect_different_reRoute()
{ {
var port1 = RandomPortFinder.GetRandomPort();
var port2 = RandomPortFinder.GetRandomPort();
var configuration = new FileConfiguration var configuration = new FileConfiguration
{ {
ReRoutes = new List<FileReRoute> ReRoutes = new List<FileReRoute>
@ -166,7 +175,7 @@
new FileHostAndPort new FileHostAndPort
{ {
Host = "localhost", Host = "localhost",
Port = 51870, Port = port1,
} }
}, },
UpstreamPathTemplate = "/", UpstreamPathTemplate = "/",
@ -187,7 +196,7 @@
new FileHostAndPort new FileHostAndPort
{ {
Host = "localhost", Host = "localhost",
Port = 51880, Port = port2,
} }
}, },
UpstreamPathTemplate = "/working", UpstreamPathTemplate = "/working",
@ -196,8 +205,8 @@
} }
}; };
this.Given(x => x.GivenThereIsAPossiblyBrokenServiceRunningOn("http://localhost:51870", "Hello from Laura")) this.Given(x => x.GivenThereIsAPossiblyBrokenServiceRunningOn($"http://localhost:{port1}", "Hello from Laura"))
.And(x => x.GivenThereIsAServiceRunningOn("http://localhost:51880/", 200, "Hello from Tom", 0)) .And(x => x.GivenThereIsAServiceRunningOn($"http://localhost:{port2}/", 200, "Hello from Tom", 0))
.And(x => _steps.GivenThereIsAConfiguration(configuration)) .And(x => _steps.GivenThereIsAConfiguration(configuration))
.And(x => _steps.GivenOcelotIsRunningWithPolly()) .And(x => _steps.GivenOcelotIsRunningWithPolly())
.And(x => _steps.WhenIGetUrlOnTheApiGateway("/")) .And(x => _steps.WhenIGetUrlOnTheApiGateway("/"))

View File

@ -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<int> UsedPorts = new ConcurrentBag<int>();
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);
}
}
}

View File

@ -25,6 +25,8 @@ namespace Ocelot.AcceptanceTests
[Fact] [Fact]
public void should_return_reason_phrase() public void should_return_reason_phrase()
{ {
var port = RandomPortFinder.GetRandomPort();
var configuration = new FileConfiguration var configuration = new FileConfiguration
{ {
ReRoutes = new List<FileReRoute> ReRoutes = new List<FileReRoute>
@ -38,7 +40,7 @@ namespace Ocelot.AcceptanceTests
new FileHostAndPort new FileHostAndPort
{ {
Host = "localhost", Host = "localhost",
Port = 51339, Port = port,
} }
}, },
UpstreamPathTemplate = "/", 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.GivenThereIsAConfiguration(configuration))
.And(x => _steps.GivenOcelotIsRunning()) .And(x => _steps.GivenOcelotIsRunning())
.When(x => _steps.WhenIGetUrlOnTheApiGateway("/")) .When(x => _steps.WhenIGetUrlOnTheApiGateway("/"))

View File

@ -22,6 +22,8 @@
[Fact] [Fact]
public void should_use_default_request_id_and_forward() public void should_use_default_request_id_and_forward()
{ {
var port = RandomPortFinder.GetRandomPort();
var configuration = new FileConfiguration var configuration = new FileConfiguration
{ {
ReRoutes = new List<FileReRoute> ReRoutes = new List<FileReRoute>
@ -34,7 +36,7 @@
new FileHostAndPort new FileHostAndPort
{ {
Host = "localhost", Host = "localhost",
Port = 51873, Port = port,
} }
}, },
DownstreamScheme = "http", 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.GivenThereIsAConfiguration(configuration))
.And(x => _steps.GivenOcelotIsRunning()) .And(x => _steps.GivenOcelotIsRunning())
.When(x => _steps.WhenIGetUrlOnTheApiGateway("/")) .When(x => _steps.WhenIGetUrlOnTheApiGateway("/"))
@ -56,6 +58,8 @@
[Fact] [Fact]
public void should_use_request_id_and_forward() public void should_use_request_id_and_forward()
{ {
var port = RandomPortFinder.GetRandomPort();
var configuration = new FileConfiguration var configuration = new FileConfiguration
{ {
ReRoutes = new List<FileReRoute> ReRoutes = new List<FileReRoute>
@ -68,7 +72,7 @@
new FileHostAndPort new FileHostAndPort
{ {
Host = "localhost", Host = "localhost",
Port = 51873, Port = port,
} }
}, },
DownstreamScheme = "http", DownstreamScheme = "http",
@ -80,7 +84,7 @@
var requestId = Guid.NewGuid().ToString(); 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.GivenThereIsAConfiguration(configuration))
.And(x => _steps.GivenOcelotIsRunning()) .And(x => _steps.GivenOcelotIsRunning())
.When(x => _steps.WhenIGetUrlOnTheApiGateway("/", requestId)) .When(x => _steps.WhenIGetUrlOnTheApiGateway("/", requestId))
@ -91,6 +95,8 @@
[Fact] [Fact]
public void should_use_global_request_id_and_forward() public void should_use_global_request_id_and_forward()
{ {
var port = RandomPortFinder.GetRandomPort();
var configuration = new FileConfiguration var configuration = new FileConfiguration
{ {
ReRoutes = new List<FileReRoute> ReRoutes = new List<FileReRoute>
@ -103,7 +109,7 @@
new FileHostAndPort new FileHostAndPort
{ {
Host = "localhost", Host = "localhost",
Port = 51873, Port = port,
} }
}, },
DownstreamScheme = "http", DownstreamScheme = "http",
@ -119,7 +125,7 @@
var requestId = Guid.NewGuid().ToString(); 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.GivenThereIsAConfiguration(configuration))
.And(x => _steps.GivenOcelotIsRunning()) .And(x => _steps.GivenOcelotIsRunning())
.When(x => _steps.WhenIGetUrlOnTheApiGateway("/", requestId)) .When(x => _steps.WhenIGetUrlOnTheApiGateway("/", requestId))
@ -130,6 +136,8 @@
[Fact] [Fact]
public void should_use_global_request_id_create_and_forward() public void should_use_global_request_id_create_and_forward()
{ {
var port = RandomPortFinder.GetRandomPort();
var configuration = new FileConfiguration var configuration = new FileConfiguration
{ {
ReRoutes = new List<FileReRoute> ReRoutes = new List<FileReRoute>
@ -142,7 +150,7 @@
new FileHostAndPort new FileHostAndPort
{ {
Host = "localhost", Host = "localhost",
Port = 51873, Port = port,
} }
}, },
DownstreamScheme = "http", 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.GivenThereIsAConfiguration(configuration))
.And(x => _steps.GivenOcelotIsRunning()) .And(x => _steps.GivenOcelotIsRunning())
.When(x => _steps.WhenIGetUrlOnTheApiGateway("/")) .When(x => _steps.WhenIGetUrlOnTheApiGateway("/"))

View File

@ -21,6 +21,8 @@ namespace Ocelot.AcceptanceTests
[Fact] [Fact]
public void should_return_response_304_when_service_returns_304() public void should_return_response_304_when_service_returns_304()
{ {
var port = RandomPortFinder.GetRandomPort();
var configuration = new FileConfiguration var configuration = new FileConfiguration
{ {
ReRoutes = new List<FileReRoute> ReRoutes = new List<FileReRoute>
@ -34,7 +36,7 @@ namespace Ocelot.AcceptanceTests
new FileHostAndPort new FileHostAndPort
{ {
Host = "localhost", Host = "localhost",
Port = 51092, Port = port,
} }
}, },
UpstreamPathTemplate = "/{everything}", 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.GivenThereIsAConfiguration(configuration))
.And(x => _steps.GivenOcelotIsRunning()) .And(x => _steps.GivenOcelotIsRunning())
.When(x => _steps.WhenIGetUrlOnTheApiGateway("/inline.132.bundle.js")) .When(x => _steps.WhenIGetUrlOnTheApiGateway("/inline.132.bundle.js"))

View File

@ -21,6 +21,7 @@
[Fact] [Fact]
public void should_return_internal_server_error_if_downstream_service_returns_internal_server_error() public void should_return_internal_server_error_if_downstream_service_returns_internal_server_error()
{ {
var port = RandomPortFinder.GetRandomPort();
var configuration = new FileConfiguration var configuration = new FileConfiguration
{ {
@ -36,7 +37,7 @@
new FileHostAndPort new FileHostAndPort
{ {
Host = "localhost", Host = "localhost",
Port = 53876, Port = port,
} }
}, },
DownstreamScheme = "http", 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.GivenThereIsAConfiguration(configuration))
.And(x => _steps.GivenOcelotIsRunning()) .And(x => _steps.GivenOcelotIsRunning())
.When(x => _steps.WhenIGetUrlOnTheApiGateway("/")) .When(x => _steps.WhenIGetUrlOnTheApiGateway("/"))
@ -55,6 +56,8 @@
[Fact] [Fact]
public void should_log_warning_if_downstream_service_returns_internal_server_error() public void should_log_warning_if_downstream_service_returns_internal_server_error()
{ {
var port = RandomPortFinder.GetRandomPort();
var configuration = new FileConfiguration var configuration = new FileConfiguration
{ {
ReRoutes = new List<FileReRoute> ReRoutes = new List<FileReRoute>
@ -69,7 +72,7 @@
new FileHostAndPort new FileHostAndPort
{ {
Host = "localhost", Host = "localhost",
Port = 53876, Port = port,
}, },
}, },
DownstreamScheme = "http", 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.GivenThereIsAConfiguration(configuration))
.And(x => _steps.GivenOcelotIsRunningWithLogger()) .And(x => _steps.GivenOcelotIsRunningWithLogger())
.When(x => _steps.WhenIGetUrlOnTheApiGateway("/")) .When(x => _steps.WhenIGetUrlOnTheApiGateway("/"))

View File

@ -24,7 +24,7 @@ namespace Ocelot.AcceptanceTests
[Fact] [Fact]
public void should_not_match_forward_slash_in_pattern_before_next_forward_slash() public void should_not_match_forward_slash_in_pattern_before_next_forward_slash()
{ {
var port = 31879; var port = RandomPortFinder.GetRandomPort();
var configuration = new FileConfiguration var configuration = new FileConfiguration
{ {
ReRoutes = new List<FileReRoute> ReRoutes = new List<FileReRoute>
@ -69,6 +69,8 @@ namespace Ocelot.AcceptanceTests
[Fact] [Fact]
public void should_return_response_200_with_forward_slash_and_placeholder_only() public void should_return_response_200_with_forward_slash_and_placeholder_only()
{ {
var port = RandomPortFinder.GetRandomPort();
var configuration = new FileConfiguration var configuration = new FileConfiguration
{ {
ReRoutes = new List<FileReRoute> ReRoutes = new List<FileReRoute>
@ -84,14 +86,14 @@ namespace Ocelot.AcceptanceTests
new FileHostAndPort new FileHostAndPort
{ {
Host = "localhost", 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.GivenThereIsAConfiguration(configuration))
.And(x => _steps.GivenOcelotIsRunning()) .And(x => _steps.GivenOcelotIsRunning())
.When(x => _steps.WhenIGetUrlOnTheApiGateway("/")) .When(x => _steps.WhenIGetUrlOnTheApiGateway("/"))
@ -103,6 +105,8 @@ namespace Ocelot.AcceptanceTests
[Fact] [Fact]
public void should_return_response_200_favouring_forward_slash_with_path_route() public void should_return_response_200_favouring_forward_slash_with_path_route()
{ {
var port = RandomPortFinder.GetRandomPort();
var configuration = new FileConfiguration var configuration = new FileConfiguration
{ {
ReRoutes = new List<FileReRoute> ReRoutes = new List<FileReRoute>
@ -116,7 +120,7 @@ namespace Ocelot.AcceptanceTests
new FileHostAndPort new FileHostAndPort
{ {
Host = "localhost", Host = "localhost",
Port = 51880, Port = port,
} }
}, },
UpstreamPathTemplate = "/{url}", 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.GivenThereIsAConfiguration(configuration))
.And(x => _steps.GivenOcelotIsRunning()) .And(x => _steps.GivenOcelotIsRunning())
.When(x => _steps.WhenIGetUrlOnTheApiGateway("/test")) .When(x => _steps.WhenIGetUrlOnTheApiGateway("/test"))
@ -152,6 +156,7 @@ namespace Ocelot.AcceptanceTests
[Fact] [Fact]
public void should_return_response_200_favouring_forward_slash() public void should_return_response_200_favouring_forward_slash()
{ {
var port = RandomPortFinder.GetRandomPort();
var configuration = new FileConfiguration var configuration = new FileConfiguration
{ {
ReRoutes = new List<FileReRoute> ReRoutes = new List<FileReRoute>
@ -180,7 +185,7 @@ namespace Ocelot.AcceptanceTests
new FileHostAndPort new FileHostAndPort
{ {
Host = "localhost", Host = "localhost",
Port = 50810, Port = port,
} }
}, },
UpstreamPathTemplate = "/", 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.GivenThereIsAConfiguration(configuration))
.And(x => _steps.GivenOcelotIsRunning()) .And(x => _steps.GivenOcelotIsRunning())
.When(x => _steps.WhenIGetUrlOnTheApiGateway("/")) .When(x => _steps.WhenIGetUrlOnTheApiGateway("/"))
@ -201,6 +206,8 @@ namespace Ocelot.AcceptanceTests
[Fact] [Fact]
public void should_return_response_200_favouring_forward_slash_route_because_it_is_first() public void should_return_response_200_favouring_forward_slash_route_because_it_is_first()
{ {
var port = RandomPortFinder.GetRandomPort();
var configuration = new FileConfiguration var configuration = new FileConfiguration
{ {
ReRoutes = new List<FileReRoute> ReRoutes = new List<FileReRoute>
@ -214,7 +221,7 @@ namespace Ocelot.AcceptanceTests
new FileHostAndPort new FileHostAndPort
{ {
Host = "localhost", Host = "localhost",
Port = 51880, Port = port,
} }
}, },
UpstreamPathTemplate = "/", 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.GivenThereIsAConfiguration(configuration))
.And(x => _steps.GivenOcelotIsRunning()) .And(x => _steps.GivenOcelotIsRunning())
.When(x => _steps.WhenIGetUrlOnTheApiGateway("/")) .When(x => _steps.WhenIGetUrlOnTheApiGateway("/"))
@ -250,6 +257,8 @@ namespace Ocelot.AcceptanceTests
[Fact] [Fact]
public void should_return_response_200_with_nothing_and_placeholder_only() public void should_return_response_200_with_nothing_and_placeholder_only()
{ {
var port = RandomPortFinder.GetRandomPort();
var configuration = new FileConfiguration var configuration = new FileConfiguration
{ {
ReRoutes = new List<FileReRoute> ReRoutes = new List<FileReRoute>
@ -263,7 +272,7 @@ namespace Ocelot.AcceptanceTests
new FileHostAndPort new FileHostAndPort
{ {
Host = "localhost", Host = "localhost",
Port = 51005, Port = port,
} }
}, },
UpstreamPathTemplate = "/{url}", 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.GivenThereIsAConfiguration(configuration))
.And(x => _steps.GivenOcelotIsRunning()) .And(x => _steps.GivenOcelotIsRunning())
.When(x => _steps.WhenIGetUrlOnTheApiGateway("")) .When(x => _steps.WhenIGetUrlOnTheApiGateway(""))
@ -284,6 +293,8 @@ namespace Ocelot.AcceptanceTests
[Fact] [Fact]
public void should_return_response_200_with_simple_url() public void should_return_response_200_with_simple_url()
{ {
var port = RandomPortFinder.GetRandomPort();
var configuration = new FileConfiguration var configuration = new FileConfiguration
{ {
ReRoutes = new List<FileReRoute> ReRoutes = new List<FileReRoute>
@ -297,7 +308,7 @@ namespace Ocelot.AcceptanceTests
new FileHostAndPort new FileHostAndPort
{ {
Host = "localhost", Host = "localhost",
Port = 58589, Port = port,
} }
}, },
UpstreamPathTemplate = "/", 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.GivenThereIsAConfiguration(configuration))
.And(x => _steps.GivenOcelotIsRunning()) .And(x => _steps.GivenOcelotIsRunning())
.When(x => _steps.WhenIGetUrlOnTheApiGateway("/")) .When(x => _steps.WhenIGetUrlOnTheApiGateway("/"))
@ -318,6 +329,8 @@ namespace Ocelot.AcceptanceTests
[Fact] [Fact]
public void bug() public void bug()
{ {
var port = RandomPortFinder.GetRandomPort();
var configuration = new FileConfiguration var configuration = new FileConfiguration
{ {
ReRoutes = new List<FileReRoute> ReRoutes = new List<FileReRoute>
@ -331,7 +344,7 @@ namespace Ocelot.AcceptanceTests
new FileHostAndPort new FileHostAndPort
{ {
Host = "localhost", Host = "localhost",
Port = 51874, Port = port,
} }
}, },
UpstreamPathTemplate = "/vacancy/", UpstreamPathTemplate = "/vacancy/",
@ -347,7 +360,7 @@ namespace Ocelot.AcceptanceTests
new FileHostAndPort new FileHostAndPort
{ {
Host = "localhost", Host = "localhost",
Port = 51874, Port = port,
} }
}, },
UpstreamPathTemplate = "/vacancy/{vacancyId}", 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.GivenThereIsAConfiguration(configuration))
.And(x => _steps.GivenOcelotIsRunning()) .And(x => _steps.GivenOcelotIsRunning())
.When(x => _steps.WhenIGetUrlOnTheApiGateway("/vacancy/1")) .When(x => _steps.WhenIGetUrlOnTheApiGateway("/vacancy/1"))
@ -369,6 +382,8 @@ namespace Ocelot.AcceptanceTests
[Fact] [Fact]
public void should_return_response_200_when_path_missing_forward_slash_as_first_char() public void should_return_response_200_when_path_missing_forward_slash_as_first_char()
{ {
var port = RandomPortFinder.GetRandomPort();
var configuration = new FileConfiguration var configuration = new FileConfiguration
{ {
ReRoutes = new List<FileReRoute> ReRoutes = new List<FileReRoute>
@ -382,7 +397,7 @@ namespace Ocelot.AcceptanceTests
new FileHostAndPort new FileHostAndPort
{ {
Host = "localhost", Host = "localhost",
Port = 51206, Port = port,
} }
}, },
UpstreamPathTemplate = "/", 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.GivenThereIsAConfiguration(configuration))
.And(x => _steps.GivenOcelotIsRunning()) .And(x => _steps.GivenOcelotIsRunning())
.When(x => _steps.WhenIGetUrlOnTheApiGateway("/")) .When(x => _steps.WhenIGetUrlOnTheApiGateway("/"))
@ -403,6 +418,8 @@ namespace Ocelot.AcceptanceTests
[Fact] [Fact]
public void should_return_response_200_when_host_has_trailing_slash() public void should_return_response_200_when_host_has_trailing_slash()
{ {
var port = RandomPortFinder.GetRandomPort();
var configuration = new FileConfiguration var configuration = new FileConfiguration
{ {
ReRoutes = new List<FileReRoute> ReRoutes = new List<FileReRoute>
@ -416,7 +433,7 @@ namespace Ocelot.AcceptanceTests
new FileHostAndPort new FileHostAndPort
{ {
Host = "localhost", Host = "localhost",
Port = 51990, Port = port,
} }
}, },
UpstreamPathTemplate = "/", 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.GivenThereIsAConfiguration(configuration))
.And(x => _steps.GivenOcelotIsRunning()) .And(x => _steps.GivenOcelotIsRunning())
.When(x => _steps.WhenIGetUrlOnTheApiGateway("/")) .When(x => _steps.WhenIGetUrlOnTheApiGateway("/"))
@ -437,6 +454,8 @@ namespace Ocelot.AcceptanceTests
[Fact] [Fact]
public void should_return_ok_when_upstream_url_ends_with_forward_slash_but_template_does_not() public void should_return_ok_when_upstream_url_ends_with_forward_slash_but_template_does_not()
{ {
var port = RandomPortFinder.GetRandomPort();
var configuration = new FileConfiguration var configuration = new FileConfiguration
{ {
ReRoutes = new List<FileReRoute> ReRoutes = new List<FileReRoute>
@ -450,7 +469,7 @@ namespace Ocelot.AcceptanceTests
new FileHostAndPort new FileHostAndPort
{ {
Host = "localhost", Host = "localhost",
Port = 58804, Port = port,
} }
}, },
UpstreamPathTemplate = "/products/", 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.GivenThereIsAConfiguration(configuration))
.And(x => _steps.GivenOcelotIsRunning()) .And(x => _steps.GivenOcelotIsRunning())
.When(x => _steps.WhenIGetUrlOnTheApiGateway("/products")) .When(x => _steps.WhenIGetUrlOnTheApiGateway("/products"))
@ -471,6 +490,8 @@ namespace Ocelot.AcceptanceTests
[Fact] [Fact]
public void should_return_not_found_when_upstream_url_ends_with_forward_slash_but_template_does_not() 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 var configuration = new FileConfiguration
{ {
ReRoutes = new List<FileReRoute> ReRoutes = new List<FileReRoute>
@ -484,7 +505,7 @@ namespace Ocelot.AcceptanceTests
new FileHostAndPort new FileHostAndPort
{ {
Host = "localhost", Host = "localhost",
Port = 54015, Port = port,
} }
}, },
UpstreamPathTemplate = "/products", 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.GivenThereIsAConfiguration(configuration))
.And(x => _steps.GivenOcelotIsRunning()) .And(x => _steps.GivenOcelotIsRunning())
.When(x => _steps.WhenIGetUrlOnTheApiGateway("/products/")) .When(x => _steps.WhenIGetUrlOnTheApiGateway("/products/"))
@ -504,6 +525,8 @@ namespace Ocelot.AcceptanceTests
[Fact] [Fact]
public void should_return_not_found() public void should_return_not_found()
{ {
var port = RandomPortFinder.GetRandomPort();
var configuration = new FileConfiguration var configuration = new FileConfiguration
{ {
ReRoutes = new List<FileReRoute> ReRoutes = new List<FileReRoute>
@ -517,7 +540,7 @@ namespace Ocelot.AcceptanceTests
new FileHostAndPort new FileHostAndPort
{ {
Host = "localhost", Host = "localhost",
Port = 54072, Port = port,
} }
}, },
UpstreamPathTemplate = "/products/{productId}", 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.GivenThereIsAConfiguration(configuration))
.And(x => _steps.GivenOcelotIsRunning()) .And(x => _steps.GivenOcelotIsRunning())
.When(x => _steps.WhenIGetUrlOnTheApiGateway("/products/")) .When(x => _steps.WhenIGetUrlOnTheApiGateway("/products/"))
@ -537,6 +560,8 @@ namespace Ocelot.AcceptanceTests
[Fact] [Fact]
public void should_return_response_200_with_complex_url() public void should_return_response_200_with_complex_url()
{ {
var port = RandomPortFinder.GetRandomPort();
var configuration = new FileConfiguration var configuration = new FileConfiguration
{ {
ReRoutes = new List<FileReRoute> ReRoutes = new List<FileReRoute>
@ -550,7 +575,7 @@ namespace Ocelot.AcceptanceTests
new FileHostAndPort new FileHostAndPort
{ {
Host = "localhost", Host = "localhost",
Port = 55961, Port = port,
} }
}, },
UpstreamPathTemplate = "/products/{productId}", 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.GivenThereIsAConfiguration(configuration))
.And(x => _steps.GivenOcelotIsRunning()) .And(x => _steps.GivenOcelotIsRunning())
.When(x => _steps.WhenIGetUrlOnTheApiGateway("/products/1")) .When(x => _steps.WhenIGetUrlOnTheApiGateway("/products/1"))
@ -571,6 +596,8 @@ namespace Ocelot.AcceptanceTests
[Fact] [Fact]
public void should_return_response_200_with_complex_url_that_starts_with_placeholder() public void should_return_response_200_with_complex_url_that_starts_with_placeholder()
{ {
var port = RandomPortFinder.GetRandomPort();
var configuration = new FileConfiguration var configuration = new FileConfiguration
{ {
ReRoutes = new List<FileReRoute> ReRoutes = new List<FileReRoute>
@ -584,7 +611,7 @@ namespace Ocelot.AcceptanceTests
new FileHostAndPort new FileHostAndPort
{ {
Host = "localhost", Host = "localhost",
Port = 51116, Port = port,
} }
}, },
UpstreamPathTemplate = "/{variantId}/products/{productId}", 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.GivenThereIsAConfiguration(configuration))
.And(x => _steps.GivenOcelotIsRunning()) .And(x => _steps.GivenOcelotIsRunning())
.When(x => _steps.WhenIGetUrlOnTheApiGateway("23/products/1")) .When(x => _steps.WhenIGetUrlOnTheApiGateway("23/products/1"))
@ -605,6 +632,8 @@ namespace Ocelot.AcceptanceTests
[Fact] [Fact]
public void should_not_add_trailing_slash_to_downstream_url() public void should_not_add_trailing_slash_to_downstream_url()
{ {
var port = RandomPortFinder.GetRandomPort();
var configuration = new FileConfiguration var configuration = new FileConfiguration
{ {
ReRoutes = new List<FileReRoute> ReRoutes = new List<FileReRoute>
@ -618,7 +647,7 @@ namespace Ocelot.AcceptanceTests
new FileHostAndPort new FileHostAndPort
{ {
Host = "localhost", Host = "localhost",
Port = 51809, Port = port,
} }
}, },
UpstreamPathTemplate = "/products/{productId}", 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.GivenThereIsAConfiguration(configuration))
.And(x => _steps.GivenOcelotIsRunning()) .And(x => _steps.GivenOcelotIsRunning())
.When(x => _steps.WhenIGetUrlOnTheApiGateway("/products/1")) .When(x => _steps.WhenIGetUrlOnTheApiGateway("/products/1"))
@ -638,6 +667,8 @@ namespace Ocelot.AcceptanceTests
[Fact] [Fact]
public void should_return_response_201_with_simple_url() public void should_return_response_201_with_simple_url()
{ {
var port = RandomPortFinder.GetRandomPort();
var configuration = new FileConfiguration var configuration = new FileConfiguration
{ {
ReRoutes = new List<FileReRoute> ReRoutes = new List<FileReRoute>
@ -650,7 +681,7 @@ namespace Ocelot.AcceptanceTests
new FileHostAndPort new FileHostAndPort
{ {
Host = "localhost", Host = "localhost",
Port = 56615, Port = port,
} }
}, },
DownstreamScheme = "http", 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.GivenThereIsAConfiguration(configuration))
.And(x => _steps.GivenOcelotIsRunning()) .And(x => _steps.GivenOcelotIsRunning())
.And(x => _steps.GivenThePostHasContent("postContent")) .And(x => _steps.GivenThePostHasContent("postContent"))
@ -672,6 +703,8 @@ namespace Ocelot.AcceptanceTests
[Fact] [Fact]
public void should_return_response_201_with_complex_query_string() public void should_return_response_201_with_complex_query_string()
{ {
var port = RandomPortFinder.GetRandomPort();
var configuration = new FileConfiguration var configuration = new FileConfiguration
{ {
ReRoutes = new List<FileReRoute> ReRoutes = new List<FileReRoute>
@ -686,7 +719,7 @@ namespace Ocelot.AcceptanceTests
new FileHostAndPort new FileHostAndPort
{ {
Host = "localhost", Host = "localhost",
Port = 57771, Port = port,
} }
}, },
UpstreamHttpMethod = new List<string> { "Get" }, UpstreamHttpMethod = new List<string> { "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.GivenThereIsAConfiguration(configuration))
.And(x => _steps.GivenOcelotIsRunning()) .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=-")) .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] [Fact]
public void should_return_response_200_with_placeholder_for_final_url_path() public void should_return_response_200_with_placeholder_for_final_url_path()
{ {
var port = RandomPortFinder.GetRandomPort();
var configuration = new FileConfiguration var configuration = new FileConfiguration
{ {
ReRoutes = new List<FileReRoute> ReRoutes = new List<FileReRoute>
@ -719,7 +754,7 @@ namespace Ocelot.AcceptanceTests
new FileHostAndPort new FileHostAndPort
{ {
Host = "localhost", Host = "localhost",
Port = 55609, Port = port,
} }
}, },
UpstreamPathTemplate = "/myApp1Name/api/{urlPath}", 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.GivenThereIsAConfiguration(configuration))
.And(x => _steps.GivenOcelotIsRunning()) .And(x => _steps.GivenOcelotIsRunning())
.When(x => _steps.WhenIGetUrlOnTheApiGateway("/myApp1Name/api/products/1")) .When(x => _steps.WhenIGetUrlOnTheApiGateway("/myApp1Name/api/products/1"))
@ -740,6 +775,8 @@ namespace Ocelot.AcceptanceTests
[Fact] [Fact]
public void should_return_response_201_with_simple_url_and_multiple_upstream_http_method() public void should_return_response_201_with_simple_url_and_multiple_upstream_http_method()
{ {
var port = RandomPortFinder.GetRandomPort();
var configuration = new FileConfiguration var configuration = new FileConfiguration
{ {
ReRoutes = new List<FileReRoute> ReRoutes = new List<FileReRoute>
@ -752,7 +789,7 @@ namespace Ocelot.AcceptanceTests
new FileHostAndPort new FileHostAndPort
{ {
Host = "localhost", Host = "localhost",
Port = 59911, Port = port,
} }
}, },
DownstreamScheme = "http", 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.GivenThereIsAConfiguration(configuration))
.And(x => _steps.GivenOcelotIsRunning()) .And(x => _steps.GivenOcelotIsRunning())
.And(x => _steps.GivenThePostHasContent("postContent")) .And(x => _steps.GivenThePostHasContent("postContent"))
@ -774,6 +811,8 @@ namespace Ocelot.AcceptanceTests
[Fact] [Fact]
public void should_return_response_200_with_simple_url_and_any_upstream_http_method() public void should_return_response_200_with_simple_url_and_any_upstream_http_method()
{ {
var port = RandomPortFinder.GetRandomPort();
var configuration = new FileConfiguration var configuration = new FileConfiguration
{ {
ReRoutes = new List<FileReRoute> ReRoutes = new List<FileReRoute>
@ -786,7 +825,7 @@ namespace Ocelot.AcceptanceTests
new FileHostAndPort new FileHostAndPort
{ {
Host = "localhost", Host = "localhost",
Port = 59187, Port = port,
} }
}, },
DownstreamScheme = "http", 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.GivenThereIsAConfiguration(configuration))
.And(x => _steps.GivenOcelotIsRunning()) .And(x => _steps.GivenOcelotIsRunning())
.When(x => _steps.WhenIGetUrlOnTheApiGateway("/")) .When(x => _steps.WhenIGetUrlOnTheApiGateway("/"))
@ -808,6 +847,8 @@ namespace Ocelot.AcceptanceTests
[Fact] [Fact]
public void should_return_404_when_calling_upstream_route_with_no_matching_downstream_re_route_github_issue_134() 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 var configuration = new FileConfiguration
{ {
ReRoutes = new List<FileReRoute> ReRoutes = new List<FileReRoute>
@ -821,7 +862,7 @@ namespace Ocelot.AcceptanceTests
new FileHostAndPort new FileHostAndPort
{ {
Host = "localhost", Host = "localhost",
Port = 54079, Port = port,
} }
}, },
UpstreamPathTemplate = "/vacancy/", UpstreamPathTemplate = "/vacancy/",
@ -837,7 +878,7 @@ namespace Ocelot.AcceptanceTests
new FileHostAndPort new FileHostAndPort
{ {
Host = "localhost", Host = "localhost",
Port = 54079, Port = port,
} }
}, },
UpstreamPathTemplate = "/vacancy/{vacancyId}", 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.GivenThereIsAConfiguration(configuration))
.And(x => _steps.GivenOcelotIsRunning()) .And(x => _steps.GivenOcelotIsRunning())
.When(x => _steps.WhenIGetUrlOnTheApiGateway("api/vacancy/1")) .When(x => _steps.WhenIGetUrlOnTheApiGateway("api/vacancy/1"))
@ -858,6 +899,8 @@ namespace Ocelot.AcceptanceTests
[Fact] [Fact]
public void should_not_set_trailing_slash_on_url_template() public void should_not_set_trailing_slash_on_url_template()
{ {
var port = RandomPortFinder.GetRandomPort();
var configuration = new FileConfiguration var configuration = new FileConfiguration
{ {
ReRoutes = new List<FileReRoute> ReRoutes = new List<FileReRoute>
@ -871,7 +914,7 @@ namespace Ocelot.AcceptanceTests
new FileHostAndPort new FileHostAndPort
{ {
Host = "localhost", Host = "localhost",
Port = 51899, Port = port,
} }
}, },
UpstreamPathTemplate = "/platform/{url}", 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.GivenThereIsAConfiguration(configuration))
.And(x => _steps.GivenOcelotIsRunning()) .And(x => _steps.GivenOcelotIsRunning())
.When(x => _steps.WhenIGetUrlOnTheApiGateway("/platform/swagger/lib/backbone-min.js")) .When(x => _steps.WhenIGetUrlOnTheApiGateway("/platform/swagger/lib/backbone-min.js"))
@ -893,6 +936,8 @@ namespace Ocelot.AcceptanceTests
[Fact] [Fact]
public void should_use_priority() public void should_use_priority()
{ {
var port = RandomPortFinder.GetRandomPort();
var configuration = new FileConfiguration var configuration = new FileConfiguration
{ {
ReRoutes = new List<FileReRoute> ReRoutes = new List<FileReRoute>
@ -924,14 +969,14 @@ namespace Ocelot.AcceptanceTests
new FileHostAndPort new FileHostAndPort
{ {
Host = "localhost", 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.GivenThereIsAConfiguration(configuration))
.And(x => _steps.GivenOcelotIsRunning()) .And(x => _steps.GivenOcelotIsRunning())
.When(x => _steps.WhenIGetUrlOnTheApiGateway("/goods/delete")) .When(x => _steps.WhenIGetUrlOnTheApiGateway("/goods/delete"))
@ -943,7 +988,8 @@ namespace Ocelot.AcceptanceTests
[Fact] [Fact]
public void should_match_multiple_paths_with_catch_all() public void should_match_multiple_paths_with_catch_all()
{ {
var port = 61999; var port = RandomPortFinder.GetRandomPort();
var configuration = new FileConfiguration var configuration = new FileConfiguration
{ {
ReRoutes = new List<FileReRoute> ReRoutes = new List<FileReRoute>
@ -978,6 +1024,8 @@ namespace Ocelot.AcceptanceTests
[Fact] [Fact]
public void should_fix_issue_271() public void should_fix_issue_271()
{ {
var port = RandomPortFinder.GetRandomPort();
var configuration = new FileConfiguration var configuration = new FileConfiguration
{ {
ReRoutes = new List<FileReRoute> ReRoutes = new List<FileReRoute>
@ -993,7 +1041,7 @@ namespace Ocelot.AcceptanceTests
new FileHostAndPort new FileHostAndPort
{ {
Host = "localhost", 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.GivenThereIsAConfiguration(configuration))
.And(x => _steps.GivenOcelotIsRunning()) .And(x => _steps.GivenOcelotIsRunning())
.When(x => _steps.WhenIGetUrlOnTheApiGateway("/api/v1/modules/Test")) .When(x => _steps.WhenIGetUrlOnTheApiGateway("/api/v1/modules/Test"))

View File

@ -24,6 +24,7 @@ namespace Ocelot.AcceptanceTests
{ {
var subscriptionId = Guid.NewGuid().ToString(); var subscriptionId = Guid.NewGuid().ToString();
var unitId = Guid.NewGuid().ToString(); var unitId = Guid.NewGuid().ToString();
var port = RandomPortFinder.GetRandomPort();
var configuration = new FileConfiguration var configuration = new FileConfiguration
{ {
@ -38,7 +39,7 @@ namespace Ocelot.AcceptanceTests
new FileHostAndPort new FileHostAndPort
{ {
Host = "localhost", Host = "localhost",
Port = 61879, Port = port,
} }
}, },
UpstreamPathTemplate = "/api/units/{subscriptionId}/{unitId}/updates", 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.GivenThereIsAConfiguration(configuration))
.And(x => _steps.GivenOcelotIsRunning()) .And(x => _steps.GivenOcelotIsRunning())
.When(x => _steps.WhenIGetUrlOnTheApiGateway($"/api/units/{subscriptionId}/{unitId}/updates")) .When(x => _steps.WhenIGetUrlOnTheApiGateway($"/api/units/{subscriptionId}/{unitId}/updates"))
@ -61,7 +62,7 @@ namespace Ocelot.AcceptanceTests
{ {
var subscriptionId = Guid.NewGuid().ToString(); var subscriptionId = Guid.NewGuid().ToString();
var unitId = Guid.NewGuid().ToString(); var unitId = Guid.NewGuid().ToString();
var port = 57359; var port = RandomPortFinder.GetRandomPort();
var configuration = new FileConfiguration var configuration = new FileConfiguration
{ {
@ -99,6 +100,7 @@ namespace Ocelot.AcceptanceTests
{ {
var subscriptionId = Guid.NewGuid().ToString(); var subscriptionId = Guid.NewGuid().ToString();
var unitId = Guid.NewGuid().ToString(); var unitId = Guid.NewGuid().ToString();
var port = RandomPortFinder.GetRandomPort();
var configuration = new FileConfiguration var configuration = new FileConfiguration
{ {
@ -113,7 +115,7 @@ namespace Ocelot.AcceptanceTests
new FileHostAndPort new FileHostAndPort
{ {
Host = "localhost", Host = "localhost",
Port = 64879, Port = port,
} }
}, },
UpstreamPathTemplate = "/api/subscriptions/{subscriptionId}/updates?unitId={unitId}", 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.GivenThereIsAConfiguration(configuration))
.And(x => _steps.GivenOcelotIsRunning()) .And(x => _steps.GivenOcelotIsRunning())
.When(x => _steps.WhenIGetUrlOnTheApiGateway($"/api/subscriptions/{subscriptionId}/updates?unitId={unitId}")) .When(x => _steps.WhenIGetUrlOnTheApiGateway($"/api/subscriptions/{subscriptionId}/updates?unitId={unitId}"))
@ -136,6 +138,7 @@ namespace Ocelot.AcceptanceTests
{ {
var subscriptionId = Guid.NewGuid().ToString(); var subscriptionId = Guid.NewGuid().ToString();
var unitId = Guid.NewGuid().ToString(); var unitId = Guid.NewGuid().ToString();
var port = RandomPortFinder.GetRandomPort();
var configuration = new FileConfiguration var configuration = new FileConfiguration
{ {
@ -150,7 +153,7 @@ namespace Ocelot.AcceptanceTests
new FileHostAndPort new FileHostAndPort
{ {
Host = "localhost", Host = "localhost",
Port = 64879, Port = port,
} }
}, },
UpstreamPathTemplate = "/api/subscriptions/{subscriptionId}/updates?unitId={unitId}", 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.GivenThereIsAConfiguration(configuration))
.And(x => _steps.GivenOcelotIsRunning()) .And(x => _steps.GivenOcelotIsRunning())
.When(x => _steps.WhenIGetUrlOnTheApiGateway($"/api/subscriptions/{subscriptionId}/updates")) .When(x => _steps.WhenIGetUrlOnTheApiGateway($"/api/subscriptions/{subscriptionId}/updates"))
@ -172,6 +175,7 @@ namespace Ocelot.AcceptanceTests
{ {
var subscriptionId = Guid.NewGuid().ToString(); var subscriptionId = Guid.NewGuid().ToString();
var unitId = Guid.NewGuid().ToString(); var unitId = Guid.NewGuid().ToString();
var port = RandomPortFinder.GetRandomPort();
var configuration = new FileConfiguration var configuration = new FileConfiguration
{ {
@ -186,7 +190,7 @@ namespace Ocelot.AcceptanceTests
new FileHostAndPort new FileHostAndPort
{ {
Host = "localhost", Host = "localhost",
Port = 64879, Port = port,
} }
}, },
UpstreamPathTemplate = "/api/subscriptions/{subscriptionId}/updates?unitId={unitId}", 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.GivenThereIsAConfiguration(configuration))
.And(x => _steps.GivenOcelotIsRunning()) .And(x => _steps.GivenOcelotIsRunning())
.When(x => _steps.WhenIGetUrlOnTheApiGateway($"/api/subscriptions/{subscriptionId}/updates?test=1")) .When(x => _steps.WhenIGetUrlOnTheApiGateway($"/api/subscriptions/{subscriptionId}/updates?test=1"))
@ -208,6 +212,7 @@ namespace Ocelot.AcceptanceTests
{ {
var subscriptionId = Guid.NewGuid().ToString(); var subscriptionId = Guid.NewGuid().ToString();
var unitId = Guid.NewGuid().ToString(); var unitId = Guid.NewGuid().ToString();
var port = RandomPortFinder.GetRandomPort();
var configuration = new FileConfiguration var configuration = new FileConfiguration
{ {
@ -222,7 +227,7 @@ namespace Ocelot.AcceptanceTests
new FileHostAndPort new FileHostAndPort
{ {
Host = "localhost", Host = "localhost",
Port = 64879, Port = port,
} }
}, },
UpstreamPathTemplate = "/api/subscriptions/{subscriptionId}/updates?unitId={unitId}", 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.GivenThereIsAConfiguration(configuration))
.And(x => _steps.GivenOcelotIsRunning()) .And(x => _steps.GivenOcelotIsRunning())
.When(x => _steps.WhenIGetUrlOnTheApiGateway($"/api/subscriptions/{subscriptionId}/updates?unitId={unitId}&productId=1")) .When(x => _steps.WhenIGetUrlOnTheApiGateway($"/api/subscriptions/{subscriptionId}/updates?unitId={unitId}&productId=1"))

View File

@ -33,10 +33,12 @@
[Fact] [Fact]
public void should_use_consul_service_discovery_and_load_balance_request() 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 serviceName = "product";
var downstreamServiceOneUrl = "http://localhost:50881"; var downstreamServiceOneUrl = $"http://localhost:{servicePort1}";
var downstreamServiceTwoUrl = "http://localhost:50882"; var downstreamServiceTwoUrl = $"http://localhost:{servicePort2}";
var fakeConsulServiceDiscoveryUrl = $"http://localhost:{consulPort}"; var fakeConsulServiceDiscoveryUrl = $"http://localhost:{consulPort}";
var serviceEntryOne = new ServiceEntry() var serviceEntryOne = new ServiceEntry()
{ {
@ -44,7 +46,7 @@
{ {
Service = serviceName, Service = serviceName,
Address = "localhost", Address = "localhost",
Port = 50881, Port = servicePort1,
ID = Guid.NewGuid().ToString(), ID = Guid.NewGuid().ToString(),
Tags = new string[0] Tags = new string[0]
}, },
@ -55,7 +57,7 @@
{ {
Service = serviceName, Service = serviceName,
Address = "localhost", Address = "localhost",
Port = 50882, Port = servicePort2,
ID = Guid.NewGuid().ToString(), ID = Guid.NewGuid().ToString(),
Tags = new string[0] Tags = new string[0]
}, },
@ -100,9 +102,10 @@
[Fact] [Fact]
public void should_handle_request_to_consul_for_downstream_service_and_make_request() 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 serviceName = "web";
const string downstreamServiceOneUrl = "http://localhost:8080"; string downstreamServiceOneUrl = $"http://localhost:{servicePort}";
var fakeConsulServiceDiscoveryUrl = $"http://localhost:{consulPort}"; var fakeConsulServiceDiscoveryUrl = $"http://localhost:{consulPort}";
var serviceEntryOne = new ServiceEntry() var serviceEntryOne = new ServiceEntry()
{ {
@ -110,7 +113,7 @@
{ {
Service = serviceName, Service = serviceName,
Address = "localhost", Address = "localhost",
Port = 8080, Port = servicePort,
ID = "web_90_0_2_224_8080", ID = "web_90_0_2_224_8080",
Tags = new[] { "version-v1" } Tags = new[] { "version-v1" }
}, },
@ -154,9 +157,9 @@
[Fact] [Fact]
public void should_handle_request_to_consul_for_downstream_service_and_make_request_no_re_routes() 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 string serviceName = "web";
const int downstreamServicePort = 8087; int downstreamServicePort = RandomPortFinder.GetRandomPort();
var downstreamServiceOneUrl = $"http://localhost:{downstreamServicePort}"; var downstreamServiceOneUrl = $"http://localhost:{downstreamServicePort}";
var fakeConsulServiceDiscoveryUrl = $"http://localhost:{consulPort}"; var fakeConsulServiceDiscoveryUrl = $"http://localhost:{consulPort}";
var serviceEntryOne = new ServiceEntry() var serviceEntryOne = new ServiceEntry()
@ -204,10 +207,10 @@
[Fact] [Fact]
public void should_use_consul_service_discovery_and_load_balance_request_no_re_routes() 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 serviceName = "product";
var serviceOnePort = 50888; var serviceOnePort = RandomPortFinder.GetRandomPort();
var serviceTwoPort = 50889; var serviceTwoPort = RandomPortFinder.GetRandomPort();
var downstreamServiceOneUrl = $"http://localhost:{serviceOnePort}"; var downstreamServiceOneUrl = $"http://localhost:{serviceOnePort}";
var downstreamServiceTwoUrl = $"http://localhost:{serviceTwoPort}"; var downstreamServiceTwoUrl = $"http://localhost:{serviceTwoPort}";
var fakeConsulServiceDiscoveryUrl = $"http://localhost:{consulPort}"; var fakeConsulServiceDiscoveryUrl = $"http://localhost:{consulPort}";
@ -264,9 +267,10 @@
public void should_use_token_to_make_request_to_consul() public void should_use_token_to_make_request_to_consul()
{ {
var token = "abctoken"; var token = "abctoken";
var consulPort = 8515; var consulPort = RandomPortFinder.GetRandomPort();
var serviceName = "web"; var serviceName = "web";
var downstreamServiceOneUrl = "http://localhost:8081"; var servicePort = RandomPortFinder.GetRandomPort();
var downstreamServiceOneUrl = $"http://localhost:{servicePort}";
var fakeConsulServiceDiscoveryUrl = $"http://localhost:{consulPort}"; var fakeConsulServiceDiscoveryUrl = $"http://localhost:{consulPort}";
var serviceEntryOne = new ServiceEntry() var serviceEntryOne = new ServiceEntry()
{ {
@ -274,7 +278,7 @@
{ {
Service = serviceName, Service = serviceName,
Address = "localhost", Address = "localhost",
Port = 8081, Port = servicePort,
ID = "web_90_0_2_224_8080", ID = "web_90_0_2_224_8080",
Tags = new[] { "version-v1" } Tags = new[] { "version-v1" }
}, },
@ -320,10 +324,12 @@
[Fact] [Fact]
public void should_send_request_to_service_after_it_becomes_available_in_consul() public void should_send_request_to_service_after_it_becomes_available_in_consul()
{ {
var consulPort = 8501; var consulPort = RandomPortFinder.GetRandomPort();
var serviceName = "product"; var serviceName = "product";
var downstreamServiceOneUrl = "http://localhost:50879"; var servicePort1 = RandomPortFinder.GetRandomPort();
var downstreamServiceTwoUrl = "http://localhost:50880"; var servicePort2 = RandomPortFinder.GetRandomPort();
var downstreamServiceOneUrl = $"http://localhost:{servicePort1}";
var downstreamServiceTwoUrl = $"http://localhost:{servicePort2}";
var fakeConsulServiceDiscoveryUrl = $"http://localhost:{consulPort}"; var fakeConsulServiceDiscoveryUrl = $"http://localhost:{consulPort}";
var serviceEntryOne = new ServiceEntry() var serviceEntryOne = new ServiceEntry()
{ {
@ -331,7 +337,7 @@
{ {
Service = serviceName, Service = serviceName,
Address = "localhost", Address = "localhost",
Port = 50879, Port = servicePort1,
ID = Guid.NewGuid().ToString(), ID = Guid.NewGuid().ToString(),
Tags = new string[0] Tags = new string[0]
}, },
@ -342,7 +348,7 @@
{ {
Service = serviceName, Service = serviceName,
Address = "localhost", Address = "localhost",
Port = 50880, Port = servicePort2,
ID = Guid.NewGuid().ToString(), ID = Guid.NewGuid().ToString(),
Tags = new string[0] Tags = new string[0]
}, },
@ -396,9 +402,9 @@
[Fact] [Fact]
public void should_handle_request_to_poll_consul_for_downstream_service_and_make_request() 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 string serviceName = "web";
const int downstreamServicePort = 8082; int downstreamServicePort = RandomPortFinder.GetRandomPort();
var downstreamServiceOneUrl = $"http://localhost:{downstreamServicePort}"; var downstreamServiceOneUrl = $"http://localhost:{downstreamServicePort}";
var fakeConsulServiceDiscoveryUrl = $"http://localhost:{consulPort}"; var fakeConsulServiceDiscoveryUrl = $"http://localhost:{consulPort}";
var serviceEntryOne = new ServiceEntry() var serviceEntryOne = new ServiceEntry()

View File

@ -23,6 +23,8 @@ namespace Ocelot.AcceptanceTests
[Fact] [Fact]
public void should_fix_issue_555() public void should_fix_issue_555()
{ {
var port = RandomPortFinder.GetRandomPort();
var configuration = new FileConfiguration var configuration = new FileConfiguration
{ {
ReRoutes = new List<FileReRoute> ReRoutes = new List<FileReRoute>
@ -41,13 +43,13 @@ namespace Ocelot.AcceptanceTests
ServiceDiscoveryProvider = new FileServiceDiscoveryProvider() ServiceDiscoveryProvider = new FileServiceDiscoveryProvider()
{ {
Host = "localhost", Host = "localhost",
Port = 19081, Port = port,
Type = "ServiceFabric" 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.GivenThereIsAConfiguration(configuration))
.And(x => _steps.GivenOcelotIsRunning()) .And(x => _steps.GivenOcelotIsRunning())
.When(x => _steps.WhenIGetUrlOnTheApiGateway("/a?b=c")) .When(x => _steps.WhenIGetUrlOnTheApiGateway("/a?b=c"))
@ -59,6 +61,8 @@ namespace Ocelot.AcceptanceTests
[Fact] [Fact]
public void should_support_service_fabric_naming_and_dns_service_stateless_and_guest() public void should_support_service_fabric_naming_and_dns_service_stateless_and_guest()
{ {
var port = RandomPortFinder.GetRandomPort();
var configuration = new FileConfiguration var configuration = new FileConfiguration
{ {
ReRoutes = new List<FileReRoute> ReRoutes = new List<FileReRoute>
@ -77,13 +81,13 @@ namespace Ocelot.AcceptanceTests
ServiceDiscoveryProvider = new FileServiceDiscoveryProvider() ServiceDiscoveryProvider = new FileServiceDiscoveryProvider()
{ {
Host = "localhost", Host = "localhost",
Port = 19081, Port = port,
Type = "ServiceFabric" 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.GivenThereIsAConfiguration(configuration))
.And(x => _steps.GivenOcelotIsRunning()) .And(x => _steps.GivenOcelotIsRunning())
.When(x => _steps.WhenIGetUrlOnTheApiGateway("/EquipmentInterfaces?test=best")) .When(x => _steps.WhenIGetUrlOnTheApiGateway("/EquipmentInterfaces?test=best"))
@ -95,6 +99,8 @@ namespace Ocelot.AcceptanceTests
[Fact] [Fact]
public void should_support_service_fabric_naming_and_dns_service_statefull_and_actors() public void should_support_service_fabric_naming_and_dns_service_statefull_and_actors()
{ {
var port = RandomPortFinder.GetRandomPort();
var configuration = new FileConfiguration var configuration = new FileConfiguration
{ {
ReRoutes = new List<FileReRoute> ReRoutes = new List<FileReRoute>
@ -113,13 +119,13 @@ namespace Ocelot.AcceptanceTests
ServiceDiscoveryProvider = new FileServiceDiscoveryProvider() ServiceDiscoveryProvider = new FileServiceDiscoveryProvider()
{ {
Host = "localhost", Host = "localhost",
Port = 19081, Port = port,
Type = "ServiceFabric" 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.GivenThereIsAConfiguration(configuration))
.And(x => _steps.GivenOcelotIsRunning()) .And(x => _steps.GivenOcelotIsRunning())
.When(x => _steps.WhenIGetUrlOnTheApiGateway("/EquipmentInterfaces?PartitionKind=test&PartitionKey=1")) .When(x => _steps.WhenIGetUrlOnTheApiGateway("/EquipmentInterfaces?PartitionKind=test&PartitionKey=1"))
@ -131,6 +137,8 @@ namespace Ocelot.AcceptanceTests
[Fact] [Fact]
public void should_support_placeholder_in_service_fabric_service_name() public void should_support_placeholder_in_service_fabric_service_name()
{ {
var port = RandomPortFinder.GetRandomPort();
var configuration = new FileConfiguration var configuration = new FileConfiguration
{ {
ReRoutes = new List<FileReRoute> ReRoutes = new List<FileReRoute>
@ -149,13 +157,13 @@ namespace Ocelot.AcceptanceTests
ServiceDiscoveryProvider = new FileServiceDiscoveryProvider() ServiceDiscoveryProvider = new FileServiceDiscoveryProvider()
{ {
Host = "localhost", Host = "localhost",
Port = 19081, Port = port,
Type = "ServiceFabric" 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.GivenThereIsAConfiguration(configuration))
.And(x => _steps.GivenOcelotIsRunning()) .And(x => _steps.GivenOcelotIsRunning())
.When(x => _steps.WhenIGetUrlOnTheApiGateway("/api/1.0/values?test=best")) .When(x => _steps.WhenIGetUrlOnTheApiGateway("/api/1.0/values?test=best"))

View File

@ -23,7 +23,7 @@ namespace Ocelot.AcceptanceTests
[Fact] [Fact]
public void should_dangerous_accept_any_server_certificate_validator() public void should_dangerous_accept_any_server_certificate_validator()
{ {
int port = 51129; int port = RandomPortFinder.GetRandomPort();
var configuration = new FileConfiguration var configuration = new FileConfiguration
{ {
@ -60,7 +60,7 @@ namespace Ocelot.AcceptanceTests
[Fact] [Fact]
public void should_not_dangerous_accept_any_server_certificate_validator() public void should_not_dangerous_accept_any_server_certificate_validator()
{ {
int port = 52129; int port = RandomPortFinder.GetRandomPort();
var configuration = new FileConfiguration var configuration = new FileConfiguration
{ {

View File

@ -27,6 +27,8 @@
[Fact] [Fact]
public void should_not_try_and_write_to_disk_on_startup_when_not_using_admin_api() public void should_not_try_and_write_to_disk_on_startup_when_not_using_admin_api()
{ {
var port = RandomPortFinder.GetRandomPort();
var configuration = new FileConfiguration var configuration = new FileConfiguration
{ {
ReRoutes = new List<FileReRoute> ReRoutes = new List<FileReRoute>
@ -40,7 +42,7 @@
new FileHostAndPort new FileHostAndPort
{ {
Host = "localhost", Host = "localhost",
Port = 52179, Port = port,
} }
}, },
UpstreamPathTemplate = "/", UpstreamPathTemplate = "/",
@ -51,7 +53,7 @@
var fakeRepo = new FakeFileConfigurationRepository(); 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.GivenThereIsAConfiguration(configuration))
.And(x => _steps.GivenOcelotIsRunningWithBlowingUpDiskRepo(fakeRepo)) .And(x => _steps.GivenOcelotIsRunningWithBlowingUpDiskRepo(fakeRepo))
.When(x => _steps.WhenIGetUrlOnTheApiGateway("/")) .When(x => _steps.WhenIGetUrlOnTheApiGateway("/"))

View File

@ -25,8 +25,8 @@ namespace Ocelot.AcceptanceTests
[Fact] [Fact]
public void should_use_same_downstream_host() public void should_use_same_downstream_host()
{ {
var downstreamPortOne = 51375; var downstreamPortOne = RandomPortFinder.GetRandomPort();
var downstreamPortTwo = 51892; var downstreamPortTwo = RandomPortFinder.GetRandomPort();
var downstreamServiceOneUrl = $"http://localhost:{downstreamPortOne}"; var downstreamServiceOneUrl = $"http://localhost:{downstreamPortOne}";
var downstreamServiceTwoUrl = $"http://localhost:{downstreamPortTwo}"; var downstreamServiceTwoUrl = $"http://localhost:{downstreamPortTwo}";
@ -76,8 +76,8 @@ namespace Ocelot.AcceptanceTests
[Fact] [Fact]
public void should_use_different_downstream_host_for_different_re_route() public void should_use_different_downstream_host_for_different_re_route()
{ {
var downstreamPortOne = 52881; var downstreamPortOne = RandomPortFinder.GetRandomPort();
var downstreamPortTwo = 52892; var downstreamPortTwo = RandomPortFinder.GetRandomPort();
var downstreamServiceOneUrl = $"http://localhost:{downstreamPortOne}"; var downstreamServiceOneUrl = $"http://localhost:{downstreamPortOne}";
var downstreamServiceTwoUrl = $"http://localhost:{downstreamPortTwo}"; var downstreamServiceTwoUrl = $"http://localhost:{downstreamPortTwo}";
@ -154,8 +154,8 @@ namespace Ocelot.AcceptanceTests
[Fact] [Fact]
public void should_use_same_downstream_host_for_different_re_route() public void should_use_same_downstream_host_for_different_re_route()
{ {
var downstreamPortOne = 53881; var downstreamPortOne = RandomPortFinder.GetRandomPort();
var downstreamPortTwo = 53892; var downstreamPortTwo = RandomPortFinder.GetRandomPort();
var downstreamServiceOneUrl = $"http://localhost:{downstreamPortOne}"; var downstreamServiceOneUrl = $"http://localhost:{downstreamPortOne}";
var downstreamServiceTwoUrl = $"http://localhost:{downstreamPortTwo}"; var downstreamServiceTwoUrl = $"http://localhost:{downstreamPortTwo}";

View File

@ -28,9 +28,11 @@
[Fact] [Fact]
public void should_fix_issue_194() public void should_fix_issue_194()
{ {
var consulPort = 8503; var consulPort = RandomPortFinder.GetRandomPort();
var downstreamServiceOneUrl = "http://localhost:8362"; var servicePort1 = RandomPortFinder.GetRandomPort();
var downstreamServiceTwoUrl = "http://localhost:8330"; var servicePort2 = RandomPortFinder.GetRandomPort();
var downstreamServiceOneUrl = $"http://localhost:{servicePort1}";
var downstreamServiceTwoUrl = $"http://localhost:{servicePort2}";
var fakeConsulServiceDiscoveryUrl = $"http://localhost:{consulPort}"; var fakeConsulServiceDiscoveryUrl = $"http://localhost:{consulPort}";
var configuration = new FileConfiguration var configuration = new FileConfiguration
@ -46,7 +48,7 @@
new FileHostAndPort new FileHostAndPort
{ {
Host = "localhost", Host = "localhost",
Port = 8362, Port = servicePort1,
} }
}, },
UpstreamPathTemplate = "/api/user/{user}", UpstreamPathTemplate = "/api/user/{user}",
@ -61,7 +63,7 @@
new FileHostAndPort new FileHostAndPort
{ {
Host = "localhost", Host = "localhost",
Port = 8330, Port = servicePort2,
} }
}, },
UpstreamPathTemplate = "/api/product/{product}", UpstreamPathTemplate = "/api/product/{product}",

View File

@ -23,7 +23,7 @@ namespace Ocelot.AcceptanceTests
[Fact] [Fact]
public void should_return_response_200_with_simple_url_and_hosts_match() public void should_return_response_200_with_simple_url_and_hosts_match()
{ {
int port = 64905; int port = RandomPortFinder.GetRandomPort();
var configuration = new FileConfiguration var configuration = new FileConfiguration
{ {
@ -60,7 +60,7 @@ namespace Ocelot.AcceptanceTests
[Fact] [Fact]
public void should_return_response_200_with_simple_url_and_hosts_match_multiple_re_routes() 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 var configuration = new FileConfiguration
{ {
@ -113,7 +113,7 @@ namespace Ocelot.AcceptanceTests
[Fact] [Fact]
public void should_return_response_200_with_simple_url_and_hosts_match_multiple_re_routes_reversed() 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 var configuration = new FileConfiguration
{ {
@ -166,7 +166,7 @@ namespace Ocelot.AcceptanceTests
[Fact] [Fact]
public void should_return_response_200_with_simple_url_and_hosts_match_multiple_re_routes_reversed_with_no_host_first() 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 var configuration = new FileConfiguration
{ {
@ -218,7 +218,7 @@ namespace Ocelot.AcceptanceTests
[Fact] [Fact]
public void should_return_response_404_with_simple_url_and_hosts_dont_match() public void should_return_response_404_with_simple_url_and_hosts_dont_match()
{ {
int port = 64901; int port = RandomPortFinder.GetRandomPort();
var configuration = new FileConfiguration var configuration = new FileConfiguration
{ {

View File

@ -29,7 +29,7 @@ namespace Ocelot.AcceptanceTests
[Fact] [Fact]
public void should_proxy_websocket_input_to_downstream_service() public void should_proxy_websocket_input_to_downstream_service()
{ {
var downstreamPort = 5001; var downstreamPort = RandomPortFinder.GetRandomPort();
var downstreamHost = "localhost"; var downstreamHost = "localhost";
var config = new FileConfiguration var config = new FileConfiguration
@ -64,9 +64,9 @@ namespace Ocelot.AcceptanceTests
[Fact] [Fact]
public void should_proxy_websocket_input_to_downstream_service_and_use_load_balancer() public void should_proxy_websocket_input_to_downstream_service_and_use_load_balancer()
{ {
var downstreamPort = 5005; var downstreamPort = RandomPortFinder.GetRandomPort();
var downstreamHost = "localhost"; var downstreamHost = "localhost";
var secondDownstreamPort = 5006; var secondDownstreamPort = RandomPortFinder.GetRandomPort();
var secondDownstreamHost = "localhost"; var secondDownstreamHost = "localhost";
var config = new FileConfiguration var config = new FileConfiguration