Implement Random Delay (#633)

* implement random delays

* fixing CodeFactor issue

* fix code comments

* ...

* UT

Co-authored-by: Michael Yarichuk <michael.yarichuk@gmail.com>
This commit is contained in:
Stef Heyenrath
2021-09-22 13:37:41 +02:00
committed by GitHub
parent c67bf75a4b
commit ba0b9d9fd8
7 changed files with 169 additions and 11 deletions

View File

@@ -1,4 +1,5 @@
using System.Collections.Generic;
using System;
using System.Collections.Generic;
using System.Linq;
using WireMock.Admin.Mappings;
using WireMock.Matchers.Request;
@@ -6,7 +7,6 @@ using WireMock.RequestBuilders;
using WireMock.ResponseBuilders;
using WireMock.Settings;
using WireMock.Types;
using WireMock.Validation;
namespace WireMock.Serialization
{
@@ -16,9 +16,7 @@ namespace WireMock.Serialization
public MappingConverter(MatcherMapper mapper)
{
Check.NotNull(mapper, nameof(mapper));
_mapper = mapper;
_mapper = mapper ?? throw new ArgumentNullException(nameof(mapper));
}
public MappingModel ToMappingModel(IMapping mapping)
@@ -81,12 +79,19 @@ namespace WireMock.Serialization
Matchers = _mapper.Map(pm.Matchers)
}).ToList() : null
},
Response = new ResponseModel
{
Delay = (int?)response.Delay?.TotalMilliseconds
}
Response = new ResponseModel()
};
if (response.MinimumDelayMilliseconds >= 0 || response.MaximumDelayMilliseconds > 0)
{
mappingModel.Response.MinimumRandomDelay = response.MinimumDelayMilliseconds;
mappingModel.Response.MaximumRandomDelay = response.MaximumDelayMilliseconds;
}
else
{
mappingModel.Response.Delay = (int?)response.Delay?.TotalMilliseconds;
}
if (mapping.Webhooks?.Length == 1)
{
mappingModel.Webhook = WebhookMapper.Map(mapping.Webhooks[0]);