Query string match on DateTimeOffset is not working
See original GitHub issueHi,
I am sending two values via a query string and I am trying to configure wiremock to respond when these two values come through. First is an int and it works fine. Second is a DateTimeOffset in the following format:
"yyyy-MM-ddTHH\\:mm\\:ss.fffzzz"
I have tried using the ExactValue matcher as so:
public static void AddQueryStringValueMatch(this RequestModel requestModel, KeyValuePair<string, string> queryStringItem)
{
var queryStringMatch = new ParamModel
{
IgnoreCase = true,
Name = queryStringItem.Key,
Matchers = new[]
{
new MatcherModel
{
Name = "ExactMatcher",
Pattern = queryStringItem.Value,
IgnoreCase = true,
RejectOnMatch = false
}
}
};
if (requestModel.Params == null)
requestModel.Params = new List<ParamModel>();
requestModel.Params.Add(queryStringMatch);
}
This does not work and the following is returned from the wiremock:
[Error] : HttpStatusCode set to 400 System.ArgumentException: values
at WireMock.Validation.Check.HasNoNulls[T](IList1 value, String parameterName) at WireMock.Matchers.ExactMatcher..ctor(MatchBehaviour matchBehaviour, String[] values) at WireMock.Serialization.MatcherMapper.Map(MatcherModel matcher) at System.Linq.Enumerable.SelectArrayIterator2.MoveNext()
at System.Linq.Enumerable.CastIterator[TResult](IEnumerable source)+MoveNext()
at System.Collections.Generic.LargeArrayBuilder1.AddRange(IEnumerable1 items)
at System.Collections.Generic.EnumerableHelpers.ToArray[T](IEnumerable1 source) at System.Linq.Enumerable.ToArray[TSource](IEnumerable1 source)
at WireMock.Server.FluentMockServer.InitRequestBuilder(RequestModel requestModel, Boolean pathOrUrlRequired)
at WireMock.Server.FluentMockServer.DeserializeAndAddOrUpdateMapping(MappingModel mappingModel, Nullable`1 guid, String path)
at WireMock.Server.FluentMockServer.MappingsPost(RequestMessage requestMessage)
However, when I use a standard dateTimeOffset.ToString(), then it works fine and the following is configured:
{
"Name": "dateTime",
"IgnoreCase": true,
"Matchers": [
{
"Name": "ExactMatcher",
"Pattern": "6/20/2021 5:16:56 AM +01:00"
}
]
}
Is there any guidance/examples on how to work with datetime/datetimeoffset in a specific format? I thought it would treat it just like any other string.
Issue Analytics
- State:
- Created 4 years ago
- Comments:9

Top Related StackOverflow Question
I’ll create a new official version tonight and also a new docker.
The issue is that when you post a mapping like this:
The string value
2019-09-19T18:02:31.7039950+02:00is actually converted to real DateTime, this means that some code fails.I’ll investigate if this can be solved.