From f18c2ce3245f60fe7fae4e6b39023a6083467cad Mon Sep 17 00:00:00 2001 From: Stef Heyenrath Date: Mon, 29 Jul 2024 19:00:42 +0200 Subject: [PATCH] Use AppendGuidToSavedMappingFile in local proxy settings --- .../Serialization/MappingFileNameSanitizer.cs | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/src/WireMock.Net/Serialization/MappingFileNameSanitizer.cs b/src/WireMock.Net/Serialization/MappingFileNameSanitizer.cs index c41716d5..a9419fe8 100644 --- a/src/WireMock.Net/Serialization/MappingFileNameSanitizer.cs +++ b/src/WireMock.Net/Serialization/MappingFileNameSanitizer.cs @@ -10,16 +10,12 @@ namespace WireMock.Serialization; /// /// Creates sanitized file names for mappings /// -public class MappingFileNameSanitizer +internal class MappingFileNameSanitizer(WireMockServerSettings settings) { + private const string SpaceChar = " "; private const char ReplaceChar = '_'; - private readonly WireMockServerSettings _settings; - - public MappingFileNameSanitizer(WireMockServerSettings settings) - { - _settings = Guard.NotNull(settings); - } + private readonly WireMockServerSettings _settings = Guard.NotNull(settings); /// /// Creates sanitized file names for mappings @@ -30,7 +26,7 @@ public class MappingFileNameSanitizer if (!string.IsNullOrEmpty(mapping.Title)) { // remove 'Proxy Mapping for ' and an extra space character after the HTTP request method - name = mapping.Title.Replace(ProxyAndRecordSettings.DefaultPrefixForSavedMappingFile, "").Replace(' '.ToString(), string.Empty); + name = mapping.Title!.Replace(ProxyAndRecordSettings.DefaultPrefixForSavedMappingFile, string.Empty).Replace(SpaceChar, string.Empty); if (_settings.ProxyAndRecordSettings?.AppendGuidToSavedMappingFile == true) { name += $"{ReplaceChar}{mapping.Guid}"; @@ -43,8 +39,9 @@ public class MappingFileNameSanitizer if (!string.IsNullOrEmpty(_settings.ProxyAndRecordSettings?.PrefixForSavedMappingFile)) { - name = $"{_settings.ProxyAndRecordSettings.PrefixForSavedMappingFile}{ReplaceChar}{name}"; + name = $"{_settings.ProxyAndRecordSettings!.PrefixForSavedMappingFile}{ReplaceChar}{name}"; } + return $"{Path.GetInvalidFileNameChars().Aggregate(name, (current, c) => current.Replace(c, ReplaceChar))}.json"; } }