m4tchl0ck
f919929cb7
Add injectable IScenarioStateStore for distributed scenario state ( #1430 )
...
* Move ScenarioState to Abstractions and add IScenarioStateStore interface
ScenarioState is moved to the Abstractions project so it can be referenced
by the new IScenarioStateStore interface. The interface defines the contract
for storing and retrieving scenario states, enabling distributed implementations.
* Add InMemoryScenarioStateStore default implementation
Wraps ConcurrentDictionary with OrdinalIgnoreCase comparer, preserving
exact current behavior. The Update method encapsulates read-modify-write
so distributed implementations can make it atomic.
* Wire IScenarioStateStore into middleware options, settings, and consumers
Replace direct ConcurrentDictionary<string, ScenarioState> usage with
IScenarioStateStore across all consumer files. The store is injectable
via WireMockServerSettings.ScenarioStateStore, defaulting to the
InMemoryScenarioStateStore for backward compatibility.
* Add FileBasedScenarioStateStore for persistent scenario state
In-memory ConcurrentDictionary backed by JSON file persistence in
__admin/scenarios/. Reads from cache, mutations write through to disk.
Constructor loads existing state from disk on startup.
* Make ScenarioStateStore non-nullable with default InMemoryScenarioStateStore
Move InMemoryScenarioStateStore from WireMock.Net.Minimal to
WireMock.Net.Shared so it lives alongside WireMockServerSettings.
This allows WireMockServerSettings.ScenarioStateStore to be
non-nullable with a default value, following the same pattern as
DefaultJsonSerializer. The null-coalescing fallback in
WireMockMiddlewareOptionsHelper is no longer needed.
2026-03-25 13:04:44 +01:00
Logan Dam
cdd33695e5
Add helpers for query params fluent MappingModelBuilder ( #1425 )
...
* Add helpers for query params
* add example with query params
* add fluent helpers for WithHeaders and WithCookies
---------
Co-authored-by: Logan Dam <Logan.Dam@rabobank.com >
Co-authored-by: Stef Heyenrath <Stef.Heyenrath@gmail.com >
2026-03-14 10:39:30 +01:00
Stef Heyenrath
d08ce944b6
Fix WireMockLogger implementation in dotnet-WireMock ( #1431 )
2026-03-13 18:34:47 +01:00
Stef Heyenrath
0a9f37e857
readme
2026-03-11 18:14:09 +01:00
Stef Heyenrath
a292f28dda
Version 2.x ( #1359 )
...
* Version 2.x
* Setup .NET 9
* 12
* cleanup some #if for NETSTANDARD1_3
* cleanup + fix tests for net8
* openapi
* NO ConfigureAwait(false) + cleanup
* .
* #endif
* HashSet
* WireMock.Net.NUnit
* HttpContext
* Add WebSockets (#1423 )
* Add WebSockets
* Add tests
* fix
* more tests
* Add tests
* ...
* remove IOwin
* -
* tests
* fluent
* ok
* match
* .
* byte[]
* x
* func
* func
* byte
* trans
* ...
* frameworks.........
* jmes
* xxx
* sc
* using var httpClient = new HttpClient();
* usings
* maxRetries
* up
* xunit v3
* ct
* ---
* ct
* ct2
* T Unit
* WireMock.Net.TUnitTests / 10
* t unit first
* --project
* no tunit
* t2
* --project
* --project
* ci - --project
* publish ./test/wiremock-coverage.xml
* windows
* .
* log
* ...
* log
* goed
* BodyType
* .
* .
* --scenario
* ...
* pact
* ct
* .
* WireMock.Net.RestClient.AwesomeAssertions (#1427 )
* WireMock.Net.RestClient.AwesomeAssertions
* ok
* atpath
* fix test
* sonar fixes
* ports
* proxy test
* FIX?
* ---
* await Task.Delay(100, _ct);
* ?
* --project
* Aspire: use IDistributedApplicationEventingSubscriber (#1428 )
* broadcast
* ok
* more tsts
* .
* Collection
* up
* .
* 2
* remove nfluent
* <VersionPrefix>2.0.0-preview-02</VersionPrefix>
* ...
* .
* nuget icon
* .
* <PackageReference Include="JmesPath.Net" Version="1.1.0" />
* x
* 500
* .
* fix some warnings
* ws
2026-03-11 17:02:47 +01:00
Stef Heyenrath
df85649b67
MappingSerializer (Newtonsoft or SystemText)-Json ( #1394 )
...
* MappingSerializer
* json
* .
* 0.8.0
* test
* mm
2026-02-14 08:42:18 +01:00
Stef Heyenrath
702e156ddc
Fix MimePartMatcher and add more tests ( #1389 )
...
* mp
* .
* --return
* Fixed
* --
* ...
* fix
* ...
* .
2026-01-24 09:15:43 +01:00
Stef Heyenrath
6da190e596
Aspire: Add WithProtoDefinition to support proto definition at server level ( #1383 )
...
* Add property UseHttp2 to WireMockServerArguments
* .
* additionalUrls
* ok?
* WireMockServerArguments
* fx
* AddProtoDefinition
* ...
* FIX
* Always add the lifecycle hook to support dynamic mappings and proto definitions
2025-12-07 10:50:11 +01:00
Stef Heyenrath
21601889e0
Check if the path is valid when using WithPath(...) ( #1377 )
2025-11-08 09:02:00 +01:00
Stef Heyenrath
b9019a2f61
Update ProxyUrlReplaceSettingsModel with TransformTemplate property ( #1362 )
...
* Update ProxyUrlReplaceSettingsModel with TransformTemplate property + parse settings correctly
* oldValue nullable
* <Version>1.14.0-preview-01</Version>
2025-10-06 09:16:25 +02:00
Stef Heyenrath
35bf5e94a5
Add System.Net.Http again to solve CVE warning ( #1354 )
2025-08-27 08:45:24 +02:00
Stef Heyenrath
e5c4605020
Create WireMock.Net.ProtoBuf project ( #1350 )
...
* Create WireMock.Net.ProtoBuf project
* ok
* Update Directory.Build.props
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
---------
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
2025-08-26 07:55:02 +02:00
Stef Heyenrath
faffc56484
Add TimesInSameState to MappingModel ( #1345 )
...
* Add TimesInSameState to MappingModel
* fix tests
2025-08-11 08:46:18 +02:00
Stef Heyenrath
0597a73e0e
Create GraphQL project ( #1334 )
...
* Create new project for GraphQL
* ...
* .
* ok?
* Update src/WireMock.Net.Shared/Extensions/AnyOfExtensions.cs
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
* --
* ...
---------
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
2025-08-10 19:00:22 +02:00
Stef Heyenrath
b0076b4e81
Implement IMimeMessageData ( #1326 )
...
* Implement IMimeMessageData
* 1
* Update src/WireMock.Net.MimePart/Util/MimeKitUtils.cs
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
* v1
* v2
* e
* ?
* fix
* if (Array.TrueForAll(_funcs, func => func(value).IsPerfect()))
* Update src/WireMock.Net.Shared/Util/IMimeKitUtils.cs
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
* Update src/WireMock.Net.Minimal/Matchers/Request/RequestMessageMultiPartMatcher.cs
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
* Update src/WireMock.Net.MimePart/Models/MimeEntityDataWrapper.cs
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
* Models.Mime.IMimeMessageData? BodyAsMimeMessage { get; }
* Update src/WireMock.Net.MimePart/Util/MimeKitUtils.cs
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
* Update src/WireMock.Net.MimePart/Models/MimePartDataWrapper.cs
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
* Update src/WireMock.Net.MimePart/Models/MimeMessageDataWrapper.cs
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
* Update src/WireMock.Net.Shared/Util/IMimeKitUtils.cs
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
* .
---------
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
2025-07-12 09:54:18 +02:00
Stef Heyenrath
f80925c1fb
Add Scenario set State method ( #1322 )
...
* Add SetScenarioState
* add tests
* summary
* .
* 1.8.13-preview-01
* fix
* fix name
2025-06-23 08:03:11 +02:00
Stef Heyenrath
3cc9040f51
Update RequestModelBuilder (add WithHeader) ( #1306 )
...
* Update RequestModelBuilder (add WithHeader)
* rejectOnMatch
* fix
2025-06-05 12:24:40 +02:00
Stef Heyenrath
96eca4262a
Create WireMock.Net.MimePart project ( #1300 )
...
* Create WireMock.Net.MimePart project
* .
* REFACTOR
* ILRepack
* --
* ...
* x
* x
* .
* fix
* public class MimePartMatcher
* shared
* min
* .
* <!--<DelaySign>true</DelaySign>-->
* Update README.md
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
---------
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
2025-05-24 12:17:42 +02:00
Stef Heyenrath
d628ce2270
Fix BodyParser to correctly check for json ( #1297 )
...
* Fix BodyParser to correctly check for json
* JsonUtils
2025-05-21 17:28:29 +02:00
Stef Heyenrath
4368e3cde6
1.7.x ( #1268 )
...
* Fix construction of path in OpenApiParser (#1265 )
* Server-Sent Events (#1269 )
* Server Side Events
* fixes
* await HandleSseStringAsync(responseMessage, response, bodyData);
* 1.7.5-preview-01
* IBlockingQueue
* 1.7.5-preview-02 (03 April 2025)
* IBlockingQueue
* ...
* Support OpenApi V31 (#1279 )
* Support OpenApi V31
* Update src/WireMock.Net.OpenApiParser/Extensions/OpenApiSchemaExtensions.cs
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
* fx
---------
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
* Add ProtoDefinitionHelper.FromDirectory (#1263 )
* Add ProtoDefinitionHelper.FromDirectory
* .
* unix-windows
* move test
* imports in the proto files indeed should use a forward slash
* updates
* .
* private Func<IdOrTexts> ProtoDefinitionFunc()
* OpenTelemetry
* .
* fix path utils
---------
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
2025-04-23 11:51:44 +02:00
Stef Heyenrath
fc0f82db33
Add HandlebarsSettings ( #1271 )
...
* Add HandlebarsSettings class
* DefaultAllowedHandlebarsHelpers
* HB - 2.5.0-preview-01
* readme
* fix
* readme
* Handlebars.Net.Helpers Version="2.5.0"
2025-04-23 07:47:37 +02:00
Stef Heyenrath
ff36c1ee6f
Merge commit from fork
2025-03-04 17:58:38 +01:00
Stef Heyenrath
a02ff47db6
Update WireMockProtoFileResolver and add tests for ProtoBufUtils ( #1252 )
...
* Update WireMockProtoFileResolver and add tests for ProtoBufUtils
* .
2025-02-01 22:27:32 +01:00
Stef Heyenrath
ed07da7d18
Fix ProtoBuf mapping.json ( #1236 )
...
* Fix ProtoBuf Mappings
* [Fact(Skip = "#1233 ")]
* fix?
* PortUtils
2025-01-26 08:37:17 +01:00
Stef Heyenrath
44c1c7aaa8
Fix google protobuf WellKnownTypes: Empty, Duration and Timestamp ( #1231 )
...
* Fix google protobuf WellKnownTypes: Timestamp and Duration
* Fix protobuf Empty
* .
* small refactor
* 006
* fix
* policy
* ---
* <PackageReference Include="ProtoBufJsonConverter" Version="0.7.0" />
2025-01-09 18:50:16 +01:00
Stef Heyenrath
485f7ad952
FindLogEntries ( #1224 )
2024-12-23 20:00:03 +01:00
Stef Heyenrath
f4103b47aa
Fix security issues ( #1206 )
...
* .
* .
* x
2024-11-17 17:25:21 +01:00
Stef Heyenrath
3693d6a676
Log exception when (static) mapping file cannot be read ( #1202 )
2024-10-29 19:52:31 +01:00
Stef Heyenrath
1682c61a0c
Use latest ProtoBufJsonConverter to support WellKnownTypes ( #1161 )
...
* Use latest ProtoBufJsonConverter to support WellKnownTypes
* Fix
* 02
* WireMockServer_WithBodyAsProtoBuf_WithWellKnownTypes
* .
* extra test
* 0.4.0-preview-06
* 7
* <PackageReference Include="ProtoBufJsonConverter" Version="0.4.0-preview-08" />
* Update README.md
* <PackageReference Include="ProtoBufJsonConverter" Version="0.4.0-preview-09" />
* <PackageReference Include="ProtoBufJsonConverter" Version="0.4.0" />
* Update README.md
2024-10-16 10:57:47 +02:00
Stef Heyenrath
2cbbef01ae
Refactor some code (IBodyDataExtensions)
2024-09-20 13:52:45 +02:00
Ruxo
dd80fd7822
Attempt to fix JSON parsing of text/plain content type ( #1172 )
...
* UseContentType
* Fix unit tests
* Add a unit test and an integration test for the fix.
* Simplify body type checking with GetBodyType extension.
* Split IBodyDataExtension, and use imperative style instead of functional style
* Remove excessive null forgiving operators
* Adjust braces
---------
Co-authored-by: Ruxo Zheng <rz@just.sent.as >
2024-09-20 13:19:32 +02:00
Stef Heyenrath
54edf0bebc
Add link to TIOBE Index on main page + fix issues ( #1137 )
...
* Add TIOBE + include SonarAnalyzer.CSharp
* .
* cp
* Copyright © WireMock.Net
* more fixes
* fix
* xpath
* if (Matchers == null || !Matchers.Any())
* if (Matchers != null)
* ?
* .
* .
2024-07-18 18:06:04 +02:00
Stef Heyenrath
8b03307a94
Add some methods to the BodyModelBuilder ( #1116 )
...
* Add some methods to the BodyModelBuilder
* .
2024-06-08 09:26:21 +02:00
Stef Heyenrath
54fe0823dc
Add RegEx support to JsonMatcher ( #1091 )
...
* json matcher regex
* better test
* regression
2024-04-06 18:08:45 +02:00
Stef Heyenrath
6ac95cf57d
Add Grpc ProtoBuf support (request-response) ( #1047 )
...
* ProtoBuf
* .
* x
* ---
* x
* fx
* ...
* sc
* ...
* .
* groen
* x
* fix tests
* ok!?
* fix tests
* fix tests
* !
* x
* 6
* .
* x
* ivaluematcher
* transformer
* .
* sc
* .
* mapping
* x
* tra
* com
* ...
* .
* .
* .
* AddProtoDefinition
* .
* set
* grpahj
* .
* .
* IdOrText
* ...
* async
* async2
* .
* t
* nuget
* <PackageReference Include="ProtoBufJsonConverter" Version="0.2.0-preview-04" />
* http version
* tests
* .WithHttpVersion("2")
* <PackageReference Include="ProtoBufJsonConverter" Version="0.2.0" />
* HttpVersionParser
2024-02-16 17:16:51 +01:00
Stef Heyenrath
a8339a0867
FindRequestByMappingGuidAsync ( #1043 )
...
* FindRequestByMappingGuidAsync
* fix
* sc
2023-12-21 20:03:22 +01:00
Stef Heyenrath
4721b73a16
Update Handlebars Transformer logic (ReplaceNodeOptions) ( #1036 )
...
* Update Handlebars Transformer logic (ReplaceNodeOptions)
* okeee
* EvaluateAndKeep = Evaluate
* fix?
* linux
* _
* tt
* xxx
* fx
* x
* fix test
2023-12-21 20:02:58 +01:00
Mindaugas Laganeckas
7b8e7bb684
Implement prefix for saved mapping file ( #1040 )
...
* Implement PrefixForSavedMappingFile
* Add missing new line
* Add missing new line
* Fix warning
* Fix typo
* Change from readonly to const
* Assign default value
* Use nameof()
* Change from readonly to const
* Update tests
* Update failing test
* Rename settingsMock to settings
* Create public const
* Use const from ProxyAndRecordSettings
---------
Co-authored-by: Mindaugas Laganeckas <mindaugas.laganeckas@nexigroup.com >
2023-12-14 08:28:21 +01:00
sameena syed
97d26338e6
Proxy all requests - even a repeated one ( #1038 )
...
* Adding proxyall
* Adding proxyAll flag
* Reverting extra spaces added
* Make proxyall to true
* Resolving review comments for proxyall
* Resolving codefactor spaces in the code
* Adding proxyall parser in wmserversettingsparser
---------
Co-authored-by: Sameena Syed <sameena.syed@nexigroup.com >
2023-12-11 17:16:30 +01:00
Stef Heyenrath
0c6129e86b
Add ProxyUrlReplaceSettings to Response ( #1026 )
2023-12-10 09:57:37 +01:00
Stef Heyenrath
c6c7ba13b4
Calling Reset also resets the scenarios ( #1031 )
...
* Calling Reset also resets the scenarios
* .
2023-12-07 16:03:37 +01:00
Stef Heyenrath
8b91cec457
Add .NET 8 ( #1018 )
...
* Add .NET 8
* 'Use .NET 8'
* tests 8
* 8
* tc8
* ci
* CI
2023-12-04 18:05:18 +01:00
Stef Heyenrath
fb3ae53e1c
GraphQL - custom scalar support ( #1012 )
...
* x
* CustomScalars
* more tests
* .
* add or set
* ...
* x
2023-12-04 18:02:03 +01:00
Stef Heyenrath
7160dbdd19
FluentAssertions - WithBody and WithBodyAsJson and WithBodyAsBytes ( #1014 )
...
* WithBody
* .
* fix
* .
* .
2023-11-04 16:17:23 +01:00
Carsten Alder
60bf12e2a9
Support for xml namespaces in XPathMatcher ( #1005 )
...
* Support for xml namespaces in XPathMatcher
* Review findings of Stef implemented.
* Fix of build error
* New review findings by Stef
---------
Co-authored-by: Carsten Alder <carsten.alder@schleupen.de >
2023-10-02 19:29:31 +02:00
Stef Heyenrath
b63076a9ac
Fix MappingModel to map IgnoreCase and RejectOnMatch for Headers, Cookies and Parameters ( #1004 )
2023-09-26 21:01:33 +02:00
Stef Heyenrath
93c87845c2
Write logging in case a Matcher throws an exception ( #986 )
...
* ThrowException
* ...
* .
* ...
* b
* fix test
* ...
* .
* sonar
* ft
* .
* fix tst
2023-08-21 20:07:46 +02:00
Stef Heyenrath
4688f556b5
Add MultiPart/MimePart Request Matcher ( #981 )
...
* wip
* .
* mm
* x
* .
* .
* .
* tests
* .
* more tests
* trans
* x
* win
* fix
* .
* tests
2023-08-03 15:55:46 +02:00
Stef Heyenrath
7c3a0c815d
Add GetParameter method to IRequestMessage ( #942 )
2023-05-25 15:14:02 +02:00
Stef Heyenrath
d29f3e81f3
Add property 'IsStartedWithAdminInterface' to 'IWireMockServer' ( #931 )
...
* Add property 'IsStartedWithAdminInterface' to 'IWireMockServer'
* update tests
* .
2023-05-06 13:12:00 +02:00