mirror of
https://github.com/wiremock/WireMock.Net.git
synced 2026-07-15 09:12:47 +02:00
Feature: Negate a matcher #95
Closed
opened 2025-12-29 08:22:12 +01:00 by adam
·
15 comments
No Branch/Tag Specified
master
1341-mapping-json
stef-aspire-tests-updates
bug/973-TinyMapper
bug/1149-AppendGuidToSavedMappingFile
feature/1150-DockerImageVersion
61
stef-1108
stef-1097
stef-1083-MessageOptions_Type_Conflict
stef-1062-logger
stef-IgnoreOpenApiErrors
stef-928-TypeLoadException-FluentAssertions-net472
nunit
stef-849
stef-847-regex-questionmark
http_verb
WireMockServerContext
webapp
ai
CommandLineArgumentsParser
2.12.0
2.11.0
2.10.0
2.9.0
2.8.0
2.7.0
2.6.0
2.5.0
2.4.0
2.3.0
2.2.0
2.1.0
2.0.0
1.25.0
1.24.0
1.23.0
1.22.0
1.21.0
1.20.0
1.19.0
1.18.0
1.17.0
1.16.0
1.15.0
1.14.0
1.13.0
1.12.0
1.11.2
1.11.0
1.10.1
1.10.0
1.9.1
1.9.0
1.8.18
1.8.17
1.8.16
1.8.15
1.8.14
1.8.13
1.8.12
1.8.11
1.8.10
1.8.9
1.8.8
1.8.7
1.8.6
1.8.5
1.8.3
1.8.2
1.8.1
1.8.0
1.7.4
1.7.3
1.7.2
1.7.1
1.7.0
1.6.12
1.6.11
1.6.10
1.6.9
1.6.8
1.6.7
1.6.6
1.6.5
1.6.4
1.6.3
1.6.2
1.6.1
1.6.0
1.5.62
1.5.61
1.5.60
1.5.59
1.5.58
1.5.57
1.5.56
1.5.55
1.5.54
1.5.53
1.5.52
1.5.51
1.5.50
1.5.49
1.5.48
1.5.47
1.5.46
1.5.45
1.5.44
1.5.43
1.5.42
1.5.41
1.5.40
1.5.39
1.5.38
1.5.37
1.5.36
1.5.35
1.5.34
1.5.33
1.5.32
1.5.31
1.5.30
1.5.29
1.5.28
1.5.27
1.5.26
1.5.25
1.5.24
1.5.23
1.5.22
1.5.21
1.5.20
1.5.19
1.5.18
1.5.17
1.5.16
1.5.15
1.5.14
1.5.13
1.5.12
1.5.11
1.5.10
1.5.9
1.5.8
1.5.7
1.5.6
1.5.5
1.5.4
1.5.3
1.5.2
1.5.1
1.5.0
1.4.43
1.4.42
1.4.41
1.4.40
1.4.39
1.4.38
1.4.37
1.4.36
1.4.35
1.4.34
1.4.33
1.4.32
1.4.31
1.4.30
1.4.29
1.4.28
1.4.27
1.4.26
1.4.25
1.4.24
1.4.23
1.4.22
1.4.21
1.4.20
1.4.19
1.4.18
1.4.17
1.4.16
1.4.15
1.4.14
1.4.13
1.4.12
1.4.11
1.4.10
1.4.9
1.4.8
1.4.7
1.4.6
1.4.5
1.4.4
1.4.3
1.4.2
1.4.1
1.4.0
1.3.10
1.3.9
1.3.8
1.3.6
1.3.5
1.3.4
1.3.3
1.3.2
1.3.1
1.3.0
1.2.18
1.2.17
1.2.16
1.2.15
1.2.14
1.2.13
1.2.12
1.2.11.0
1.2.10
1.2.9.0
1.2.8.0
1.2.7.0
1.2.6.0
1.2.5.0
1.2.4.0
1.2.3.0
1.2.2.0
1.2.1.0
1.2.0.0
1.1.10
1.1.9.0
1.1.8.0
1.1.7.0
1.1.6.0
1.1.5.0
1.1.3.0
1.1.2.0
1.1.1.0
1.1.0.0
1.0.43.0
1.0.42.0
1.0.41.0
1.0.40.0
1.0.39.0
1.0.38.0
1.0.37.0
1.0.36.0
1.0.35.0
1.0.34.0
1.0.33.0
1.0.32.0
1.0.31.0
1.0.29.0
1.0.28.0
1.0.25.0
1.0.24.0
1.0.23.0
1.0.22.0
1.0.21.0
1.0.20.0
1.0.19.0
1.0.18.0
1.0.17.0
1.0.16.0
1.0.15.0
1.0.14.0
1.0.13.0
1.0.12.0
1.0.11.0
1.0.10.0
1.0.9.0
1.0.8.0
1.0.7.0
1.0.6.1
1.0.6
1.0.5
1.0.4.21
1.0.4.20
1.0.4.19
1.0.4.18
1.0.4.17
1.0.4.16
1.0.4.15
1.0.4.14
1.0.4.13
1.0.4.12
1.0.4.11
1.0.4.10
1.0.4.9
1.0.4.8
1.0.4.7
1.0.4.6
1.0.4.5
1.0.4.4
1.0.4.3
1.0.4.2
1.0.4.1
1.0.4.0
1.0.3.20
1.0.3.19
1.0.3.18
1.0.3.17
1.0.3.16
1.0.3.15
1.0.3.14
1.0.3.13
1.0.3.12
1.0.3.11
1.0.3.10
1.0.3.9
1.0.3.8
1.0.3.7
1.0.3.6
1.0.3.5
1.0.3.4
1.0.3.3
1.0.3.2
1.0.3.1
1.0.3.0
1.0.2.13
1.0.2.12
1.0.2.11
1.0.2.10
1.0.2.9
1.0.2.8
1.0.2.7
1.0.2.6
1.0.2.5
1.0.2.4
1.0.2.1
1.0.2.0
1.0.1.5
1.0.1.3
1.0.1.2
1.0.1.1
1.0.0.0
Milestone
No items
No Milestone
Projects
Clear projects
No project
Assignees
adam (Adam Melkus)
Clear assignees
No Assignees
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: starred/WireMock.Net#95
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @alastairtree on GitHub (Apr 25, 2018).
Originally assigned to: @StefH on GitHub.
Is there any way to negate a matcher, so i could match on the absense of a match. For example what if i want to stub for all requests that do not have an API key header? Or all requests with query param A but missing query param B?
@StefH commented on GitHub (Apr 26, 2018):
Good question. I thought the
RegexMatchercould be solution, but that can only check/not-check on the value from a header, you cannot define a match where the complete api-header is absent...@StefH commented on GitHub (Apr 26, 2018):
Another option could be (in code):
As mapping, a solution would be:
or
or
@alastairtree commented on GitHub (Apr 26, 2018):
It would also be nice if we could apply it elsewhere also - for example on query params. I think I prefer something in the matcher that reverses the match, so that every matcher could be inverted if you wanted. But it could be easily confusing. Perhaps an Enum and a sensible default to make it really explicit?
and then in json perhaps:
@StefH commented on GitHub (Apr 27, 2018):
When looking at the original WireMock : http://wiremock.org/docs/request-matching/ (see text
It is also possible to perform a negative match)I think that this would also be an option:
code
or instead of
Reject(...), we could useRejectMatch(...)/RejectOnMatch(...)/Not(...)/NoMatch(...)/RejectPattern(...)json
Your proposal (looks good I think)
or
option 1 (add a new list : the
RejectMatchers)or
option 2 (looks like the WireMock.org solution, however the
IgnoreCaseis a bit strange because it's used in the matching, but now it seems that only the pattern is rejected...)Maybe some more?
@StefH commented on GitHub (May 1, 2018):
@alastairtree Did you have time to take a look at my last comment?
@alastairtree commented on GitHub (May 1, 2018):
I don't feel that passionately about the syntax, but having reviewed the various options i think i still prefer my proosal of
.WithHeader("Accept", "text/html*", MatchBehaviour.RejectOnMatch)and the"RejectOnMatch": true,json flavour, but happy to be overruled!@StefH commented on GitHub (May 1, 2018):
I'll keep your proposal and I will update the code. Probably I'll send a PR review to you when it's ready.
@alastairtree commented on GitHub (May 1, 2018):
Thats very kind! It is a good feature I think, but I am not urgently in need at the moment as I found a work around using priorities, so by all means put other issues ahead of this one. Very happy to code review anything though.
@alastairtree commented on GitHub (May 4, 2018):
Had a look at that branch and its looking good.
@StefH commented on GitHub (May 4, 2018):
I'm not done yet. Have to write more unit tests and do some real testing.
@StefH commented on GitHub (May 6, 2018):
Hello @alastairtree.
Now I think I've updated and tested all the code, can you now please do a review and if possible also run some real tests to see if the behaviour is correct?
@StefH commented on GitHub (May 11, 2018):
@alastairtree, can you do a code-review please?
@alastairtree commented on GitHub (May 12, 2018):
Looking good @StefH - added some little bits in #134
@alastairtree commented on GitHub (May 16, 2018):
All looking good @StefH. I have added a bit of docs to https://github.com/WireMock-Net/WireMock.Net/wiki/Stubbing-and-Request-Matching#reversing-the-match-behaviour-with-matchbehaviourrejectonmatch
@StefH commented on GitHub (May 16, 2018):
Very cool !!! Thank you very much.