Skip to content

Commit 513b36e

Browse files
authored
chore: Add test coverage to unbound port bindings (#966)
1 parent 8344f6a commit 513b36e

File tree

2 files changed

+26
-6
lines changed

2 files changed

+26
-6
lines changed

tests/Testcontainers.Platform.Linux.Tests/TarOutputMemoryStreamTest.cs

+4-4
Original file line numberDiff line numberDiff line change
@@ -109,8 +109,8 @@ public async Task TestFileExistsInContainer()
109109
.WithImage(CommonImages.Alpine)
110110
.WithEntrypoint(CommonCommands.SleepInfinity)
111111
.WithResourceMapping(_testFile, new FileInfo(targetFilePath1))
112-
.WithResourceMapping(_testFile, targetDirectoryPath1)
113-
.WithResourceMapping(_testFile.Directory, targetDirectoryPath2)
112+
.WithResourceMapping(_testFile.FullName, targetDirectoryPath1)
113+
.WithResourceMapping(_testFile.Directory.FullName, targetDirectoryPath2)
114114
.Build();
115115

116116
// When
@@ -123,10 +123,10 @@ await container.StartAsync()
123123
await container.CopyAsync(fileContent, targetFilePath2)
124124
.ConfigureAwait(false);
125125

126-
await container.CopyAsync(_testFile, targetDirectoryPath3)
126+
await container.CopyAsync(_testFile.FullName, targetDirectoryPath3)
127127
.ConfigureAwait(false);
128128

129-
await container.CopyAsync(_testFile.Directory, targetDirectoryPath4)
129+
await container.CopyAsync(_testFile.Directory.FullName, targetDirectoryPath4)
130130
.ConfigureAwait(false);
131131

132132
// Then

tests/Testcontainers.Tests/Unit/Containers/Unix/TestcontainersContainerTest.cs

+22-2
Original file line numberDiff line numberDiff line change
@@ -158,7 +158,8 @@ public async Task StaticPortBinding()
158158
await using var container = new ContainerBuilder()
159159
.WithImage(CommonImages.Nginx)
160160
.WithPortBinding(hostPort, containerPort)
161-
.WithWaitStrategy(Wait.ForUnixContainer().UntilPortIsAvailable(containerPort))
161+
.WithWaitStrategy(Wait.ForUnixContainer().UntilHttpRequestIsSucceeded(request =>
162+
request.ForPort(containerPort)))
162163
.Build();
163164

164165
// When
@@ -178,7 +179,8 @@ public async Task RandomPortBinding()
178179
await using var container = new ContainerBuilder()
179180
.WithImage(CommonImages.Nginx)
180181
.WithPortBinding(containerPort, true)
181-
.WithWaitStrategy(Wait.ForUnixContainer().UntilPortIsAvailable(containerPort))
182+
.WithWaitStrategy(Wait.ForUnixContainer().UntilHttpRequestIsSucceeded(request =>
183+
request.ForPort(containerPort)))
182184
.Build();
183185

184186
// When
@@ -189,6 +191,24 @@ await container.StartAsync()
189191
Assert.NotEqual(containerPort, container.GetMappedPublicPort(containerPort));
190192
}
191193

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+
192212
[Fact]
193213
public async Task BindMountAndCommand()
194214
{

0 commit comments

Comments
 (0)