mirror of
https://github.com/wiremock/WireMock.Net.git
synced 2026-03-26 03:11:56 +01:00
Fix WireMockContainerBuilder (duplicate entries) (#1222)
This commit is contained in:
@@ -7,8 +7,14 @@ using System.Threading.Tasks;
|
||||
|
||||
namespace WireMock.Net.Testcontainers.Utils;
|
||||
|
||||
internal static class ContainerUtils
|
||||
/// <summary>
|
||||
/// Some utility methods for containers.
|
||||
/// </summary>
|
||||
public static class TestcontainersUtils
|
||||
{
|
||||
/// <summary>
|
||||
/// Get the OS platform of the Docker image.
|
||||
/// </summary>
|
||||
public static Lazy<Task<OSPlatform>> GetImageOSAsync = new(async () =>
|
||||
{
|
||||
if (TestcontainersSettings.OS.DockerEndpointAuthConfig == null)
|
||||
@@ -164,7 +164,7 @@ public sealed class WireMockContainer : DockerContainer
|
||||
|
||||
private static async Task<bool> PathStartsWithContainerMappingsPath(string value)
|
||||
{
|
||||
var imageOs = await ContainerUtils.GetImageOSAsync.Value;
|
||||
var imageOs = await TestcontainersUtils.GetImageOSAsync.Value;
|
||||
|
||||
return value.StartsWith(ContainerInfoProvider.Info[imageOs].MappingsPath);
|
||||
}
|
||||
|
||||
@@ -36,7 +36,7 @@ public sealed class WireMockContainerBuilder : ContainerBuilder<WireMockContaine
|
||||
[PublicAPI]
|
||||
public WireMockContainerBuilder WithImage()
|
||||
{
|
||||
_imageOS ??= ContainerUtils.GetImageOSAsync.Value.GetAwaiter().GetResult();
|
||||
_imageOS ??= TestcontainersUtils.GetImageOSAsync.Value.GetAwaiter().GetResult();
|
||||
return WithImage(_imageOS.Value);
|
||||
}
|
||||
|
||||
@@ -108,9 +108,10 @@ public sealed class WireMockContainerBuilder : ContainerBuilder<WireMockContaine
|
||||
[PublicAPI]
|
||||
public WireMockContainerBuilder WithWatchStaticMappings(bool includeSubDirectories)
|
||||
{
|
||||
return Merge(DockerResourceConfiguration, DockerResourceConfiguration.WithWatchStaticMappings(includeSubDirectories))
|
||||
.WithCommand("--WatchStaticMappings true")
|
||||
.WithCommand($"--WatchStaticMappingsInSubdirectories {includeSubDirectories}");
|
||||
DockerResourceConfiguration.WithWatchStaticMappings(includeSubDirectories);
|
||||
return
|
||||
WithCommand("--WatchStaticMappings true").
|
||||
WithCommand("--WatchStaticMappingsInSubdirectories", includeSubDirectories);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@@ -124,9 +125,16 @@ public sealed class WireMockContainerBuilder : ContainerBuilder<WireMockContaine
|
||||
{
|
||||
Guard.NotNullOrEmpty(path);
|
||||
|
||||
return Merge(DockerResourceConfiguration, DockerResourceConfiguration.WithStaticMappingsPath(path))
|
||||
.WithReadStaticMappings()
|
||||
.WithCommand($"--WatchStaticMappingsInSubdirectories {includeSubDirectories}");
|
||||
DockerResourceConfiguration.WithStaticMappingsPath(path);
|
||||
|
||||
return
|
||||
WithReadStaticMappings().
|
||||
WithCommand("--WatchStaticMappingsInSubdirectories", includeSubDirectories);
|
||||
}
|
||||
|
||||
private WireMockContainerBuilder WithCommand(string param, bool value)
|
||||
{
|
||||
return !value ? this : WithCommand($"{param} true");
|
||||
}
|
||||
|
||||
private WireMockContainerBuilder(WireMockConfiguration dockerResourceConfiguration) : base(dockerResourceConfiguration)
|
||||
|
||||
Reference in New Issue
Block a user