Skip to content

Commit 53187a2

Browse files
committedOct 1, 2024
Fix StaticMappingsPath in WireMockContainerBuilder
1 parent 76ae146 commit 53187a2

File tree

3 files changed

+23
-6
lines changed

3 files changed

+23
-6
lines changed
 

‎examples/WireMock.Net.TestcontainersExample/Program.cs

+1-1
Original file line numberDiff line numberDiff line change
@@ -118,7 +118,7 @@ private static async Task TestAsync(string? image = null)
118118
}
119119
else
120120
{
121-
builder = builder.WithMappings("./examples/WireMock.Net.Console.NET6/__admin/mappings");
121+
builder = builder.WithMappings("/workspaces/WireMock.Net/examples/WireMock.Net.Console.NET6/__admin/mappings");
122122
}
123123

124124
if (image != null)

‎src/WireMock.Net.Testcontainers/WireMockConfiguration.cs

+15
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
// Copyright © WireMock.Net
22

3+
using System;
34
using Docker.DotNet.Models;
45
using DotNet.Testcontainers.Builders;
56
using DotNet.Testcontainers.Configurations;
@@ -16,6 +17,8 @@ public sealed class WireMockConfiguration : ContainerConfiguration
1617

1718
public string? Password { get; }
1819

20+
public string? StaticMappingsPath { get; private set; }
21+
1922
public bool HasBasicAuthentication => !string.IsNullOrEmpty(Username) && !string.IsNullOrEmpty(Password);
2023

2124
public WireMockConfiguration(string? username = null, string? password = null)
@@ -61,5 +64,17 @@ public WireMockConfiguration(WireMockConfiguration oldValue, WireMockConfigurati
6164
{
6265
Username = BuildConfiguration.Combine(oldValue.Username, newValue.Username);
6366
Password = BuildConfiguration.Combine(oldValue.Password, newValue.Password);
67+
StaticMappingsPath = BuildConfiguration.Combine(oldValue.StaticMappingsPath, newValue.StaticMappingsPath);
68+
}
69+
70+
/// <summary>
71+
///
72+
/// </summary>
73+
/// <param name="staticMappingsPath"></param>
74+
/// <returns></returns>
75+
public WireMockConfiguration WithStaticMappingsPath(string staticMappingsPath)
76+
{
77+
StaticMappingsPath = staticMappingsPath;
78+
return this;
6479
}
6580
}

‎src/WireMock.Net.Testcontainers/WireMockContainerBuilder.cs

+7-5
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ public sealed class WireMockContainerBuilder : ContainerBuilder<WireMockContaine
4040
});
4141

4242
private OSPlatform? _imageOS;
43-
private string? _staticMappingsPath;
43+
// private string? _staticMappingsPath;
4444

4545
/// <summary>
4646
/// Initializes a new instance of the <see cref="ContainerBuilder" /> class.
@@ -143,9 +143,11 @@ public WireMockContainerBuilder WithWatchStaticMappings(bool includeSubDirectori
143143
[PublicAPI]
144144
public WireMockContainerBuilder WithMappings(string path, bool includeSubDirectories = false)
145145
{
146-
_staticMappingsPath = Guard.NotNullOrEmpty(path);
146+
Guard.NotNullOrEmpty(path);
147147

148-
return WithReadStaticMappings().WithCommand($"--WatchStaticMappingsInSubdirectories {includeSubDirectories}");
148+
return Merge(DockerResourceConfiguration, DockerResourceConfiguration.WithStaticMappingsPath(path))
149+
.WithReadStaticMappings()
150+
.WithCommand($"--WatchStaticMappingsInSubdirectories {includeSubDirectories}");
149151
}
150152

151153
private WireMockContainerBuilder(WireMockConfiguration dockerResourceConfiguration) : base(dockerResourceConfiguration)
@@ -178,9 +180,9 @@ public override WireMockContainer Build()
178180
_imageOS = builder.DockerResourceConfiguration.Image.FullName.IndexOf("windows", StringComparison.OrdinalIgnoreCase) >= 0 ? OSPlatform.Windows : OSPlatform.Linux;
179181
}
180182

181-
if (!string.IsNullOrEmpty(_staticMappingsPath))
183+
if (!string.IsNullOrEmpty(builder.DockerResourceConfiguration.StaticMappingsPath))
182184
{
183-
builder = builder.WithBindMount(_staticMappingsPath, _info[_imageOS.Value].MappingsPath);
185+
builder = builder.WithBindMount(builder.DockerResourceConfiguration.StaticMappingsPath, _info[_imageOS.Value].MappingsPath);
184186
}
185187

186188
builder.Validate();

0 commit comments

Comments
 (0)