mirror of
https://github.com/wiremock/WireMock.Net.git
synced 2026-03-28 12:22:14 +01:00
Fix StaticMappingsPath in WireMockContainerBuilder (#1187)
* Fix StaticMappingsPath in WireMockContainerBuilder * .
This commit is contained in:
@@ -118,7 +118,7 @@ internal class Program
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
builder = builder.WithMappings("./examples/WireMock.Net.Console.NET6/__admin/mappings");
|
builder = builder.WithMappings("/workspaces/WireMock.Net/examples/WireMock.Net.Console.NET6/__admin/mappings");
|
||||||
}
|
}
|
||||||
|
|
||||||
if (image != null)
|
if (image != null)
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
// Copyright © WireMock.Net
|
// Copyright © WireMock.Net
|
||||||
|
|
||||||
|
using System;
|
||||||
using Docker.DotNet.Models;
|
using Docker.DotNet.Models;
|
||||||
using DotNet.Testcontainers.Builders;
|
using DotNet.Testcontainers.Builders;
|
||||||
using DotNet.Testcontainers.Configurations;
|
using DotNet.Testcontainers.Configurations;
|
||||||
@@ -16,6 +17,8 @@ public sealed class WireMockConfiguration : ContainerConfiguration
|
|||||||
|
|
||||||
public string? Password { get; }
|
public string? Password { get; }
|
||||||
|
|
||||||
|
public string? StaticMappingsPath { get; private set; }
|
||||||
|
|
||||||
public bool HasBasicAuthentication => !string.IsNullOrEmpty(Username) && !string.IsNullOrEmpty(Password);
|
public bool HasBasicAuthentication => !string.IsNullOrEmpty(Username) && !string.IsNullOrEmpty(Password);
|
||||||
|
|
||||||
public WireMockConfiguration(string? username = null, string? password = null)
|
public WireMockConfiguration(string? username = null, string? password = null)
|
||||||
@@ -61,5 +64,17 @@ public sealed class WireMockConfiguration : ContainerConfiguration
|
|||||||
{
|
{
|
||||||
Username = BuildConfiguration.Combine(oldValue.Username, newValue.Username);
|
Username = BuildConfiguration.Combine(oldValue.Username, newValue.Username);
|
||||||
Password = BuildConfiguration.Combine(oldValue.Password, newValue.Password);
|
Password = BuildConfiguration.Combine(oldValue.Password, newValue.Password);
|
||||||
|
StaticMappingsPath = BuildConfiguration.Combine(oldValue.StaticMappingsPath, newValue.StaticMappingsPath);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Set the StaticMappingsPath.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="path">The path which contains the StaticMappings.</param>
|
||||||
|
/// <returns><see cref="WireMockConfiguration"/> </returns>
|
||||||
|
public WireMockConfiguration WithStaticMappingsPath(string path)
|
||||||
|
{
|
||||||
|
StaticMappingsPath = path;
|
||||||
|
return this;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -40,7 +40,6 @@ public sealed class WireMockContainerBuilder : ContainerBuilder<WireMockContaine
|
|||||||
});
|
});
|
||||||
|
|
||||||
private OSPlatform? _imageOS;
|
private OSPlatform? _imageOS;
|
||||||
private string? _staticMappingsPath;
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Initializes a new instance of the <see cref="ContainerBuilder" /> class.
|
/// Initializes a new instance of the <see cref="ContainerBuilder" /> class.
|
||||||
@@ -143,9 +142,11 @@ public sealed class WireMockContainerBuilder : ContainerBuilder<WireMockContaine
|
|||||||
[PublicAPI]
|
[PublicAPI]
|
||||||
public WireMockContainerBuilder WithMappings(string path, bool includeSubDirectories = false)
|
public WireMockContainerBuilder WithMappings(string path, bool includeSubDirectories = false)
|
||||||
{
|
{
|
||||||
_staticMappingsPath = Guard.NotNullOrEmpty(path);
|
Guard.NotNullOrEmpty(path);
|
||||||
|
|
||||||
return WithReadStaticMappings().WithCommand($"--WatchStaticMappingsInSubdirectories {includeSubDirectories}");
|
return Merge(DockerResourceConfiguration, DockerResourceConfiguration.WithStaticMappingsPath(path))
|
||||||
|
.WithReadStaticMappings()
|
||||||
|
.WithCommand($"--WatchStaticMappingsInSubdirectories {includeSubDirectories}");
|
||||||
}
|
}
|
||||||
|
|
||||||
private WireMockContainerBuilder(WireMockConfiguration dockerResourceConfiguration) : base(dockerResourceConfiguration)
|
private WireMockContainerBuilder(WireMockConfiguration dockerResourceConfiguration) : base(dockerResourceConfiguration)
|
||||||
@@ -178,9 +179,9 @@ public sealed class WireMockContainerBuilder : ContainerBuilder<WireMockContaine
|
|||||||
_imageOS = builder.DockerResourceConfiguration.Image.FullName.IndexOf("windows", StringComparison.OrdinalIgnoreCase) >= 0 ? OSPlatform.Windows : OSPlatform.Linux;
|
_imageOS = builder.DockerResourceConfiguration.Image.FullName.IndexOf("windows", StringComparison.OrdinalIgnoreCase) >= 0 ? OSPlatform.Windows : OSPlatform.Linux;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!string.IsNullOrEmpty(_staticMappingsPath))
|
if (!string.IsNullOrEmpty(builder.DockerResourceConfiguration.StaticMappingsPath))
|
||||||
{
|
{
|
||||||
builder = builder.WithBindMount(_staticMappingsPath, _info[_imageOS.Value].MappingsPath);
|
builder = builder.WithBindMount(builder.DockerResourceConfiguration.StaticMappingsPath, _info[_imageOS.Value].MappingsPath);
|
||||||
}
|
}
|
||||||
|
|
||||||
builder.Validate();
|
builder.Validate();
|
||||||
|
|||||||
Reference in New Issue
Block a user