mirror of
https://github.com/wiremock/WireMock.Net.git
synced 2026-04-01 23:23:29 +02:00
Fix random delay in mapping json file (#1386)
This commit is contained in:
@@ -226,14 +226,14 @@ internal class MappingConverter(MatcherMapper mapper)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (response.Delay is { })
|
if (response is { MinimumDelayMilliseconds: > 0, MaximumDelayMilliseconds: > 0 })
|
||||||
{
|
|
||||||
sb.AppendLine($" .WithDelay({response.Delay.Value.TotalMilliseconds})");
|
|
||||||
}
|
|
||||||
else if (response is { MinimumDelayMilliseconds: > 0, MaximumDelayMilliseconds: > 0 })
|
|
||||||
{
|
{
|
||||||
sb.AppendLine($" .WithRandomDelay({response.MinimumDelayMilliseconds}, {response.MaximumDelayMilliseconds})");
|
sb.AppendLine($" .WithRandomDelay({response.MinimumDelayMilliseconds}, {response.MaximumDelayMilliseconds})");
|
||||||
}
|
}
|
||||||
|
else if (response.Delay is { })
|
||||||
|
{
|
||||||
|
sb.AppendLine($" .WithDelay({response.Delay.Value.TotalMilliseconds})");
|
||||||
|
}
|
||||||
|
|
||||||
if (response.UseTransformer)
|
if (response.UseTransformer)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -190,5 +190,92 @@
|
|||||||
BodyDestination: SameAsSource,
|
BodyDestination: SameAsSource,
|
||||||
Body: Buy milk
|
Body: Buy milk
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
Guid: 98fae52e-76df-47d9-876f-2ee32e931006,
|
||||||
|
UpdatedAt: 2023-01-14 15:16:17,
|
||||||
|
Request: {
|
||||||
|
Path: {
|
||||||
|
Matchers: [
|
||||||
|
{
|
||||||
|
Name: WildcardMatcher,
|
||||||
|
Pattern: /delay,
|
||||||
|
IgnoreCase: false
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
Methods: [
|
||||||
|
GET
|
||||||
|
]
|
||||||
|
},
|
||||||
|
Response: {
|
||||||
|
Delay: 1000
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
Guid: 98fae52e-76df-47d9-876f-2ee32e931007,
|
||||||
|
UpdatedAt: 2023-01-14 15:16:17,
|
||||||
|
Request: {
|
||||||
|
Path: {
|
||||||
|
Matchers: [
|
||||||
|
{
|
||||||
|
Name: WildcardMatcher,
|
||||||
|
Pattern: /random-delay,
|
||||||
|
IgnoreCase: false
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
Methods: [
|
||||||
|
GET
|
||||||
|
]
|
||||||
|
},
|
||||||
|
Response: {
|
||||||
|
MinimumRandomDelay: 1234,
|
||||||
|
MaximumRandomDelay: 60000
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
Guid: 98fae52e-76df-47d9-876f-2ee32e931008,
|
||||||
|
UpdatedAt: 2023-01-14 15:16:17,
|
||||||
|
Request: {
|
||||||
|
Path: {
|
||||||
|
Matchers: [
|
||||||
|
{
|
||||||
|
Name: WildcardMatcher,
|
||||||
|
Pattern: /prob,
|
||||||
|
IgnoreCase: false
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
Methods: [
|
||||||
|
GET
|
||||||
|
]
|
||||||
|
},
|
||||||
|
Response: {
|
||||||
|
StatusCode: 300
|
||||||
|
},
|
||||||
|
Probability: 0.1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
Guid: 98fae52e-76df-47d9-876f-2ee32e931009,
|
||||||
|
UpdatedAt: 2023-01-14 15:16:17,
|
||||||
|
Request: {
|
||||||
|
Path: {
|
||||||
|
Matchers: [
|
||||||
|
{
|
||||||
|
Name: WildcardMatcher,
|
||||||
|
Pattern: /prob,
|
||||||
|
IgnoreCase: false
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
Methods: [
|
||||||
|
GET
|
||||||
|
]
|
||||||
|
},
|
||||||
|
Response: {
|
||||||
|
StatusCode: 201
|
||||||
|
},
|
||||||
|
Probability: 0.9
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
@@ -78,3 +78,45 @@ builder
|
|||||||
.WithBody("Buy milk")
|
.WithBody("Buy milk")
|
||||||
);
|
);
|
||||||
|
|
||||||
|
builder
|
||||||
|
.Given(Request.Create()
|
||||||
|
.UsingMethod("GET")
|
||||||
|
.WithPath(new WildcardMatcher(WireMock.Matchers.MatchBehaviour.AcceptOnMatch, "/delay", false, WireMock.Matchers.MatchOperator.Or))
|
||||||
|
)
|
||||||
|
.WithGuid("98fae52e-76df-47d9-876f-2ee32e931006")
|
||||||
|
.RespondWith(Response.Create()
|
||||||
|
.WithDelay(1000)
|
||||||
|
);
|
||||||
|
|
||||||
|
builder
|
||||||
|
.Given(Request.Create()
|
||||||
|
.UsingMethod("GET")
|
||||||
|
.WithPath(new WildcardMatcher(WireMock.Matchers.MatchBehaviour.AcceptOnMatch, "/random-delay", false, WireMock.Matchers.MatchOperator.Or))
|
||||||
|
)
|
||||||
|
.WithGuid("98fae52e-76df-47d9-876f-2ee32e931007")
|
||||||
|
.RespondWith(Response.Create()
|
||||||
|
.WithRandomDelay(1234, 60000)
|
||||||
|
);
|
||||||
|
|
||||||
|
builder
|
||||||
|
.Given(Request.Create()
|
||||||
|
.UsingMethod("GET")
|
||||||
|
.WithPath(new WildcardMatcher(WireMock.Matchers.MatchBehaviour.AcceptOnMatch, "/prob", false, WireMock.Matchers.MatchOperator.Or))
|
||||||
|
)
|
||||||
|
.WithGuid("98fae52e-76df-47d9-876f-2ee32e931008")
|
||||||
|
.WithProbability(0.1)
|
||||||
|
.RespondWith(Response.Create()
|
||||||
|
.WithStatusCode(300)
|
||||||
|
);
|
||||||
|
|
||||||
|
builder
|
||||||
|
.Given(Request.Create()
|
||||||
|
.UsingMethod("GET")
|
||||||
|
.WithPath(new WildcardMatcher(WireMock.Matchers.MatchBehaviour.AcceptOnMatch, "/prob", false, WireMock.Matchers.MatchOperator.Or))
|
||||||
|
)
|
||||||
|
.WithGuid("98fae52e-76df-47d9-876f-2ee32e931009")
|
||||||
|
.WithProbability(0.9)
|
||||||
|
.RespondWith(Response.Create()
|
||||||
|
.WithStatusCode(201)
|
||||||
|
);
|
||||||
|
|
||||||
|
|||||||
@@ -78,3 +78,45 @@ server
|
|||||||
.WithBody("Buy milk")
|
.WithBody("Buy milk")
|
||||||
);
|
);
|
||||||
|
|
||||||
|
server
|
||||||
|
.Given(Request.Create()
|
||||||
|
.UsingMethod("GET")
|
||||||
|
.WithPath(new WildcardMatcher(WireMock.Matchers.MatchBehaviour.AcceptOnMatch, "/delay", false, WireMock.Matchers.MatchOperator.Or))
|
||||||
|
)
|
||||||
|
.WithGuid("98fae52e-76df-47d9-876f-2ee32e931006")
|
||||||
|
.RespondWith(Response.Create()
|
||||||
|
.WithDelay(1000)
|
||||||
|
);
|
||||||
|
|
||||||
|
server
|
||||||
|
.Given(Request.Create()
|
||||||
|
.UsingMethod("GET")
|
||||||
|
.WithPath(new WildcardMatcher(WireMock.Matchers.MatchBehaviour.AcceptOnMatch, "/random-delay", false, WireMock.Matchers.MatchOperator.Or))
|
||||||
|
)
|
||||||
|
.WithGuid("98fae52e-76df-47d9-876f-2ee32e931007")
|
||||||
|
.RespondWith(Response.Create()
|
||||||
|
.WithRandomDelay(1234, 60000)
|
||||||
|
);
|
||||||
|
|
||||||
|
server
|
||||||
|
.Given(Request.Create()
|
||||||
|
.UsingMethod("GET")
|
||||||
|
.WithPath(new WildcardMatcher(WireMock.Matchers.MatchBehaviour.AcceptOnMatch, "/prob", false, WireMock.Matchers.MatchOperator.Or))
|
||||||
|
)
|
||||||
|
.WithGuid("98fae52e-76df-47d9-876f-2ee32e931008")
|
||||||
|
.WithProbability(0.1)
|
||||||
|
.RespondWith(Response.Create()
|
||||||
|
.WithStatusCode(300)
|
||||||
|
);
|
||||||
|
|
||||||
|
server
|
||||||
|
.Given(Request.Create()
|
||||||
|
.UsingMethod("GET")
|
||||||
|
.WithPath(new WildcardMatcher(WireMock.Matchers.MatchBehaviour.AcceptOnMatch, "/prob", false, WireMock.Matchers.MatchOperator.Or))
|
||||||
|
)
|
||||||
|
.WithGuid("98fae52e-76df-47d9-876f-2ee32e931009")
|
||||||
|
.WithProbability(0.9)
|
||||||
|
.RespondWith(Response.Create()
|
||||||
|
.WithStatusCode(201)
|
||||||
|
);
|
||||||
|
|
||||||
|
|||||||
@@ -186,5 +186,92 @@
|
|||||||
BodyDestination: SameAsSource,
|
BodyDestination: SameAsSource,
|
||||||
Body: Buy milk
|
Body: Buy milk
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
Guid: 98fae52e-76df-47d9-876f-2ee32e931006,
|
||||||
|
UpdatedAt: 2023-01-14T15:16:17,
|
||||||
|
Request: {
|
||||||
|
Path: {
|
||||||
|
Matchers: [
|
||||||
|
{
|
||||||
|
Name: WildcardMatcher,
|
||||||
|
Pattern: /delay,
|
||||||
|
IgnoreCase: false
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
Methods: [
|
||||||
|
GET
|
||||||
|
]
|
||||||
|
},
|
||||||
|
Response: {
|
||||||
|
Delay: 1000
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
Guid: 98fae52e-76df-47d9-876f-2ee32e931007,
|
||||||
|
UpdatedAt: 2023-01-14T15:16:17,
|
||||||
|
Request: {
|
||||||
|
Path: {
|
||||||
|
Matchers: [
|
||||||
|
{
|
||||||
|
Name: WildcardMatcher,
|
||||||
|
Pattern: /random-delay,
|
||||||
|
IgnoreCase: false
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
Methods: [
|
||||||
|
GET
|
||||||
|
]
|
||||||
|
},
|
||||||
|
Response: {
|
||||||
|
MinimumRandomDelay: 1234,
|
||||||
|
MaximumRandomDelay: 60000
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
Guid: 98fae52e-76df-47d9-876f-2ee32e931008,
|
||||||
|
UpdatedAt: 2023-01-14T15:16:17,
|
||||||
|
Request: {
|
||||||
|
Path: {
|
||||||
|
Matchers: [
|
||||||
|
{
|
||||||
|
Name: WildcardMatcher,
|
||||||
|
Pattern: /prob,
|
||||||
|
IgnoreCase: false
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
Methods: [
|
||||||
|
GET
|
||||||
|
]
|
||||||
|
},
|
||||||
|
Response: {
|
||||||
|
StatusCode: 300
|
||||||
|
},
|
||||||
|
Probability: 0.1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
Guid: 98fae52e-76df-47d9-876f-2ee32e931009,
|
||||||
|
UpdatedAt: 2023-01-14T15:16:17,
|
||||||
|
Request: {
|
||||||
|
Path: {
|
||||||
|
Matchers: [
|
||||||
|
{
|
||||||
|
Name: WildcardMatcher,
|
||||||
|
Pattern: /prob,
|
||||||
|
IgnoreCase: false
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
Methods: [
|
||||||
|
GET
|
||||||
|
]
|
||||||
|
},
|
||||||
|
Response: {
|
||||||
|
StatusCode: 201
|
||||||
|
},
|
||||||
|
Probability: 0.9
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
@@ -2,6 +2,7 @@
|
|||||||
|
|
||||||
#if !(NET452 || NET461 || NETCOREAPP3_1)
|
#if !(NET452 || NET461 || NETCOREAPP3_1)
|
||||||
using System;
|
using System;
|
||||||
|
using System.Net;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using Moq;
|
using Moq;
|
||||||
using VerifyTests;
|
using VerifyTests;
|
||||||
@@ -118,6 +119,35 @@ public class MappingBuilderTests
|
|||||||
.RespondWith(Response.Create()
|
.RespondWith(Response.Create()
|
||||||
.WithBody("Buy milk"));
|
.WithBody("Buy milk"));
|
||||||
|
|
||||||
|
_sut.Given(Request.Create()
|
||||||
|
.WithPath("/delay")
|
||||||
|
.UsingGet()
|
||||||
|
).RespondWith(Response.Create()
|
||||||
|
.WithDelay(1000)
|
||||||
|
);
|
||||||
|
|
||||||
|
_sut.Given(Request.Create()
|
||||||
|
.WithPath("/random-delay")
|
||||||
|
.UsingGet()
|
||||||
|
).RespondWith(Response.Create()
|
||||||
|
.WithRandomDelay(1234)
|
||||||
|
);
|
||||||
|
|
||||||
|
_sut.Given(Request.Create()
|
||||||
|
.WithPath("/prob")
|
||||||
|
.UsingGet()
|
||||||
|
).WithProbability(0.1)
|
||||||
|
.RespondWith(Response.Create()
|
||||||
|
.WithStatusCode(HttpStatusCode.Ambiguous)
|
||||||
|
);
|
||||||
|
_sut.Given(Request.Create()
|
||||||
|
.WithPath("/prob")
|
||||||
|
.UsingGet()
|
||||||
|
).WithProbability(0.9)
|
||||||
|
.RespondWith(Response.Create()
|
||||||
|
.WithStatusCode(HttpStatusCode.Created)
|
||||||
|
);
|
||||||
|
|
||||||
_numMappings = _sut.GetMappings().Length;
|
_numMappings = _sut.GetMappings().Length;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user