@@ -158,7 +158,8 @@ public async Task StaticPortBinding()
158
158
await using var container = new ContainerBuilder ( )
159
159
. WithImage ( CommonImages . Nginx )
160
160
. WithPortBinding ( hostPort , containerPort )
161
- . WithWaitStrategy ( Wait . ForUnixContainer ( ) . UntilPortIsAvailable ( containerPort ) )
161
+ . WithWaitStrategy ( Wait . ForUnixContainer ( ) . UntilHttpRequestIsSucceeded ( request =>
162
+ request . ForPort ( containerPort ) ) )
162
163
. Build ( ) ;
163
164
164
165
// When
@@ -178,7 +179,8 @@ public async Task RandomPortBinding()
178
179
await using var container = new ContainerBuilder ( )
179
180
. WithImage ( CommonImages . Nginx )
180
181
. WithPortBinding ( containerPort , true )
181
- . WithWaitStrategy ( Wait . ForUnixContainer ( ) . UntilPortIsAvailable ( containerPort ) )
182
+ . WithWaitStrategy ( Wait . ForUnixContainer ( ) . UntilHttpRequestIsSucceeded ( request =>
183
+ request . ForPort ( containerPort ) ) )
182
184
. Build ( ) ;
183
185
184
186
// When
@@ -189,6 +191,24 @@ await container.StartAsync()
189
191
Assert . NotEqual ( containerPort , container . GetMappedPublicPort ( containerPort ) ) ;
190
192
}
191
193
194
+ [ Fact ]
195
+ public async Task UnboundPortBindingThrowsException ( )
196
+ {
197
+ // Given
198
+ await using var container = new ContainerBuilder ( )
199
+ . WithImage ( CommonImages . Alpine )
200
+ . WithEntrypoint ( CommonCommands . SleepInfinity )
201
+ . WithPortBinding ( 80 , true )
202
+ . Build ( ) ;
203
+
204
+ // When
205
+ await container . StartAsync ( )
206
+ . ConfigureAwait ( false ) ;
207
+
208
+ // Then
209
+ Assert . Throws < InvalidOperationException > ( ( ) => container . GetMappedPublicPort ( 443 ) ) ;
210
+ }
211
+
192
212
[ Fact ]
193
213
public async Task BindMountAndCommand ( )
194
214
{
0 commit comments