@@ -7,9 +7,12 @@ namespace PactNet.Tests.Core
7
7
{
8
8
public class MockProviderHostConfigTests
9
9
{
10
- 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 )
10
+ private IPactCoreHostConfig GetSubject ( int port = 2322 , bool enableSsl = false ,
11
+ string consumerName = "My Test Consumer" , string providerName = "My Test Provider" ,
12
+ PactConfig pactConfig = null , IPAddress host = IPAddress . Loopback , string sslCert = null , string sslKey = null )
11
13
{
12
- return new MockProviderHostConfig ( port , enableSsl , consumerName , providerName , pactConfig ?? new PactConfig ( ) , host ) ;
14
+ return new MockProviderHostConfig ( port , enableSsl , consumerName , providerName ,
15
+ pactConfig ?? new PactConfig ( ) , host , sslCert , sslKey ) ;
13
16
}
14
17
15
18
[ Fact ]
@@ -32,7 +35,8 @@ public void Ctor_WhenCalled_SetsTheCorrectArgs()
32
35
33
36
var expectedLogFilePath = BuildExpectedLogFilePath ( pactConfig . LogDir , providerName ) ;
34
37
var expectedPactDir = BuildExpectedPactDir ( pactConfig . PactDir ) ;
35
- var expectedArguments = BuildExpectedArguments ( port , expectedLogFilePath , expectedPactDir , pactConfig . SpecificationVersion , consumerName , providerName ) ;
38
+ var expectedArguments = BuildExpectedArguments ( port , expectedLogFilePath , expectedPactDir ,
39
+ pactConfig . SpecificationVersion , consumerName , providerName ) ;
36
40
37
41
Assert . Equal ( expectedArguments , config . Arguments ) ;
38
42
}
@@ -50,7 +54,31 @@ public void Ctor_WhenCalledWithSsl_SetsTheCorrectArgs()
50
54
51
55
var expectedLogFilePath = BuildExpectedLogFilePath ( pactConfig . LogDir , providerName ) ;
52
56
var expectedPactDir = BuildExpectedPactDir ( pactConfig . PactDir ) ;
53
- var expectedArguments = BuildExpectedArguments ( port , expectedLogFilePath , expectedPactDir , pactConfig . SpecificationVersion , consumerName , providerName , enableSsl ) ;
57
+ var expectedArguments = BuildExpectedArguments ( port , expectedLogFilePath , expectedPactDir ,
58
+ pactConfig . SpecificationVersion , consumerName , providerName , enableSsl ) ;
59
+
60
+ Assert . Equal ( expectedArguments , config . Arguments ) ;
61
+ }
62
+
63
+ [ Fact ]
64
+ public void Ctor_WhenCalledWithCustomSsl_SetsTheCorrectArgs ( )
65
+ {
66
+ var port = 9332 ;
67
+ var pactConfig = new PactConfig ( ) ;
68
+ var consumerName = "Cons" ;
69
+ var providerName = "The best one" ;
70
+ var enableSsl = true ;
71
+ var sslCert = "..\\ cert\\ localhost.cer" ;
72
+ var sslKey = "..\\ cert\\ localhost.key" ;
73
+
74
+ var config = GetSubject ( port , enableSsl , consumerName , providerName , pactConfig , IPAddress . Loopback , sslCert , sslKey ) ;
75
+
76
+ var expectedLogFilePath = BuildExpectedLogFilePath ( pactConfig . LogDir , providerName ) ;
77
+ var expectedPactDir = BuildExpectedPactDir ( pactConfig . PactDir ) ;
78
+ var expectedSslCert = BuildExpectedSslOption ( sslCert ) ;
79
+ var expectedSslKey = BuildExpectedSslOption ( sslKey ) ;
80
+ var expectedArguments = BuildExpectedArguments ( port , expectedLogFilePath , expectedPactDir ,
81
+ pactConfig . SpecificationVersion , consumerName , providerName , enableSsl , IPAddress . Loopback , expectedSslCert , expectedSslKey ) ;
54
82
55
83
Assert . Equal ( expectedArguments , config . Arguments ) ;
56
84
}
@@ -69,7 +97,8 @@ public void Ctor_WhenCalledWithHost_SetsTheCorrectArgs()
69
97
70
98
var expectedLogFilePath = BuildExpectedLogFilePath ( pactConfig . LogDir , providerName ) ;
71
99
var expectedPactDir = BuildExpectedPactDir ( pactConfig . PactDir ) ;
72
- var expectedArguments = BuildExpectedArguments ( port , expectedLogFilePath , expectedPactDir , pactConfig . SpecificationVersion , consumerName , providerName , enableSsl , host ) ;
100
+ var expectedArguments = BuildExpectedArguments ( port , expectedLogFilePath , expectedPactDir ,
101
+ pactConfig . SpecificationVersion , consumerName , providerName , enableSsl , host ) ;
73
102
74
103
Assert . Equal ( expectedArguments , config . Arguments ) ;
75
104
}
@@ -79,7 +108,7 @@ public void Ctor_WhenCalledWithNonDefaultLogDirectory_SetsTheCorrectArgs()
79
108
{
80
109
var port = 9332 ;
81
110
var logDir = "./test" ;
82
- var pactConfig = new PactConfig { LogDir = logDir } ;
111
+ var pactConfig = new PactConfig { LogDir = logDir } ;
83
112
var consumerName = "Cons" ;
84
113
var providerName = "The best one" ;
85
114
var enableSsl = true ;
@@ -88,7 +117,8 @@ public void Ctor_WhenCalledWithNonDefaultLogDirectory_SetsTheCorrectArgs()
88
117
89
118
var expectedLogFilePath = BuildExpectedLogFilePath ( logDir + "\\ " , providerName ) ;
90
119
var expectedPactDir = BuildExpectedPactDir ( pactConfig . PactDir ) ;
91
- var expectedArguments = BuildExpectedArguments ( port , expectedLogFilePath , expectedPactDir , pactConfig . SpecificationVersion , consumerName , providerName , enableSsl ) ;
120
+ var expectedArguments = BuildExpectedArguments ( port , expectedLogFilePath , expectedPactDir ,
121
+ pactConfig . SpecificationVersion , consumerName , providerName , enableSsl ) ;
92
122
93
123
Assert . Equal ( expectedArguments , config . Arguments ) ;
94
124
}
@@ -98,7 +128,7 @@ public void Ctor_WhenCalledWithNonDefaultPactDirectory_SetsTheCorrectArgs()
98
128
{
99
129
var port = 9332 ;
100
130
var pactDir = "./test" ;
101
- var pactConfig = new PactConfig { PactDir = pactDir } ;
131
+ var pactConfig = new PactConfig { PactDir = pactDir } ;
102
132
var consumerName = "Cons" ;
103
133
var providerName = "The best one" ;
104
134
var enableSsl = true ;
@@ -107,7 +137,8 @@ public void Ctor_WhenCalledWithNonDefaultPactDirectory_SetsTheCorrectArgs()
107
137
108
138
var expectedLogFilePath = BuildExpectedLogFilePath ( pactConfig . LogDir , providerName ) ;
109
139
var expectedPactDir = BuildExpectedPactDir ( pactDir + "\\ " ) ;
110
- var expectedArguments = BuildExpectedArguments ( port , expectedLogFilePath , expectedPactDir , pactConfig . SpecificationVersion , consumerName , providerName , enableSsl ) ;
140
+ var expectedArguments = BuildExpectedArguments ( port , expectedLogFilePath , expectedPactDir ,
141
+ pactConfig . SpecificationVersion , consumerName , providerName , enableSsl ) ;
111
142
112
143
Assert . Equal ( expectedArguments , config . Arguments ) ;
113
144
}
@@ -129,6 +160,11 @@ private string BuildExpectedPactDir(string pactDir)
129
160
{
130
161
return pactDir . Replace ( "\\ " , "/" ) ;
131
162
}
163
+
164
+ private string BuildExpectedSslOption ( string fullName )
165
+ {
166
+ return $ "{ fullName } ". Replace ( "\\ " , "/" ) ;
167
+ }
132
168
133
169
private string BuildExpectedArguments (
134
170
int port ,
@@ -138,13 +174,22 @@ private string BuildExpectedArguments(
138
174
string consumerName ,
139
175
string providerName ,
140
176
bool enableSsl = false ,
141
- IPAddress host = IPAddress . Loopback )
177
+ IPAddress host = IPAddress . Loopback ,
178
+ string sslCert = "" ,
179
+ string sslKey = ""
180
+ )
142
181
{
143
-
144
182
var sslOption = enableSsl ? " --ssl" : "" ;
145
- var hostOption = host == IPAddress . Any ? " --host=0.0.0.0" : "" ;
146
-
147
- return $ "-p { port } -l \" { logFilePath } \" --pact-dir \" { pactFileDir } \" --pact-specification-version \" { pactSpecificationVersion } \" --consumer \" { consumerName } \" --provider \" { providerName } \" { sslOption } { hostOption } ";
183
+ var hostOption = host == IPAddress . Any ? " --host=0.0.0.0" : "" ;
184
+ var sslCertOption = ! string . IsNullOrEmpty ( sslCert ) ? $ " --sslcert=\" { sslCert } \" " : string . Empty ;
185
+ var sslKeyOption = ! string . IsNullOrEmpty ( sslKey ) ? $ " --sslkey=\" { sslKey } \" " : string . Empty ;
186
+
187
+ return
188
+ $ "-p { port } -l \" { logFilePath } \" " +
189
+ $ "--pact-dir \" { pactFileDir } \" " +
190
+ $ "--pact-specification-version \" { pactSpecificationVersion } \" " +
191
+ $ "--consumer \" { consumerName } \" " +
192
+ $ "--provider \" { providerName } \" { sslOption } { hostOption } { sslCertOption } { sslKeyOption } ";
148
193
}
149
194
}
150
- }
195
+ }
0 commit comments