Update WireMockContainerBuilder.WithMappings for "includeSubDirectories" (#1141)

This commit is contained in:
Stef Heyenrath
2024-07-22 21:24:08 +02:00
committed by GitHub
parent 54edf0bebc
commit 6ab1a6fd13

View File

@@ -13,7 +13,7 @@ using WireMock.Net.Testcontainers.Models;
namespace WireMock.Net.Testcontainers; namespace WireMock.Net.Testcontainers;
/// <summary> /// <summary>
/// An specific fluent Docker container builder for WireMock.Net /// A specific fluent Docker container builder for WireMock.Net
/// </summary> /// </summary>
public sealed class WireMockContainerBuilder : ContainerBuilder<WireMockContainerBuilder, WireMockContainer, WireMockConfiguration> public sealed class WireMockContainerBuilder : ContainerBuilder<WireMockContainerBuilder, WireMockContainer, WireMockConfiguration>
{ {
@@ -101,6 +101,7 @@ public sealed class WireMockContainerBuilder : ContainerBuilder<WireMockContaine
/// <summary> /// <summary>
/// Watch the static mapping files + folder for changes when running. /// Watch the static mapping files + folder for changes when running.
/// </summary> /// </summary>
/// <param name="includeSubDirectories">Also look in SubDirectories.</param>
/// <returns>A configured instance of <see cref="WireMockContainerBuilder"/></returns> /// <returns>A configured instance of <see cref="WireMockContainerBuilder"/></returns>
[PublicAPI] [PublicAPI]
public WireMockContainerBuilder WithWatchStaticMappings(bool includeSubDirectories) public WireMockContainerBuilder WithWatchStaticMappings(bool includeSubDirectories)
@@ -112,21 +113,20 @@ public sealed class WireMockContainerBuilder : ContainerBuilder<WireMockContaine
/// Specifies the path for the (static) mapping json files. /// Specifies the path for the (static) mapping json files.
/// </summary> /// </summary>
/// <param name="path">The path</param> /// <param name="path">The path</param>
/// <returns></returns> /// <param name="includeSubDirectories">Also look in SubDirectories.</param>
/// <returns>A configured instance of <see cref="WireMockContainerBuilder"/></returns>
[PublicAPI] [PublicAPI]
public WireMockContainerBuilder WithMappings(string path) public WireMockContainerBuilder WithMappings(string path, bool includeSubDirectories = false)
{ {
Guard.NotNullOrEmpty(path); Guard.NotNullOrEmpty(path);
var isWindows = _isWindowsAsLazy.Value.GetAwaiter().GetResult(); var isWindows = _isWindowsAsLazy.Value.GetAwaiter().GetResult();
return WithReadStaticMappings().WithBindMount(path, _info[isWindows].MappingsPath); return WithReadStaticMappings()
.WithCommand($"--WatchStaticMappingsInSubdirectories {includeSubDirectories}")
.WithBindMount(path, _info[isWindows].MappingsPath);
} }
/// <summary>
/// Initializes a new instance of the <see cref="WireMockContainerBuilder" /> class.
/// </summary>
/// <param name="dockerResourceConfiguration">The Docker resource configuration.</param>
private WireMockContainerBuilder(WireMockConfiguration dockerResourceConfiguration) : base(dockerResourceConfiguration) private WireMockContainerBuilder(WireMockConfiguration dockerResourceConfiguration) : base(dockerResourceConfiguration)
{ {
DockerResourceConfiguration = dockerResourceConfiguration; DockerResourceConfiguration = dockerResourceConfiguration;