Skip to content

Commit

Permalink
Changing listeningIpAddress back to host, so that it lines up with th…
Browse files Browse the repository at this point in the history
…e ruby service
  • Loading branch information
neilcampbell committed Nov 11, 2017
1 parent b4c4168 commit b53cb67
Show file tree
Hide file tree
Showing 10 changed files with 27 additions and 24 deletions.
14 changes: 7 additions & 7 deletions PactNet.Tests/Core/MockProviderHostConfigTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,9 @@ namespace PactNet.Tests.Core
{
public class MockProviderHostConfigTests
{
private IPactCoreHostConfig GetSubject(int port = 2322, bool enableSsl = false, string consumerName = "My Test Consumer", string providerName = "My Test Provider", PactConfig pactConfig = null, IPAddress listeningIpAddress= IPAddress.Loopback)
private IPactCoreHostConfig GetSubject(int port = 2322, bool enableSsl = false, string consumerName = "My Test Consumer", string providerName = "My Test Provider", PactConfig pactConfig = null, IPAddress host = IPAddress.Loopback)
{
return new MockProviderHostConfig(port, enableSsl, consumerName, providerName, pactConfig ?? new PactConfig(), listeningIpAddress);
return new MockProviderHostConfig(port, enableSsl, consumerName, providerName, pactConfig ?? new PactConfig(), host);
}

[Fact]
Expand Down Expand Up @@ -63,13 +63,13 @@ public void Ctor_WhenCalledWithHost_SetsTheCorrectArgs()
var consumerName = "Cons";
var providerName = "The best one";
var enableSsl = true;
var listeningIpAddress = IPAddress.Any;
var host = IPAddress.Any;

var config = GetSubject(port, enableSsl, consumerName, providerName, pactConfig, listeningIpAddress);
var config = GetSubject(port, enableSsl, consumerName, providerName, pactConfig, host);

var expectedLogFilePath = BuildExpectedLogFilePath(pactConfig.LogDir, providerName);
var expectedPactDir = BuildExpectedPactDir(pactConfig.PactDir);
var expectedArguments = BuildExpectedArguments(port, expectedLogFilePath, expectedPactDir, pactConfig.SpecificationVersion, consumerName, providerName, enableSsl, listeningIpAddress);
var expectedArguments = BuildExpectedArguments(port, expectedLogFilePath, expectedPactDir, pactConfig.SpecificationVersion, consumerName, providerName, enableSsl, host);

Assert.Equal(expectedArguments, config.Arguments);
}
Expand Down Expand Up @@ -138,11 +138,11 @@ private string BuildExpectedArguments(
string consumerName,
string providerName,
bool enableSsl = false,
IPAddress listeningIpAddress= IPAddress.Loopback)
IPAddress host = IPAddress.Loopback)
{

var sslOption = enableSsl ? " --ssl" : "";
var hostOption = listeningIpAddress == IPAddress.Any ? " --host=0.0.0.0" : "";
var hostOption = host == IPAddress.Any ? " --host=0.0.0.0" : "";

return $"-p {port} -l \"{logFilePath}\" --pact-dir \"{pactFileDir}\" --pact-specification-version \"{pactSpecificationVersion}\" --consumer \"{consumerName}\" --provider \"{providerName}\"{sslOption}{hostOption}";
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,9 +16,9 @@ public FailureIntegrationTestsMyApiPact()
{
var pactConfig = new PactConfig();

PactBuilder = new PactBuilder((port, enableSsl, consumerName, providerName, listeningIpAddress) =>
PactBuilder = new PactBuilder((port, enableSsl, consumerName, providerName, host) =>
new MockProviderService(
baseUri => new RubyHttpHost(baseUri, "MyConsumer", "MyApi", pactConfig, listeningIpAddress),
baseUri => new RubyHttpHost(baseUri, "MyConsumer", "MyApi", pactConfig, host),
port, enableSsl,
baseUri => new AdminHttpClient(baseUri)))
.ServiceConsumer("FailureIntegrationTests")
Expand Down
4 changes: 2 additions & 2 deletions PactNet.Tests/IntegrationTests/IntegrationTestsMyApiPact.cs
Original file line number Diff line number Diff line change
Expand Up @@ -16,9 +16,9 @@ public IntegrationTestsMyApiPact()
{
var pactConfig = new PactConfig();

PactBuilder = new PactBuilder((port, enableSsl, consumerName, providerName, listeningIpAddress) =>
PactBuilder = new PactBuilder((port, enableSsl, consumerName, providerName, host) =>
new MockProviderService(
baseUri => new RubyHttpHost(baseUri, "MyConsumer", "MyApi", pactConfig, listeningIpAddress),
baseUri => new RubyHttpHost(baseUri, "MyConsumer", "MyApi", pactConfig, host),
port, enableSsl,
baseUri => new AdminHttpClient(baseUri)))
.ServiceConsumer("IntegrationTests")
Expand Down
4 changes: 2 additions & 2 deletions PactNet/Core/MockProviderHostConfig.cs
Original file line number Diff line number Diff line change
Expand Up @@ -12,11 +12,11 @@ internal class MockProviderHostConfig : IPactCoreHostConfig
public bool WaitForExit { get; }
public IEnumerable<IOutput> Outputters { get; }

public MockProviderHostConfig(int port, bool enableSsl, string consumerName, string providerName, PactConfig config, IPAddress listeningIpAddress = IPAddress.Loopback)
public MockProviderHostConfig(int port, bool enableSsl, string consumerName, string providerName, PactConfig config, IPAddress host)
{
var logFile = $"{config.LogDir}{providerName.ToLowerSnakeCase()}_mock_service.log";
var sslOption = enableSsl ? " --ssl" : "";
var hostOption = listeningIpAddress == IPAddress.Loopback ? "" : $" --host=0.0.0.0";
var hostOption = host == IPAddress.Any ? $" --host=0.0.0.0" : "";

Script = "pact-mock-service";
Arguments = $"-p {port} -l \"{FixPathForRuby(logFile)}\" --pact-dir \"{FixPathForRuby(config.PactDir)}\" --pact-specification-version \"{config.SpecificationVersion}\" --consumer \"{consumerName}\" --provider \"{providerName}\"{sslOption}{hostOption}";
Expand Down
4 changes: 2 additions & 2 deletions PactNet/IPactBuilder.cs
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,8 @@ public interface IPactBuilder
{
IPactBuilder ServiceConsumer(string consumerName);
IPactBuilder HasPactWith(string providerName);
IMockProviderService MockService(int port, bool enableSsl = false, IPAddress listeningIpAddress = IPAddress.Loopback);
IMockProviderService MockService(int port, JsonSerializerSettings jsonSerializerSettings, bool enableSsl = false, IPAddress listeningIpAddress = IPAddress.Loopback);
IMockProviderService MockService(int port, bool enableSsl = false, IPAddress host = IPAddress.Loopback);
IMockProviderService MockService(int port, JsonSerializerSettings jsonSerializerSettings, bool enableSsl = false, IPAddress host = IPAddress.Loopback);
void Build();
}
}
4 changes: 2 additions & 2 deletions PactNet/Mocks/MockHttpService/Host/RubyHttpHost.cs
Original file line number Diff line number Diff line change
Expand Up @@ -19,14 +19,14 @@ internal RubyHttpHost(
_adminHttpClient = adminHttpClient;
}

public RubyHttpHost(Uri baseUri, string consumerName, string providerName, PactConfig config,IPAddress ipAddress = IPAddress.Loopback) :
public RubyHttpHost(Uri baseUri, string consumerName, string providerName, PactConfig config, IPAddress host = IPAddress.Loopback) :
this(new PactCoreHost<MockProviderHostConfig>(
new MockProviderHostConfig(baseUri.Port,
baseUri.Scheme.Equals("HTTPS", StringComparison.OrdinalIgnoreCase),
consumerName,
providerName,
config,
ipAddress)),
host)),
new AdminHttpClient(baseUri))
{
}
Expand Down
2 changes: 1 addition & 1 deletion PactNet/Mocks/MockHttpService/MockProviderService.cs
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ internal MockProviderService(
_adminHttpClient = adminHttpClientFactory(BaseUri);
}

public MockProviderService(int port, bool enableSsl, string consumerName, string providerName, PactConfig config, IPAddress ipAddress = IPAddress.Loopback)
public MockProviderService(int port, bool enableSsl, string consumerName, string providerName, PactConfig config, IPAddress ipAddress)
: this(
baseUri => new RubyHttpHost(baseUri, consumerName, providerName, config, ipAddress),
port,
Expand Down
10 changes: 5 additions & 5 deletions PactNet/PactBuilder.cs
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ public PactBuilder()
}

public PactBuilder(PactConfig config)
: this((port, enableSsl, consumerName, providerName, listeningIpAddress) => new MockProviderService(port, enableSsl, consumerName, providerName, config, listeningIpAddress))
: this((port, enableSsl, consumerName, providerName, host) => new MockProviderService(port, enableSsl, consumerName, providerName, config, host))
{
}

Expand Down Expand Up @@ -54,12 +54,12 @@ public IPactBuilder HasPactWith(string providerName)
return this;
}

public IMockProviderService MockService(int port, bool enableSsl = false, IPAddress listeningIpAddress = IPAddress.Loopback)
public IMockProviderService MockService(int port, bool enableSsl = false, IPAddress host = IPAddress.Loopback)
{
return MockService(port, jsonSerializerSettings: null, enableSsl: enableSsl, listeningIpAddress: listeningIpAddress);
return MockService(port, jsonSerializerSettings: null, enableSsl: enableSsl, host: host);
}

public IMockProviderService MockService(int port, JsonSerializerSettings jsonSerializerSettings, bool enableSsl = false, IPAddress listeningIpAddress = IPAddress.Loopback)
public IMockProviderService MockService(int port, JsonSerializerSettings jsonSerializerSettings, bool enableSsl = false, IPAddress host = IPAddress.Loopback)
{
if (String.IsNullOrEmpty(ConsumerName))
{
Expand All @@ -81,7 +81,7 @@ public IMockProviderService MockService(int port, JsonSerializerSettings jsonSer
JsonConfig.ApiSerializerSettings = jsonSerializerSettings;
}

_mockProviderService = _mockProviderServiceFactory(port, enableSsl, ConsumerName, ProviderName, listeningIpAddress);
_mockProviderService = _mockProviderServiceFactory(port, enableSsl, ConsumerName, ProviderName, host);

_mockProviderService.Start();

Expand Down
3 changes: 3 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -132,6 +132,9 @@ public class ConsumerMyApiPact : IDisposable
MockProviderService = PactBuilder.MockService(MockServerPort, true); //By passing true as the second param, you can enabled SSL. A self signed SSL cert will be provisioned by default.
//or
MockProviderService = PactBuilder.MockService(MockServerPort, new JsonSerializerSettings()); //You can also change the default Json serialization settings using this overload
//or
MockProviderService = PactBuilder.MockService(MockServerPort, host: IPAddress.Any); //By passing host as IPAddress.Any, the mock provider service will bind and listen on all ip addresses
}

public void Dispose()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,7 @@
"body": {
"eventId": "83f9262f-28f1-4703-ab1a-8cfd9e8249c9",
"eventType": "DetailsView",
"timestamp": "2017-10-19T01:16:09.3557066Z"
"timestamp": "2017-11-11T03:20:27.9990014Z"
},
"matchingRules": {
"$.headers.Server": {
Expand Down

0 comments on commit b53cb67

Please sign in to comment.