diff --git a/src/WireMock.Net.Matchers.CSharpCode/Matchers/CSharpCodeMatcher.cs b/src/WireMock.Net.Matchers.CSharpCode/Matchers/CSharpCodeMatcher.cs index 99ca8b11..76a645a0 100644 --- a/src/WireMock.Net.Matchers.CSharpCode/Matchers/CSharpCodeMatcher.cs +++ b/src/WireMock.Net.Matchers.CSharpCode/Matchers/CSharpCodeMatcher.cs @@ -70,7 +70,7 @@ public class CSharpCodeMatcher : ICSharpCodeMatcher /// public string GetCSharpCodeArguments() { - return $"new {Name}" + + return $"new {typeof(CSharpCodeMatcher).FullName}" + $"(" + $"{MatchBehaviour.GetFullyQualifiedEnumValue()}, " + $"{MatchOperator.GetFullyQualifiedEnumValue()}, " + diff --git a/src/WireMock.Net.Matchers.SystemTextJsonPath/Matchers/SystemTextJsonPathMatcher.cs b/src/WireMock.Net.Matchers.SystemTextJsonPath/Matchers/SystemTextJsonPathMatcher.cs index 606f3574..a3feef82 100644 --- a/src/WireMock.Net.Matchers.SystemTextJsonPath/Matchers/SystemTextJsonPathMatcher.cs +++ b/src/WireMock.Net.Matchers.SystemTextJsonPath/Matchers/SystemTextJsonPathMatcher.cs @@ -126,7 +126,7 @@ public class SystemTextJsonPathMatcher : ISystemTextJsonPathMatcher /// public string GetCSharpCodeArguments() { - return $"new {Name}" + + return $"new {typeof(SystemTextJsonPathMatcher).FullName}" + $"(" + $"{MatchBehaviour.GetFullyQualifiedEnumValue()}, " + $"{MatchOperator.GetFullyQualifiedEnumValue()}, " + diff --git a/src/WireMock.Net.Minimal/Matchers/ContentTypeMatcher.cs b/src/WireMock.Net.Minimal/Matchers/ContentTypeMatcher.cs index fdbc06e1..12932529 100644 --- a/src/WireMock.Net.Minimal/Matchers/ContentTypeMatcher.cs +++ b/src/WireMock.Net.Minimal/Matchers/ContentTypeMatcher.cs @@ -80,10 +80,10 @@ public class ContentTypeMatcher : WildcardMatcher /// public override string GetCSharpCodeArguments() { - return $"new {Name}" + + return $"new {typeof(ContentTypeMatcher).FullName}" + $"(" + $"{MatchBehaviour.GetFullyQualifiedEnumValue()}, " + - $"{MappingConverterUtils.ToCSharpCodeArguments(_patterns)}, " + + $"new AnyOfTypes.AnyOf[] {{ {MappingConverterUtils.ToCSharpCodeArguments(_patterns)} }}, " + $"{CSharpFormatter.ToCSharpBooleanLiteral(IgnoreCase)}" + $")"; } diff --git a/src/WireMock.Net.Minimal/Matchers/ExactMatcher.cs b/src/WireMock.Net.Minimal/Matchers/ExactMatcher.cs index 316ee589..2c97c93c 100644 --- a/src/WireMock.Net.Minimal/Matchers/ExactMatcher.cs +++ b/src/WireMock.Net.Minimal/Matchers/ExactMatcher.cs @@ -95,7 +95,7 @@ public class ExactMatcher : IStringMatcher, IIgnoreCaseMatcher /// public string GetCSharpCodeArguments() { - return $"new {Name}" + + return $"new {typeof(ExactMatcher).FullName}" + $"(" + $"{MatchBehaviour.GetFullyQualifiedEnumValue()}, " + $"{CSharpFormatter.ToCSharpBooleanLiteral(IgnoreCase)}, " + diff --git a/src/WireMock.Net.Minimal/Matchers/FormUrlEncodedMatcher.cs b/src/WireMock.Net.Minimal/Matchers/FormUrlEncodedMatcher.cs index e83bafc4..e05d3139 100644 --- a/src/WireMock.Net.Minimal/Matchers/FormUrlEncodedMatcher.cs +++ b/src/WireMock.Net.Minimal/Matchers/FormUrlEncodedMatcher.cs @@ -167,10 +167,10 @@ public class FormUrlEncodedMatcher : IStringMatcher, IIgnoreCaseMatcher /// public string GetCSharpCodeArguments() { - return $"new {Name}" + + return $"new {typeof(FormUrlEncodedMatcher).FullName}" + $"(" + $"{MatchBehaviour.GetFullyQualifiedEnumValue()}, " + - $"{MappingConverterUtils.ToCSharpCodeArguments(_patterns)}, " + + $"new AnyOfTypes.AnyOf[] {{ {MappingConverterUtils.ToCSharpCodeArguments(_patterns)} }}, " + $"{CSharpFormatter.ToCSharpBooleanLiteral(IgnoreCase)}, " + $"{MatchOperator.GetFullyQualifiedEnumValue()}" + $")"; diff --git a/src/WireMock.Net.Minimal/Matchers/FuncMatcher.cs b/src/WireMock.Net.Minimal/Matchers/FuncMatcher.cs index 6884f542..d655123a 100644 --- a/src/WireMock.Net.Minimal/Matchers/FuncMatcher.cs +++ b/src/WireMock.Net.Minimal/Matchers/FuncMatcher.cs @@ -76,7 +76,7 @@ public class FuncMatcher : IFuncMatcher public string GetCSharpCodeArguments() { var funcType = _stringFunc != null ? "Func" : "Func"; - return $"new {Name}" + + return $"new {typeof(FuncMatcher).FullName}" + $"(" + $"/* {funcType} function */, " + $"{MatchBehaviour.GetFullyQualifiedEnumValue()}" + diff --git a/src/WireMock.Net.Minimal/Matchers/JSONPathMatcher.cs b/src/WireMock.Net.Minimal/Matchers/JSONPathMatcher.cs index 53da43a4..468ad03e 100644 --- a/src/WireMock.Net.Minimal/Matchers/JSONPathMatcher.cs +++ b/src/WireMock.Net.Minimal/Matchers/JSONPathMatcher.cs @@ -119,7 +119,7 @@ public class JsonPathMatcher : IJsonPathMatcher /// public string GetCSharpCodeArguments() { - return $"new {Name}" + + return $"new {typeof(JsonPathMatcher).FullName}" + $"(" + $"{MatchBehaviour.GetFullyQualifiedEnumValue()}, " + $"{MatchOperator.GetFullyQualifiedEnumValue()}, " + diff --git a/src/WireMock.Net.Minimal/Matchers/JmesPathMatcher.cs b/src/WireMock.Net.Minimal/Matchers/JmesPathMatcher.cs index 7bec3202..ff0b929a 100644 --- a/src/WireMock.Net.Minimal/Matchers/JmesPathMatcher.cs +++ b/src/WireMock.Net.Minimal/Matchers/JmesPathMatcher.cs @@ -119,7 +119,7 @@ public class JmesPathMatcher : IStringMatcher, IObjectMatcher /// public string GetCSharpCodeArguments() { - return $"new {Name}" + + return $"new {typeof(JmesPathMatcher).FullName}" + $"(" + $"{MatchBehaviour.GetFullyQualifiedEnumValue()}, " + $"{MatchOperator.GetFullyQualifiedEnumValue()}, " + diff --git a/src/WireMock.Net.Minimal/Matchers/JsonMatcher.cs b/src/WireMock.Net.Minimal/Matchers/JsonMatcher.cs index b6a450c3..6a8a0765 100644 --- a/src/WireMock.Net.Minimal/Matchers/JsonMatcher.cs +++ b/src/WireMock.Net.Minimal/Matchers/JsonMatcher.cs @@ -110,7 +110,7 @@ public class JsonMatcher : IJsonMatcher /// public virtual string GetCSharpCodeArguments() { - return $"new {Name}" + + return $"new {typeof(JsonMatcher).FullName}" + $"(" + $"{MatchBehaviour.GetFullyQualifiedEnumValue()}, " + $"{CSharpFormatter.ConvertToAnonymousObjectDefinition(Value, 3)}, " + diff --git a/src/WireMock.Net.Minimal/Matchers/JsonPartialMatcher.cs b/src/WireMock.Net.Minimal/Matchers/JsonPartialMatcher.cs index ee37345f..613794b2 100644 --- a/src/WireMock.Net.Minimal/Matchers/JsonPartialMatcher.cs +++ b/src/WireMock.Net.Minimal/Matchers/JsonPartialMatcher.cs @@ -41,7 +41,7 @@ public class JsonPartialMatcher : AbstractJsonPartialMatcher /// public override string GetCSharpCodeArguments() { - return $"new {Name}" + + return $"new {typeof(JsonPartialMatcher).FullName}" + $"(" + $"{MatchBehaviour.GetFullyQualifiedEnumValue()}, " + $"{CSharpFormatter.ConvertToAnonymousObjectDefinition(Value, 3)}, " + diff --git a/src/WireMock.Net.Minimal/Matchers/JsonPartialWildCardMatcher.cs b/src/WireMock.Net.Minimal/Matchers/JsonPartialWildCardMatcher.cs index 7fef75a0..3b437870 100644 --- a/src/WireMock.Net.Minimal/Matchers/JsonPartialWildCardMatcher.cs +++ b/src/WireMock.Net.Minimal/Matchers/JsonPartialWildCardMatcher.cs @@ -41,7 +41,7 @@ public class JsonPartialWildcardMatcher : AbstractJsonPartialMatcher /// public override string GetCSharpCodeArguments() { - return $"new {Name}" + + return $"new {typeof(JsonPartialWildcardMatcher).FullName}" + $"(" + $"{MatchBehaviour.GetFullyQualifiedEnumValue()}, " + $"{CSharpFormatter.ConvertToAnonymousObjectDefinition(Value, 3)}, " + diff --git a/src/WireMock.Net.Minimal/Matchers/LinqMatcher.cs b/src/WireMock.Net.Minimal/Matchers/LinqMatcher.cs index 63621cf8..7d835c94 100644 --- a/src/WireMock.Net.Minimal/Matchers/LinqMatcher.cs +++ b/src/WireMock.Net.Minimal/Matchers/LinqMatcher.cs @@ -141,7 +141,7 @@ public class LinqMatcher : IObjectMatcher, IStringMatcher /// public string GetCSharpCodeArguments() { - return $"new {Name}" + + return $"new {typeof(LinqMatcher).FullName}" + $"(" + $"{MatchBehaviour.GetFullyQualifiedEnumValue()}, " + $"{MatchOperator.GetFullyQualifiedEnumValue()}, " + diff --git a/src/WireMock.Net.Minimal/Matchers/SimMetricsMatcher.cs b/src/WireMock.Net.Minimal/Matchers/SimMetricsMatcher.cs index 1c2ab1d9..3d4785f6 100644 --- a/src/WireMock.Net.Minimal/Matchers/SimMetricsMatcher.cs +++ b/src/WireMock.Net.Minimal/Matchers/SimMetricsMatcher.cs @@ -1,6 +1,5 @@ // Copyright © WireMock.Net -using System.Linq; using AnyOfTypes; using SimMetrics.Net; using SimMetrics.Net.API; @@ -92,10 +91,10 @@ public class SimMetricsMatcher : IStringMatcher /// public virtual string GetCSharpCodeArguments() { - return $"new {Name}" + + return $"new {typeof(SimMetricsMatcher).FullName}" + $"(" + $"{MatchBehaviour.GetFullyQualifiedEnumValue()}, " + - $"{MappingConverterUtils.ToCSharpCodeArguments(_patterns)}, " + + $"new AnyOfTypes.AnyOf[] {{ {MappingConverterUtils.ToCSharpCodeArguments(_patterns)} }}, " + $"{_simMetricType.GetFullyQualifiedEnumValue()}, " + $"{MatchOperator.GetFullyQualifiedEnumValue()}" + $")"; diff --git a/src/WireMock.Net.Minimal/Matchers/SystemTextJsonMatcher.cs b/src/WireMock.Net.Minimal/Matchers/SystemTextJsonMatcher.cs index 4176460f..3ca4e493 100644 --- a/src/WireMock.Net.Minimal/Matchers/SystemTextJsonMatcher.cs +++ b/src/WireMock.Net.Minimal/Matchers/SystemTextJsonMatcher.cs @@ -115,7 +115,7 @@ public class SystemTextJsonMatcher : IJsonMatcher /// public virtual string GetCSharpCodeArguments() { - return $"new {Name}" + + return $"new {typeof(SystemTextJsonMatcher).FullName}" + $"(" + $"{MatchBehaviour.GetFullyQualifiedEnumValue()}, " + $"{CSharpFormatter.ConvertToAnonymousObjectDefinition(Value, 3)}, " + diff --git a/src/WireMock.Net.Minimal/Matchers/SystemTextJsonPartialMatcher.cs b/src/WireMock.Net.Minimal/Matchers/SystemTextJsonPartialMatcher.cs index e431f89c..ed2616d8 100644 --- a/src/WireMock.Net.Minimal/Matchers/SystemTextJsonPartialMatcher.cs +++ b/src/WireMock.Net.Minimal/Matchers/SystemTextJsonPartialMatcher.cs @@ -41,7 +41,7 @@ public class SystemTextJsonPartialMatcher : AbstractSystemTextJsonPartialMatcher /// public override string GetCSharpCodeArguments() { - return $"new {Name}" + + return $"new {typeof(SystemTextJsonPartialMatcher).FullName}" + $"(" + $"{MatchBehaviour.GetFullyQualifiedEnumValue()}, " + $"{CSharpFormatter.ConvertToAnonymousObjectDefinition(Value, 3)}, " + diff --git a/src/WireMock.Net.Minimal/Matchers/SystemTextJsonPartialWildcardMatcher.cs b/src/WireMock.Net.Minimal/Matchers/SystemTextJsonPartialWildcardMatcher.cs index 924c9434..2f9da956 100644 --- a/src/WireMock.Net.Minimal/Matchers/SystemTextJsonPartialWildcardMatcher.cs +++ b/src/WireMock.Net.Minimal/Matchers/SystemTextJsonPartialWildcardMatcher.cs @@ -41,7 +41,7 @@ public class SystemTextJsonPartialWildcardMatcher : AbstractSystemTextJsonPartia /// public override string GetCSharpCodeArguments() { - return $"new {Name}" + + return $"new {typeof(SystemTextJsonPartialWildcardMatcher).FullName}" + $"(" + $"{MatchBehaviour.GetFullyQualifiedEnumValue()}, " + $"{CSharpFormatter.ConvertToAnonymousObjectDefinition(Value, 3)}, " + diff --git a/src/WireMock.Net.Minimal/Matchers/XPathMatcher.cs b/src/WireMock.Net.Minimal/Matchers/XPathMatcher.cs index 043d5ac2..7958f918 100644 --- a/src/WireMock.Net.Minimal/Matchers/XPathMatcher.cs +++ b/src/WireMock.Net.Minimal/Matchers/XPathMatcher.cs @@ -101,7 +101,7 @@ public class XPathMatcher : IStringMatcher /// public string GetCSharpCodeArguments() { - return $"new {Name}" + + return $"new {typeof(XPathMatcher).FullName}" + $"(" + $"{MatchBehaviour.GetFullyQualifiedEnumValue()}, " + $"{MatchOperator.GetFullyQualifiedEnumValue()}, " + diff --git a/src/WireMock.Net.Minimal/Serialization/MappingConverter.cs b/src/WireMock.Net.Minimal/Serialization/MappingConverter.cs index c54ecb7b..34843ef6 100644 --- a/src/WireMock.Net.Minimal/Serialization/MappingConverter.cs +++ b/src/WireMock.Net.Minimal/Serialization/MappingConverter.cs @@ -146,7 +146,7 @@ internal class MappingConverter(MatcherMapper mapper) case JsonMatcher jsonMatcher: { - var matcherType = jsonMatcher.GetType().Name; + var matcherType = jsonMatcher.GetType().FullName; sb.AppendLine($" .WithBody(new {matcherType}("); sb.AppendLine($" value: {ConvertToAnonymousObjectDefinition(jsonMatcher.Value, 3)},"); sb.AppendLine($" ignoreCase: {ToCSharpBooleanLiteral(jsonMatcher.IgnoreCase)},"); @@ -162,14 +162,18 @@ internal class MappingConverter(MatcherMapper mapper) // Guid sb.AppendLine($" .WithGuid(\"{mapping.Guid}\")"); - // Scenario + State + // Scenario, ExecutionConditionState, NextState and StateTimes if (!string.IsNullOrEmpty(mapping.Scenario)) { sb.AppendLine($" .InScenario({ToCSharpStringLiteral(mapping.Scenario)})"); } + if (!string.IsNullOrEmpty(mapping.ExecutionConditionState)) + { + sb.AppendLine($" .WhenStateIs({ToCSharpStringLiteral(mapping.ExecutionConditionState)})"); + } if (!string.IsNullOrEmpty(mapping.NextState)) { - sb.AppendLine($" .WhenStateIs({ToCSharpStringLiteral(mapping.NextState)}, {ToCSharpIntLiteral(mapping.TimesInSameState)})"); + sb.AppendLine($" .WillSetStateTo({ToCSharpStringLiteral(mapping.NextState)}, {ToCSharpIntLiteral(mapping.TimesInSameState)})"); } if (mapping.Probability != null) diff --git a/src/WireMock.Net.Shared/Matchers/NotNullOrEmptyMatcher.cs b/src/WireMock.Net.Shared/Matchers/NotNullOrEmptyMatcher.cs index 666ab3e2..f37c7a15 100644 --- a/src/WireMock.Net.Shared/Matchers/NotNullOrEmptyMatcher.cs +++ b/src/WireMock.Net.Shared/Matchers/NotNullOrEmptyMatcher.cs @@ -75,7 +75,7 @@ public class NotNullOrEmptyMatcher : IObjectMatcher, IStringMatcher /// public string GetCSharpCodeArguments() { - return $"new {Name}" + + return $"new {typeof(NotNullOrEmptyMatcher).FullName}" + $"(" + $"{MatchBehaviour.GetFullyQualifiedEnumValue()}" + $")"; diff --git a/src/WireMock.Net.Shared/Matchers/RegexMatcher.cs b/src/WireMock.Net.Shared/Matchers/RegexMatcher.cs index bf00622d..24e8c9e2 100644 --- a/src/WireMock.Net.Shared/Matchers/RegexMatcher.cs +++ b/src/WireMock.Net.Shared/Matchers/RegexMatcher.cs @@ -1,7 +1,5 @@ // Copyright © WireMock.Net -using System; -using System.Linq; using System.Text.RegularExpressions; using AnyOfTypes; using JetBrains.Annotations; @@ -132,10 +130,10 @@ public class RegexMatcher : IStringMatcher, IIgnoreCaseMatcher /// public virtual string GetCSharpCodeArguments() { - return $"new {Name}" + + return $"new {typeof(RegexMatcher).FullName}" + $"(" + $"{MatchBehaviour.GetFullyQualifiedEnumValue()}, " + - $"{MappingConverterUtils.ToCSharpCodeArguments(_patterns)}, " + + $"new AnyOfTypes.AnyOf[] {{ {MappingConverterUtils.ToCSharpCodeArguments(_patterns)} }}, " + $"{CSharpFormatter.ToCSharpBooleanLiteral(IgnoreCase)}, " + $"{CSharpFormatter.ToCSharpBooleanLiteral(_useRegexExtended)}, " + $"{MatchOperator.GetFullyQualifiedEnumValue()}" + diff --git a/src/WireMock.Net.Shared/Matchers/WildcardMatcher.cs b/src/WireMock.Net.Shared/Matchers/WildcardMatcher.cs index 32e45431..5f953dc3 100644 --- a/src/WireMock.Net.Shared/Matchers/WildcardMatcher.cs +++ b/src/WireMock.Net.Shared/Matchers/WildcardMatcher.cs @@ -1,6 +1,5 @@ // Copyright © WireMock.Net -using System.Linq; using System.Text.RegularExpressions; using AnyOfTypes; using Stef.Validation; @@ -74,10 +73,10 @@ public class WildcardMatcher : RegexMatcher /// public override string GetCSharpCodeArguments() { - return $"new {Name}" + + return $"new {typeof(WildcardMatcher).FullName}" + $"(" + $"{MatchBehaviour.GetFullyQualifiedEnumValue()}, " + - $"{MappingConverterUtils.ToCSharpCodeArguments(_patterns)}, " + + $"new AnyOfTypes.AnyOf[] {{ {MappingConverterUtils.ToCSharpCodeArguments(_patterns)} }}, " + $"{CSharpFormatter.ToCSharpBooleanLiteral(IgnoreCase)}, " + $"{MatchOperator.GetFullyQualifiedEnumValue()}" + $")"; diff --git a/test/WireMock.Net.Tests/AdminApi/WireMockAdminApiTests.IWireMockAdminApi_GetMappingCodeByGuidAsync.verified.txt b/test/WireMock.Net.Tests/AdminApi/WireMockAdminApiTests.IWireMockAdminApi_GetMappingCodeByGuidAsync.verified.txt index 5a408651..0240e531 100644 --- a/test/WireMock.Net.Tests/AdminApi/WireMockAdminApiTests.IWireMockAdminApi_GetMappingCodeByGuidAsync.verified.txt +++ b/test/WireMock.Net.Tests/AdminApi/WireMockAdminApiTests.IWireMockAdminApi_GetMappingCodeByGuidAsync.verified.txt @@ -2,8 +2,8 @@ server .Given(Request.Create() .UsingMethod("GET") - .WithPath(new WildcardMatcher(WireMock.Matchers.MatchBehaviour.AcceptOnMatch, "/foo1", false, WireMock.Matchers.MatchOperator.Or)) - .WithParam("p1", new ExactMatcher(WireMock.Matchers.MatchBehaviour.AcceptOnMatch, false, WireMock.Matchers.MatchOperator.And, "xyz")) + .WithPath(new WireMock.Matchers.WildcardMatcher(WireMock.Matchers.MatchBehaviour.AcceptOnMatch, new AnyOfTypes.AnyOf[] { "/foo1" }, false, WireMock.Matchers.MatchOperator.Or)) + .WithParam("p1", new WireMock.Matchers.ExactMatcher(WireMock.Matchers.MatchBehaviour.AcceptOnMatch, false, WireMock.Matchers.MatchOperator.And, "xyz")) ) .WithGuid("90356dba-b36c-469a-a17e-669cd84f1f05") .RespondWith(Response.Create() diff --git a/test/WireMock.Net.Tests/AdminApi/WireMockAdminApiTests.IWireMockAdminApi_GetMappingsCode.verified.txt b/test/WireMock.Net.Tests/AdminApi/WireMockAdminApiTests.IWireMockAdminApi_GetMappingsCode.verified.txt index 8179e181..ec0bf6d0 100644 --- a/test/WireMock.Net.Tests/AdminApi/WireMockAdminApiTests.IWireMockAdminApi_GetMappingsCode.verified.txt +++ b/test/WireMock.Net.Tests/AdminApi/WireMockAdminApiTests.IWireMockAdminApi_GetMappingsCode.verified.txt @@ -2,8 +2,8 @@ server .Given(Request.Create() .UsingMethod("POST") - .WithPath(new WildcardMatcher(WireMock.Matchers.MatchBehaviour.AcceptOnMatch, "/users/post2", false, WireMock.Matchers.MatchOperator.Or)) - .WithBody(new JsonPartialMatcher( + .WithPath(new WireMock.Matchers.WildcardMatcher(WireMock.Matchers.MatchBehaviour.AcceptOnMatch, new AnyOfTypes.AnyOf[] { "/users/post2" }, false, WireMock.Matchers.MatchOperator.Or)) + .WithBody(new WireMock.Matchers.JsonPartialMatcher( value: new { city = "City", @@ -22,8 +22,8 @@ Some ""value"" in Line2") server .Given(Request.Create() .UsingMethod("POST") - .WithPath(new WildcardMatcher(WireMock.Matchers.MatchBehaviour.AcceptOnMatch, "/foo2", false, WireMock.Matchers.MatchOperator.Or)) - .WithParam("p2", new ExactMatcher(WireMock.Matchers.MatchBehaviour.AcceptOnMatch, false, WireMock.Matchers.MatchOperator.And, "abc")) + .WithPath(new WireMock.Matchers.WildcardMatcher(WireMock.Matchers.MatchBehaviour.AcceptOnMatch, new AnyOfTypes.AnyOf[] { "/foo2" }, false, WireMock.Matchers.MatchOperator.Or)) + .WithParam("p2", new WireMock.Matchers.ExactMatcher(WireMock.Matchers.MatchBehaviour.AcceptOnMatch, false, WireMock.Matchers.MatchOperator.And, "abc")) .WithHeader("h1", "W/\"234f2q3r\"", true) ) .WithGuid("4126dec8-470b-4eff-93bb-c24f83b8b1fd") @@ -37,8 +37,8 @@ server server .Given(Request.Create() .UsingMethod("POST") - .WithPath(new WildcardMatcher(WireMock.Matchers.MatchBehaviour.AcceptOnMatch, "/users/post1", false, WireMock.Matchers.MatchOperator.Or)) - .WithBody(new JsonMatcher( + .WithPath(new WireMock.Matchers.WildcardMatcher(WireMock.Matchers.MatchBehaviour.AcceptOnMatch, new AnyOfTypes.AnyOf[] { "/users/post1" }, false, WireMock.Matchers.MatchOperator.Or)) + .WithBody(new WireMock.Matchers.JsonMatcher( value: new { city = "Amsterdam", @@ -55,7 +55,7 @@ server server .Given(Request.Create() .UsingMethod("DELETE") - .WithUrl(new WildcardMatcher(WireMock.Matchers.MatchBehaviour.AcceptOnMatch, "https://localhost/test", false, WireMock.Matchers.MatchOperator.Or)) + .WithUrl(new WireMock.Matchers.WildcardMatcher(WireMock.Matchers.MatchBehaviour.AcceptOnMatch, new AnyOfTypes.AnyOf[] { "https://localhost/test" }, false, WireMock.Matchers.MatchOperator.Or)) ) .WithGuid("c9929240-7ae8-4a5d-8ed8-0913479f6eeb") .RespondWith(Response.Create() @@ -99,8 +99,8 @@ text server .Given(Request.Create() .UsingMethod("GET") - .WithPath(new WildcardMatcher(WireMock.Matchers.MatchBehaviour.AcceptOnMatch, "/foo1", false, WireMock.Matchers.MatchOperator.Or)) - .WithParam("p1", new ExactMatcher(WireMock.Matchers.MatchBehaviour.AcceptOnMatch, false, WireMock.Matchers.MatchOperator.And, "xyz")) + .WithPath(new WireMock.Matchers.WildcardMatcher(WireMock.Matchers.MatchBehaviour.AcceptOnMatch, new AnyOfTypes.AnyOf[] { "/foo1" }, false, WireMock.Matchers.MatchOperator.Or)) + .WithParam("p1", new WireMock.Matchers.ExactMatcher(WireMock.Matchers.MatchBehaviour.AcceptOnMatch, false, WireMock.Matchers.MatchOperator.And, "xyz")) ) .WithGuid("f74fd144-df53-404f-8e35-da22a640bd5f") .RespondWith(Response.Create() diff --git a/test/WireMock.Net.Tests/MappingBuilderTests.ToCSharpCode_Builder.verified.txt b/test/WireMock.Net.Tests/MappingBuilderTests.ToCSharpCode_Builder.verified.txt index e1ac98de..b172e1e0 100644 --- a/test/WireMock.Net.Tests/MappingBuilderTests.ToCSharpCode_Builder.verified.txt +++ b/test/WireMock.Net.Tests/MappingBuilderTests.ToCSharpCode_Builder.verified.txt @@ -2,8 +2,8 @@ builder .Given(Request.Create() .UsingMethod("GET") - .WithPath(new WildcardMatcher(WireMock.Matchers.MatchBehaviour.AcceptOnMatch, "/foo", false, WireMock.Matchers.MatchOperator.Or)) - .WithParam("test", new ExactMatcher(WireMock.Matchers.MatchBehaviour.AcceptOnMatch, false, WireMock.Matchers.MatchOperator.Or, "abc")) + .WithPath(new WireMock.Matchers.WildcardMatcher(WireMock.Matchers.MatchBehaviour.AcceptOnMatch, new AnyOfTypes.AnyOf[] { "/foo" }, false, WireMock.Matchers.MatchOperator.Or)) + .WithParam("test", new WireMock.Matchers.ExactMatcher(WireMock.Matchers.MatchBehaviour.AcceptOnMatch, false, WireMock.Matchers.MatchOperator.Or, "abc")) ) .WithGuid("41372914-1838-4c67-916b-b9aacdd096ce") .RespondWith(Response.Create() @@ -13,8 +13,8 @@ builder builder .Given(Request.Create() .UsingMethod("POST") - .WithPath(new WildcardMatcher(WireMock.Matchers.MatchBehaviour.AcceptOnMatch, "/users/post1", false, WireMock.Matchers.MatchOperator.Or)) - .WithBody(new JsonMatcher( + .WithPath(new WireMock.Matchers.WildcardMatcher(WireMock.Matchers.MatchBehaviour.AcceptOnMatch, new AnyOfTypes.AnyOf[] { "/users/post1" }, false, WireMock.Matchers.MatchOperator.Or)) + .WithBody(new WireMock.Matchers.JsonMatcher( value: new { Request = "Hello?" @@ -30,8 +30,8 @@ builder builder .Given(Request.Create() .UsingMethod("POST") - .WithPath(new WildcardMatcher(WireMock.Matchers.MatchBehaviour.AcceptOnMatch, "/users/post2", false, WireMock.Matchers.MatchOperator.Or)) - .WithBody(new JsonMatcher( + .WithPath(new WireMock.Matchers.WildcardMatcher(WireMock.Matchers.MatchBehaviour.AcceptOnMatch, new AnyOfTypes.AnyOf[] { "/users/post2" }, false, WireMock.Matchers.MatchOperator.Or)) + .WithBody(new WireMock.Matchers.JsonMatcher( value: new { city = "Amsterdam", @@ -48,7 +48,7 @@ builder builder .Given(Request.Create() .UsingMethod("POST") - .WithPath(new WildcardMatcher(WireMock.Matchers.MatchBehaviour.AcceptOnMatch, "/form-urlencoded", false, WireMock.Matchers.MatchOperator.Or)) + .WithPath(new WireMock.Matchers.WildcardMatcher(WireMock.Matchers.MatchBehaviour.AcceptOnMatch, new AnyOfTypes.AnyOf[] { "/form-urlencoded" }, false, WireMock.Matchers.MatchOperator.Or)) .WithHeader("Content-Type", "application/x-www-form-urlencoded", true) .WithBody("name=John Doe") ) @@ -59,8 +59,8 @@ builder builder .Given(Request.Create() .UsingMethod("GET") - .WithPath(new WildcardMatcher(WireMock.Matchers.MatchBehaviour.AcceptOnMatch, "/regex", false, WireMock.Matchers.MatchOperator.Or)) - .WithParam("foo", new RegexMatcher(WireMock.Matchers.MatchBehaviour.AcceptOnMatch, ".*", false, true, WireMock.Matchers.MatchOperator.Or)) + .WithPath(new WireMock.Matchers.WildcardMatcher(WireMock.Matchers.MatchBehaviour.AcceptOnMatch, new AnyOfTypes.AnyOf[] { "/regex" }, false, WireMock.Matchers.MatchOperator.Or)) + .WithParam("foo", new WireMock.Matchers.RegexMatcher(WireMock.Matchers.MatchBehaviour.AcceptOnMatch, new AnyOfTypes.AnyOf[] { ".*" }, false, true, WireMock.Matchers.MatchOperator.Or)) ) .WithGuid("98fae52e-76df-47d9-876f-2ee32e931004") .RespondWith(Response.Create() @@ -69,11 +69,11 @@ builder builder .Given(Request.Create() .UsingMethod("GET") - .WithPath(new WildcardMatcher(WireMock.Matchers.MatchBehaviour.AcceptOnMatch, "/todo/items", false, WireMock.Matchers.MatchOperator.Or)) + .WithPath(new WireMock.Matchers.WildcardMatcher(WireMock.Matchers.MatchBehaviour.AcceptOnMatch, new AnyOfTypes.AnyOf[] { "/todo/items" }, false, WireMock.Matchers.MatchOperator.Or)) ) .WithGuid("98fae52e-76df-47d9-876f-2ee32e931005") .InScenario("To do list") - .WhenStateIs("TodoList State Started", 2) + .WillSetStateTo("TodoList State Started", 2) .RespondWith(Response.Create() .WithBody("Buy milk") ); @@ -81,7 +81,7 @@ builder builder .Given(Request.Create() .UsingMethod("GET") - .WithPath(new WildcardMatcher(WireMock.Matchers.MatchBehaviour.AcceptOnMatch, "/delay", false, WireMock.Matchers.MatchOperator.Or)) + .WithPath(new WireMock.Matchers.WildcardMatcher(WireMock.Matchers.MatchBehaviour.AcceptOnMatch, new AnyOfTypes.AnyOf[] { "/delay" }, false, WireMock.Matchers.MatchOperator.Or)) ) .WithGuid("98fae52e-76df-47d9-876f-2ee32e931006") .RespondWith(Response.Create() @@ -91,7 +91,7 @@ builder builder .Given(Request.Create() .UsingMethod("GET") - .WithPath(new WildcardMatcher(WireMock.Matchers.MatchBehaviour.AcceptOnMatch, "/random-delay", false, WireMock.Matchers.MatchOperator.Or)) + .WithPath(new WireMock.Matchers.WildcardMatcher(WireMock.Matchers.MatchBehaviour.AcceptOnMatch, new AnyOfTypes.AnyOf[] { "/random-delay" }, false, WireMock.Matchers.MatchOperator.Or)) ) .WithGuid("98fae52e-76df-47d9-876f-2ee32e931007") .RespondWith(Response.Create() @@ -101,7 +101,7 @@ builder builder .Given(Request.Create() .UsingMethod("GET") - .WithPath(new WildcardMatcher(WireMock.Matchers.MatchBehaviour.AcceptOnMatch, "/prob", false, WireMock.Matchers.MatchOperator.Or)) + .WithPath(new WireMock.Matchers.WildcardMatcher(WireMock.Matchers.MatchBehaviour.AcceptOnMatch, new AnyOfTypes.AnyOf[] { "/prob" }, false, WireMock.Matchers.MatchOperator.Or)) ) .WithGuid("98fae52e-76df-47d9-876f-2ee32e931008") .WithProbability(0.1) @@ -112,7 +112,7 @@ builder builder .Given(Request.Create() .UsingMethod("GET") - .WithPath(new WildcardMatcher(WireMock.Matchers.MatchBehaviour.AcceptOnMatch, "/prob", false, WireMock.Matchers.MatchOperator.Or)) + .WithPath(new WireMock.Matchers.WildcardMatcher(WireMock.Matchers.MatchBehaviour.AcceptOnMatch, new AnyOfTypes.AnyOf[] { "/prob" }, false, WireMock.Matchers.MatchOperator.Or)) ) .WithGuid("98fae52e-76df-47d9-876f-2ee32e931009") .WithProbability(0.9) diff --git a/test/WireMock.Net.Tests/MappingBuilderTests.ToCSharpCode_Server.verified.txt b/test/WireMock.Net.Tests/MappingBuilderTests.ToCSharpCode_Server.verified.txt index 3a8739e2..03b5514b 100644 --- a/test/WireMock.Net.Tests/MappingBuilderTests.ToCSharpCode_Server.verified.txt +++ b/test/WireMock.Net.Tests/MappingBuilderTests.ToCSharpCode_Server.verified.txt @@ -2,8 +2,8 @@ server .Given(Request.Create() .UsingMethod("GET") - .WithPath(new WildcardMatcher(WireMock.Matchers.MatchBehaviour.AcceptOnMatch, "/foo", false, WireMock.Matchers.MatchOperator.Or)) - .WithParam("test", new ExactMatcher(WireMock.Matchers.MatchBehaviour.AcceptOnMatch, false, WireMock.Matchers.MatchOperator.Or, "abc")) + .WithPath(new WireMock.Matchers.WildcardMatcher(WireMock.Matchers.MatchBehaviour.AcceptOnMatch, new AnyOfTypes.AnyOf[] { "/foo" }, false, WireMock.Matchers.MatchOperator.Or)) + .WithParam("test", new WireMock.Matchers.ExactMatcher(WireMock.Matchers.MatchBehaviour.AcceptOnMatch, false, WireMock.Matchers.MatchOperator.Or, "abc")) ) .WithGuid("41372914-1838-4c67-916b-b9aacdd096ce") .RespondWith(Response.Create() @@ -13,8 +13,8 @@ server server .Given(Request.Create() .UsingMethod("POST") - .WithPath(new WildcardMatcher(WireMock.Matchers.MatchBehaviour.AcceptOnMatch, "/users/post1", false, WireMock.Matchers.MatchOperator.Or)) - .WithBody(new JsonMatcher( + .WithPath(new WireMock.Matchers.WildcardMatcher(WireMock.Matchers.MatchBehaviour.AcceptOnMatch, new AnyOfTypes.AnyOf[] { "/users/post1" }, false, WireMock.Matchers.MatchOperator.Or)) + .WithBody(new WireMock.Matchers.JsonMatcher( value: new { Request = "Hello?" @@ -30,8 +30,8 @@ server server .Given(Request.Create() .UsingMethod("POST") - .WithPath(new WildcardMatcher(WireMock.Matchers.MatchBehaviour.AcceptOnMatch, "/users/post2", false, WireMock.Matchers.MatchOperator.Or)) - .WithBody(new JsonMatcher( + .WithPath(new WireMock.Matchers.WildcardMatcher(WireMock.Matchers.MatchBehaviour.AcceptOnMatch, new AnyOfTypes.AnyOf[] { "/users/post2" }, false, WireMock.Matchers.MatchOperator.Or)) + .WithBody(new WireMock.Matchers.JsonMatcher( value: new { city = "Amsterdam", @@ -48,7 +48,7 @@ server server .Given(Request.Create() .UsingMethod("POST") - .WithPath(new WildcardMatcher(WireMock.Matchers.MatchBehaviour.AcceptOnMatch, "/form-urlencoded", false, WireMock.Matchers.MatchOperator.Or)) + .WithPath(new WireMock.Matchers.WildcardMatcher(WireMock.Matchers.MatchBehaviour.AcceptOnMatch, new AnyOfTypes.AnyOf[] { "/form-urlencoded" }, false, WireMock.Matchers.MatchOperator.Or)) .WithHeader("Content-Type", "application/x-www-form-urlencoded", true) .WithBody("name=John Doe") ) @@ -59,8 +59,8 @@ server server .Given(Request.Create() .UsingMethod("GET") - .WithPath(new WildcardMatcher(WireMock.Matchers.MatchBehaviour.AcceptOnMatch, "/regex", false, WireMock.Matchers.MatchOperator.Or)) - .WithParam("foo", new RegexMatcher(WireMock.Matchers.MatchBehaviour.AcceptOnMatch, ".*", false, true, WireMock.Matchers.MatchOperator.Or)) + .WithPath(new WireMock.Matchers.WildcardMatcher(WireMock.Matchers.MatchBehaviour.AcceptOnMatch, new AnyOfTypes.AnyOf[] { "/regex" }, false, WireMock.Matchers.MatchOperator.Or)) + .WithParam("foo", new WireMock.Matchers.RegexMatcher(WireMock.Matchers.MatchBehaviour.AcceptOnMatch, new AnyOfTypes.AnyOf[] { ".*" }, false, true, WireMock.Matchers.MatchOperator.Or)) ) .WithGuid("98fae52e-76df-47d9-876f-2ee32e931004") .RespondWith(Response.Create() @@ -69,11 +69,11 @@ server server .Given(Request.Create() .UsingMethod("GET") - .WithPath(new WildcardMatcher(WireMock.Matchers.MatchBehaviour.AcceptOnMatch, "/todo/items", false, WireMock.Matchers.MatchOperator.Or)) + .WithPath(new WireMock.Matchers.WildcardMatcher(WireMock.Matchers.MatchBehaviour.AcceptOnMatch, new AnyOfTypes.AnyOf[] { "/todo/items" }, false, WireMock.Matchers.MatchOperator.Or)) ) .WithGuid("98fae52e-76df-47d9-876f-2ee32e931005") .InScenario("To do list") - .WhenStateIs("TodoList State Started", 2) + .WillSetStateTo("TodoList State Started", 2) .RespondWith(Response.Create() .WithBody("Buy milk") ); @@ -81,7 +81,7 @@ server server .Given(Request.Create() .UsingMethod("GET") - .WithPath(new WildcardMatcher(WireMock.Matchers.MatchBehaviour.AcceptOnMatch, "/delay", false, WireMock.Matchers.MatchOperator.Or)) + .WithPath(new WireMock.Matchers.WildcardMatcher(WireMock.Matchers.MatchBehaviour.AcceptOnMatch, new AnyOfTypes.AnyOf[] { "/delay" }, false, WireMock.Matchers.MatchOperator.Or)) ) .WithGuid("98fae52e-76df-47d9-876f-2ee32e931006") .RespondWith(Response.Create() @@ -91,7 +91,7 @@ server server .Given(Request.Create() .UsingMethod("GET") - .WithPath(new WildcardMatcher(WireMock.Matchers.MatchBehaviour.AcceptOnMatch, "/random-delay", false, WireMock.Matchers.MatchOperator.Or)) + .WithPath(new WireMock.Matchers.WildcardMatcher(WireMock.Matchers.MatchBehaviour.AcceptOnMatch, new AnyOfTypes.AnyOf[] { "/random-delay" }, false, WireMock.Matchers.MatchOperator.Or)) ) .WithGuid("98fae52e-76df-47d9-876f-2ee32e931007") .RespondWith(Response.Create() @@ -101,7 +101,7 @@ server server .Given(Request.Create() .UsingMethod("GET") - .WithPath(new WildcardMatcher(WireMock.Matchers.MatchBehaviour.AcceptOnMatch, "/prob", false, WireMock.Matchers.MatchOperator.Or)) + .WithPath(new WireMock.Matchers.WildcardMatcher(WireMock.Matchers.MatchBehaviour.AcceptOnMatch, new AnyOfTypes.AnyOf[] { "/prob" }, false, WireMock.Matchers.MatchOperator.Or)) ) .WithGuid("98fae52e-76df-47d9-876f-2ee32e931008") .WithProbability(0.1) @@ -112,7 +112,7 @@ server server .Given(Request.Create() .UsingMethod("GET") - .WithPath(new WildcardMatcher(WireMock.Matchers.MatchBehaviour.AcceptOnMatch, "/prob", false, WireMock.Matchers.MatchOperator.Or)) + .WithPath(new WireMock.Matchers.WildcardMatcher(WireMock.Matchers.MatchBehaviour.AcceptOnMatch, new AnyOfTypes.AnyOf[] { "/prob" }, false, WireMock.Matchers.MatchOperator.Or)) ) .WithGuid("98fae52e-76df-47d9-876f-2ee32e931009") .WithProbability(0.9) diff --git a/test/WireMock.Net.Tests/Matchers/FuncMatcherTests.cs b/test/WireMock.Net.Tests/Matchers/FuncMatcherTests.cs index 36ea3ffb..3a95cc5a 100644 --- a/test/WireMock.Net.Tests/Matchers/FuncMatcherTests.cs +++ b/test/WireMock.Net.Tests/Matchers/FuncMatcherTests.cs @@ -257,7 +257,7 @@ public class FuncMatcherTests var code = matcher.GetCSharpCodeArguments(); // Assert - code.Should().Be("new FuncMatcher(/* Func function */, WireMock.Matchers.MatchBehaviour.AcceptOnMatch)"); + code.Should().Be("new WireMock.Matchers.FuncMatcher(/* Func function */, WireMock.Matchers.MatchBehaviour.AcceptOnMatch)"); } [Fact] @@ -271,7 +271,7 @@ public class FuncMatcherTests var code = matcher.GetCSharpCodeArguments(); // Assert - code.Should().Be("new FuncMatcher(/* Func function */, WireMock.Matchers.MatchBehaviour.AcceptOnMatch)"); + code.Should().Be("new WireMock.Matchers.FuncMatcher(/* Func function */, WireMock.Matchers.MatchBehaviour.AcceptOnMatch)"); } [Fact] diff --git a/test/WireMock.Net.Tests/Matchers/JsonMatcherTests.cs b/test/WireMock.Net.Tests/Matchers/JsonMatcherTests.cs index 5637e0b2..0e71e692 100644 --- a/test/WireMock.Net.Tests/Matchers/JsonMatcherTests.cs +++ b/test/WireMock.Net.Tests/Matchers/JsonMatcherTests.cs @@ -667,7 +667,7 @@ public class JsonMatcherTests var result = matcher.GetCSharpCodeArguments(); // Assert - result.Should().StartWith($"new JsonMatcher(WireMock.Matchers.MatchBehaviour.{matchBehaviour},"); + result.Should().StartWith($"new WireMock.Matchers.JsonMatcher(WireMock.Matchers.MatchBehaviour.{matchBehaviour},"); result.Should().EndWith($", {ignoreCase.ToString().ToLowerInvariant()}, {regex.ToString().ToLowerInvariant()}, {ignoreArrayOrder.ToString().ToLowerInvariant()})"); } } \ No newline at end of file diff --git a/test/WireMock.Net.Tests/Matchers/MatcherTests.cs b/test/WireMock.Net.Tests/Matchers/MatcherTests.cs index a03d9215..80adfb8d 100644 --- a/test/WireMock.Net.Tests/Matchers/MatcherTests.cs +++ b/test/WireMock.Net.Tests/Matchers/MatcherTests.cs @@ -14,7 +14,7 @@ public class MatcherTests var result = matcher.GetCSharpCodeArguments(); // Assert - result.Should().Be("new ContentTypeMatcher(WireMock.Matchers.MatchBehaviour.AcceptOnMatch, \"application/json\", false)"); + result.Should().Be("new WireMock.Matchers.ContentTypeMatcher(WireMock.Matchers.MatchBehaviour.AcceptOnMatch, new AnyOfTypes.AnyOf[] { \"application/json\" }, false)"); } [Fact] @@ -27,7 +27,7 @@ public class MatcherTests var result = matcher.GetCSharpCodeArguments(); // Assert - result.Should().Be("new ExactMatcher(WireMock.Matchers.MatchBehaviour.AcceptOnMatch, false, WireMock.Matchers.MatchOperator.Or, \"test\")"); + result.Should().Be("new WireMock.Matchers.ExactMatcher(WireMock.Matchers.MatchBehaviour.AcceptOnMatch, false, WireMock.Matchers.MatchOperator.Or, \"test\")"); } [Fact] @@ -53,7 +53,7 @@ public class MatcherTests var result = matcher.GetCSharpCodeArguments(); // Assert - result.Should().Be("new FormUrlEncodedMatcher(WireMock.Matchers.MatchBehaviour.AcceptOnMatch, \"key=value\", false, WireMock.Matchers.MatchOperator.Or)"); + result.Should().Be("new WireMock.Matchers.FormUrlEncodedMatcher(WireMock.Matchers.MatchBehaviour.AcceptOnMatch, new AnyOfTypes.AnyOf[] { \"key=value\" }, false, WireMock.Matchers.MatchOperator.Or)"); } [Fact] @@ -66,7 +66,7 @@ public class MatcherTests var result = matcher.GetCSharpCodeArguments(); // Assert - result.Should().Be("new JmesPathMatcher(WireMock.Matchers.MatchBehaviour.AcceptOnMatch, WireMock.Matchers.MatchOperator.Or, \"expression\")"); + result.Should().Be("new WireMock.Matchers.JmesPathMatcher(WireMock.Matchers.MatchBehaviour.AcceptOnMatch, WireMock.Matchers.MatchOperator.Or, \"expression\")"); } [Fact] @@ -79,7 +79,7 @@ public class MatcherTests var result = matcher.GetCSharpCodeArguments(); // Assert - result.Should().StartWith("new JsonMatcher(WireMock.Matchers.MatchBehaviour.AcceptOnMatch,"); + result.Should().StartWith("new WireMock.Matchers.JsonMatcher(WireMock.Matchers.MatchBehaviour.AcceptOnMatch,"); } [Fact] @@ -92,7 +92,7 @@ public class MatcherTests var result = matcher.GetCSharpCodeArguments(); // Assert - result.Should().StartWith("new JsonPartialMatcher(WireMock.Matchers.MatchBehaviour.AcceptOnMatch,"); + result.Should().StartWith("new WireMock.Matchers.JsonPartialMatcher(WireMock.Matchers.MatchBehaviour.AcceptOnMatch,"); } [Fact] @@ -105,7 +105,7 @@ public class MatcherTests var result = matcher.GetCSharpCodeArguments(); // Assert - result.Should().StartWith("new JsonPartialWildcardMatcher(WireMock.Matchers.MatchBehaviour.AcceptOnMatch,"); + result.Should().StartWith("new WireMock.Matchers.JsonPartialWildcardMatcher(WireMock.Matchers.MatchBehaviour.AcceptOnMatch,"); } //[Fact] @@ -118,7 +118,7 @@ public class MatcherTests // var result = matcher.GetCSharpCodeArguments(); // // Assert - // result.Should().Be("new LinqMatcher(WireMock.Matchers.MatchBehaviour.AcceptOnMatch, WireMock.Matchers.MatchOperator.Or, \"it.Contains(\\\"test\\\"\")"); + // result.Should().Be("new WireMock.Matchers.LinqMatcher(WireMock.Matchers.MatchBehaviour.AcceptOnMatch, WireMock.Matchers.MatchOperator.Or, \"it.Contains(\\\"test\\\"\")"); //} [Fact] @@ -131,7 +131,7 @@ public class MatcherTests var result = matcher.GetCSharpCodeArguments(); // Assert - result.Should().Be("new RegexMatcher(WireMock.Matchers.MatchBehaviour.AcceptOnMatch, \"pattern\", false, true, WireMock.Matchers.MatchOperator.Or)"); + result.Should().Be("new WireMock.Matchers.RegexMatcher(WireMock.Matchers.MatchBehaviour.AcceptOnMatch, new AnyOfTypes.AnyOf[] { \"pattern\" }, false, true, WireMock.Matchers.MatchOperator.Or)"); } [Fact] @@ -144,7 +144,7 @@ public class MatcherTests var result = matcher.GetCSharpCodeArguments(); // Assert - result.Should().Be("new SimMetricsMatcher.Levenstein(WireMock.Matchers.MatchBehaviour.AcceptOnMatch, \"test\", SimMetrics.Net.SimMetricType.Levenstein, WireMock.Matchers.MatchOperator.Average)"); + result.Should().Be("new WireMock.Matchers.SimMetricsMatcher(WireMock.Matchers.MatchBehaviour.AcceptOnMatch, new AnyOfTypes.AnyOf[] { \"test\" }, SimMetrics.Net.SimMetricType.Levenstein, WireMock.Matchers.MatchOperator.Average)"); } [Fact] @@ -157,7 +157,7 @@ public class MatcherTests var result = matcher.GetCSharpCodeArguments(); // Assert - result.Should().Be("new WildcardMatcher(WireMock.Matchers.MatchBehaviour.AcceptOnMatch, \"pattern\", false, WireMock.Matchers.MatchOperator.Or)"); + result.Should().Be("new WireMock.Matchers.WildcardMatcher(WireMock.Matchers.MatchBehaviour.AcceptOnMatch, new AnyOfTypes.AnyOf[] { \"pattern\" }, false, WireMock.Matchers.MatchOperator.Or)"); } [Fact] @@ -170,6 +170,6 @@ public class MatcherTests var result = matcher.GetCSharpCodeArguments(); // Assert - result.Should().Be("new XPathMatcher(WireMock.Matchers.MatchBehaviour.AcceptOnMatch, WireMock.Matchers.MatchOperator.Or, null, \"pattern1\")"); + result.Should().Be("new WireMock.Matchers.XPathMatcher(WireMock.Matchers.MatchBehaviour.AcceptOnMatch, WireMock.Matchers.MatchOperator.Or, null, \"pattern1\")"); } } \ No newline at end of file diff --git a/test/WireMock.Net.Tests/Matchers/SystemTextJsonMatcherTests.cs b/test/WireMock.Net.Tests/Matchers/SystemTextJsonMatcherTests.cs index 4a25aec4..39df67e6 100644 --- a/test/WireMock.Net.Tests/Matchers/SystemTextJsonMatcherTests.cs +++ b/test/WireMock.Net.Tests/Matchers/SystemTextJsonMatcherTests.cs @@ -478,7 +478,7 @@ public class SystemTextJsonMatcherTests var result = matcher.GetCSharpCodeArguments(); // Assert - result.Should().StartWith($"new SystemTextJsonMatcher(WireMock.Matchers.MatchBehaviour.{matchBehaviour},"); + result.Should().StartWith($"new WireMock.Matchers.SystemTextJsonMatcher(WireMock.Matchers.MatchBehaviour.{matchBehaviour},"); result.Should().EndWith($", {ignoreCase.ToString().ToLowerInvariant()}, {regex.ToString().ToLowerInvariant()}, {ignoreArrayOrder.ToString().ToLowerInvariant()})"); } } \ No newline at end of file diff --git a/test/WireMock.Net.Tests/Serialization/MappingConverterTests.ToCSharpCode.cs b/test/WireMock.Net.Tests/Serialization/MappingConverterTests.ToCSharpCode.cs index 811b9113..bc08504a 100644 --- a/test/WireMock.Net.Tests/Serialization/MappingConverterTests.ToCSharpCode.cs +++ b/test/WireMock.Net.Tests/Serialization/MappingConverterTests.ToCSharpCode.cs @@ -1,5 +1,6 @@ // Copyright © WireMock.Net +using WireMock.Matchers; using WireMock.Matchers.Request; using WireMock.Net.Tests.VerifyExtensions; using WireMock.RequestBuilders; @@ -97,6 +98,167 @@ public partial class MappingConverterTests return Verify(code, VerifySettings); } + [Fact] + public Task ToCSharpCode_With_ScenarioAndState_Emits_WhenStateIs_And_WillSetStateTo() + { + // Assign: a stateful mapping that gates on state "Begin" and moves to "End" after 3 hits. + var mapping = CreateScenarioMapping("Ordering", executionConditionState: "Begin", nextState: "End", timesInSameState: 3); + + // Act + var code = _sut.ToCSharpCode(mapping, new MappingConverterSettings + { + AddStart = false, + ConverterType = MappingConverterType.Server + }); + + // Verify + return Verify(code, VerifySettings); + } + + [Fact] + public Task ToCSharpCode_With_NextStateOnly_Emits_WillSetStateTo_Without_Times() + { + // Assign: a start-state mapping that only sets the next state (no execution condition, default times). + var mapping = CreateScenarioMapping("Ordering", executionConditionState: null, nextState: "Begin", timesInSameState: null); + + // Act + var code = _sut.ToCSharpCode(mapping, new MappingConverterSettings + { + AddStart = false, + ConverterType = MappingConverterType.Server + }); + + // Verify + return Verify(code, VerifySettings); + } + + [Fact] + public Task ToCSharpCode_WithPath_RegexMatcher_MultiplePatterns() + { + // Assign + var mapping = CreateMappingWithRequest(Request.Create() + .UsingGet() + .WithPath(new RegexMatcher(MatchBehaviour.AcceptOnMatch, ["/a", "/b"]))); + + // Act + var code = _sut.ToCSharpCode(mapping, new MappingConverterSettings + { + AddStart = false, + ConverterType = MappingConverterType.Server + }); + + // Verify + return Verify(code, VerifySettings); + } + + [Fact] + public Task ToCSharpCode_WithPath_SimMetricsMatcher_MultiplePatterns() + { + // Assign + var mapping = CreateMappingWithRequest(Request.Create() + .UsingGet() + .WithPath(new SimMetricsMatcher(new AnyOfTypes.AnyOf[] { "/a", "/b" }))); + + // Act + var code = _sut.ToCSharpCode(mapping, new MappingConverterSettings + { + AddStart = false, + ConverterType = MappingConverterType.Server + }); + + // Verify + return Verify(code, VerifySettings); + } + + [Fact] + public Task ToCSharpCode_WithPath_ContentTypeMatcher_MultiplePatterns() + { + // Assign + var mapping = CreateMappingWithRequest(Request.Create() + .UsingGet() + .WithPath(new ContentTypeMatcher(["text/a", "text/b"]))); + + // Act + var code = _sut.ToCSharpCode(mapping, new MappingConverterSettings + { + AddStart = false, + ConverterType = MappingConverterType.Server + }); + + // Verify + return Verify(code, VerifySettings); + } + + [Fact] + public Task ToCSharpCode_WithPath_FormUrlEncodedMatcher_MultiplePatterns() + { + // Assign + var mapping = CreateMappingWithRequest(Request.Create() + .UsingGet() + .WithPath(new FormUrlEncodedMatcher(["a=1", "b=2"]))); + + // Act + var code = _sut.ToCSharpCode(mapping, new MappingConverterSettings + { + AddStart = false, + ConverterType = MappingConverterType.Server + }); + + // Verify + return Verify(code, VerifySettings); + } + + private Mapping CreateMappingWithRequest(IRequestBuilder requestBuilder) + { + return new Mapping + ( + guid: new Guid("8e7b9ab7-e18e-4502-8bc9-11e6679811cc"), + updatedAt: _updatedAt, + title: string.Empty, + description: string.Empty, + path: null, + settings: _settings, + requestMatcher: (IRequestMatcher)requestBuilder, + provider: Response.Create().WithSuccess(), + priority: 0, + scenario: null, + executionConditionState: null, + nextState: null, + stateTimes: null, + webhooks: null, + useWebhooksFireAndForget: false, + timeSettings: null, + data: null + ); + } + + private Mapping CreateScenarioMapping(string scenario, string? executionConditionState, string? nextState, int? timesInSameState) + { + var request = Request.Create().UsingGet().WithPath("/test_path"); + var response = Response.Create().WithSuccess(); + + return new Mapping + ( + guid: new Guid("8e7b9ab7-e18e-4502-8bc9-11e6679811cc"), + updatedAt: _updatedAt, + title: string.Empty, + description: string.Empty, + path: null, + settings: _settings, + requestMatcher: request, + provider: response, + priority: 0, + scenario: scenario, + executionConditionState: executionConditionState, + nextState: nextState, + stateTimes: timesInSameState, + webhooks: null, + useWebhooksFireAndForget: false, + timeSettings: null, + data: null + ); + } + private IMapping CreateMapping() { var guid = new Guid("8e7b9ab7-e18e-4502-8bc9-11e6679811cc"); @@ -117,22 +279,22 @@ public partial class MappingConverterTests return new Mapping ( - guid, - _updatedAt, - string.Empty, - string.Empty, - null, - _settings, - request, - response, - 42, - null, - null, - null, - null, - null, - false, - null, + guid: guid, + updatedAt: _updatedAt, + title: string.Empty, + description: string.Empty, + path: null, + settings: _settings, + requestMatcher: request, + provider: response, + priority: 42, + scenario: null, + executionConditionState: null, + nextState: null, + stateTimes: null, + webhooks: null, + useWebhooksFireAndForget: false, + timeSettings: null, data: null ).WithProbability(0.3); } diff --git a/test/WireMock.Net.Tests/Serialization/MappingConverterTests.ToCSharpCode_WithPath_ContentTypeMatcher_MultiplePatterns.verified.txt b/test/WireMock.Net.Tests/Serialization/MappingConverterTests.ToCSharpCode_WithPath_ContentTypeMatcher_MultiplePatterns.verified.txt new file mode 100644 index 00000000..bb3b0a0d --- /dev/null +++ b/test/WireMock.Net.Tests/Serialization/MappingConverterTests.ToCSharpCode_WithPath_ContentTypeMatcher_MultiplePatterns.verified.txt @@ -0,0 +1,9 @@ +server + .Given(Request.Create() + .UsingMethod("GET") + .WithPath(new WireMock.Matchers.ContentTypeMatcher(WireMock.Matchers.MatchBehaviour.AcceptOnMatch, new AnyOfTypes.AnyOf[] { "text/a", "text/b" }, false)) + ) + .WithGuid("8e7b9ab7-e18e-4502-8bc9-11e6679811cc") + .RespondWith(Response.Create() + .WithStatusCode(200) + ); diff --git a/test/WireMock.Net.Tests/Serialization/MappingConverterTests.ToCSharpCode_WithPath_FormUrlEncodedMatcher_MultiplePatterns.verified.txt b/test/WireMock.Net.Tests/Serialization/MappingConverterTests.ToCSharpCode_WithPath_FormUrlEncodedMatcher_MultiplePatterns.verified.txt new file mode 100644 index 00000000..dadd1021 --- /dev/null +++ b/test/WireMock.Net.Tests/Serialization/MappingConverterTests.ToCSharpCode_WithPath_FormUrlEncodedMatcher_MultiplePatterns.verified.txt @@ -0,0 +1,9 @@ +server + .Given(Request.Create() + .UsingMethod("GET") + .WithPath(new WireMock.Matchers.FormUrlEncodedMatcher(WireMock.Matchers.MatchBehaviour.AcceptOnMatch, new AnyOfTypes.AnyOf[] { "a=1", "b=2" }, false, WireMock.Matchers.MatchOperator.Or)) + ) + .WithGuid("8e7b9ab7-e18e-4502-8bc9-11e6679811cc") + .RespondWith(Response.Create() + .WithStatusCode(200) + ); diff --git a/test/WireMock.Net.Tests/Serialization/MappingConverterTests.ToCSharpCode_WithPath_RegexMatcher_MultiplePatterns.verified.txt b/test/WireMock.Net.Tests/Serialization/MappingConverterTests.ToCSharpCode_WithPath_RegexMatcher_MultiplePatterns.verified.txt new file mode 100644 index 00000000..ff35d4df --- /dev/null +++ b/test/WireMock.Net.Tests/Serialization/MappingConverterTests.ToCSharpCode_WithPath_RegexMatcher_MultiplePatterns.verified.txt @@ -0,0 +1,9 @@ +server + .Given(Request.Create() + .UsingMethod("GET") + .WithPath(new WireMock.Matchers.RegexMatcher(WireMock.Matchers.MatchBehaviour.AcceptOnMatch, new AnyOfTypes.AnyOf[] { "/a", "/b" }, false, true, WireMock.Matchers.MatchOperator.Or)) + ) + .WithGuid("8e7b9ab7-e18e-4502-8bc9-11e6679811cc") + .RespondWith(Response.Create() + .WithStatusCode(200) + ); diff --git a/test/WireMock.Net.Tests/Serialization/MappingConverterTests.ToCSharpCode_WithPath_SimMetricsMatcher_MultiplePatterns.verified.txt b/test/WireMock.Net.Tests/Serialization/MappingConverterTests.ToCSharpCode_WithPath_SimMetricsMatcher_MultiplePatterns.verified.txt new file mode 100644 index 00000000..629ac711 --- /dev/null +++ b/test/WireMock.Net.Tests/Serialization/MappingConverterTests.ToCSharpCode_WithPath_SimMetricsMatcher_MultiplePatterns.verified.txt @@ -0,0 +1,9 @@ +server + .Given(Request.Create() + .UsingMethod("GET") + .WithPath(new WireMock.Matchers.SimMetricsMatcher(WireMock.Matchers.MatchBehaviour.AcceptOnMatch, new AnyOfTypes.AnyOf[] { "/a", "/b" }, SimMetrics.Net.SimMetricType.Levenstein, WireMock.Matchers.MatchOperator.Average)) + ) + .WithGuid("8e7b9ab7-e18e-4502-8bc9-11e6679811cc") + .RespondWith(Response.Create() + .WithStatusCode(200) + ); diff --git a/test/WireMock.Net.Tests/Serialization/MappingConverterTests.ToCSharpCode_With_Builder_And_AddStartIsFalse.verified.txt b/test/WireMock.Net.Tests/Serialization/MappingConverterTests.ToCSharpCode_With_Builder_And_AddStartIsFalse.verified.txt index b74e4e6b..aaf64e11 100644 --- a/test/WireMock.Net.Tests/Serialization/MappingConverterTests.ToCSharpCode_With_Builder_And_AddStartIsFalse.verified.txt +++ b/test/WireMock.Net.Tests/Serialization/MappingConverterTests.ToCSharpCode_With_Builder_And_AddStartIsFalse.verified.txt @@ -2,8 +2,8 @@ .Given(Request.Create() .WithEarlyMismatch(WireMock.Matchers.Request.RequestMatcherType.Method) .UsingMethod("GET") - .WithPath(new WildcardMatcher(WireMock.Matchers.MatchBehaviour.AcceptOnMatch, "/test_path", false, WireMock.Matchers.MatchOperator.Or)) - .WithParam("q", new ExactMatcher(WireMock.Matchers.MatchBehaviour.AcceptOnMatch, false, WireMock.Matchers.MatchOperator.And, "42")) + .WithPath(new WireMock.Matchers.WildcardMatcher(WireMock.Matchers.MatchBehaviour.AcceptOnMatch, new AnyOfTypes.AnyOf[] { "/test_path" }, false, WireMock.Matchers.MatchOperator.Or)) + .WithParam("q", new WireMock.Matchers.ExactMatcher(WireMock.Matchers.MatchBehaviour.AcceptOnMatch, false, WireMock.Matchers.MatchOperator.And, "42")) .WithClientIP("112.123.100.99") .WithHeader("h-key", "h-value", true) .WithCookie("c-key", "c-value", true) diff --git a/test/WireMock.Net.Tests/Serialization/MappingConverterTests.ToCSharpCode_With_Builder_And_AddStartIsTrue.verified.txt b/test/WireMock.Net.Tests/Serialization/MappingConverterTests.ToCSharpCode_With_Builder_And_AddStartIsTrue.verified.txt index 6cbf645c..fe1310fb 100644 --- a/test/WireMock.Net.Tests/Serialization/MappingConverterTests.ToCSharpCode_With_Builder_And_AddStartIsTrue.verified.txt +++ b/test/WireMock.Net.Tests/Serialization/MappingConverterTests.ToCSharpCode_With_Builder_And_AddStartIsTrue.verified.txt @@ -3,8 +3,8 @@ builder .Given(Request.Create() .WithEarlyMismatch(WireMock.Matchers.Request.RequestMatcherType.Method) .UsingMethod("GET") - .WithPath(new WildcardMatcher(WireMock.Matchers.MatchBehaviour.AcceptOnMatch, "/test_path", false, WireMock.Matchers.MatchOperator.Or)) - .WithParam("q", new ExactMatcher(WireMock.Matchers.MatchBehaviour.AcceptOnMatch, false, WireMock.Matchers.MatchOperator.And, "42")) + .WithPath(new WireMock.Matchers.WildcardMatcher(WireMock.Matchers.MatchBehaviour.AcceptOnMatch, new AnyOfTypes.AnyOf[] { "/test_path" }, false, WireMock.Matchers.MatchOperator.Or)) + .WithParam("q", new WireMock.Matchers.ExactMatcher(WireMock.Matchers.MatchBehaviour.AcceptOnMatch, false, WireMock.Matchers.MatchOperator.And, "42")) .WithClientIP("112.123.100.99") .WithHeader("h-key", "h-value", true) .WithCookie("c-key", "c-value", true) diff --git a/test/WireMock.Net.Tests/Serialization/MappingConverterTests.ToCSharpCode_With_NextStateOnly_Emits_WillSetStateTo_Without_Times.verified.txt b/test/WireMock.Net.Tests/Serialization/MappingConverterTests.ToCSharpCode_With_NextStateOnly_Emits_WillSetStateTo_Without_Times.verified.txt new file mode 100644 index 00000000..f95dd0bf --- /dev/null +++ b/test/WireMock.Net.Tests/Serialization/MappingConverterTests.ToCSharpCode_With_NextStateOnly_Emits_WillSetStateTo_Without_Times.verified.txt @@ -0,0 +1,11 @@ +server + .Given(Request.Create() + .UsingMethod("GET") + .WithPath(new WireMock.Matchers.WildcardMatcher(WireMock.Matchers.MatchBehaviour.AcceptOnMatch, new AnyOfTypes.AnyOf[] { "/test_path" }, false, WireMock.Matchers.MatchOperator.Or)) + ) + .WithGuid("8e7b9ab7-e18e-4502-8bc9-11e6679811cc") + .InScenario("Ordering") + .WillSetStateTo("Begin", null) + .RespondWith(Response.Create() + .WithStatusCode(200) + ); diff --git a/test/WireMock.Net.Tests/Serialization/MappingConverterTests.ToCSharpCode_With_ScenarioAndState_Emits_WhenStateIs_And_WillSetStateTo.verified.txt b/test/WireMock.Net.Tests/Serialization/MappingConverterTests.ToCSharpCode_With_ScenarioAndState_Emits_WhenStateIs_And_WillSetStateTo.verified.txt new file mode 100644 index 00000000..568b9e38 --- /dev/null +++ b/test/WireMock.Net.Tests/Serialization/MappingConverterTests.ToCSharpCode_With_ScenarioAndState_Emits_WhenStateIs_And_WillSetStateTo.verified.txt @@ -0,0 +1,12 @@ +server + .Given(Request.Create() + .UsingMethod("GET") + .WithPath(new WireMock.Matchers.WildcardMatcher(WireMock.Matchers.MatchBehaviour.AcceptOnMatch, new AnyOfTypes.AnyOf[] { "/test_path" }, false, WireMock.Matchers.MatchOperator.Or)) + ) + .WithGuid("8e7b9ab7-e18e-4502-8bc9-11e6679811cc") + .InScenario("Ordering") + .WhenStateIs("Begin") + .WillSetStateTo("End", 3) + .RespondWith(Response.Create() + .WithStatusCode(200) + ); diff --git a/test/WireMock.Net.Tests/Serialization/MappingConverterTests.ToCSharpCode_With_Server_And_AddStartIsFalse.verified.txt b/test/WireMock.Net.Tests/Serialization/MappingConverterTests.ToCSharpCode_With_Server_And_AddStartIsFalse.verified.txt index f68a1a55..a2159ffb 100644 --- a/test/WireMock.Net.Tests/Serialization/MappingConverterTests.ToCSharpCode_With_Server_And_AddStartIsFalse.verified.txt +++ b/test/WireMock.Net.Tests/Serialization/MappingConverterTests.ToCSharpCode_With_Server_And_AddStartIsFalse.verified.txt @@ -2,8 +2,8 @@ .Given(Request.Create() .WithEarlyMismatch(WireMock.Matchers.Request.RequestMatcherType.Method) .UsingMethod("GET") - .WithPath(new WildcardMatcher(WireMock.Matchers.MatchBehaviour.AcceptOnMatch, "/test_path", false, WireMock.Matchers.MatchOperator.Or)) - .WithParam("q", new ExactMatcher(WireMock.Matchers.MatchBehaviour.AcceptOnMatch, false, WireMock.Matchers.MatchOperator.And, "42")) + .WithPath(new WireMock.Matchers.WildcardMatcher(WireMock.Matchers.MatchBehaviour.AcceptOnMatch, new AnyOfTypes.AnyOf[] { "/test_path" }, false, WireMock.Matchers.MatchOperator.Or)) + .WithParam("q", new WireMock.Matchers.ExactMatcher(WireMock.Matchers.MatchBehaviour.AcceptOnMatch, false, WireMock.Matchers.MatchOperator.And, "42")) .WithClientIP("112.123.100.99") .WithHeader("h-key", "h-value", true) .WithCookie("c-key", "c-value", true) diff --git a/test/WireMock.Net.Tests/Serialization/MappingConverterTests.ToCSharpCode_With_Server_And_AddStartIsTrue.verified.txt b/test/WireMock.Net.Tests/Serialization/MappingConverterTests.ToCSharpCode_With_Server_And_AddStartIsTrue.verified.txt index 887b143c..2ac1267a 100644 --- a/test/WireMock.Net.Tests/Serialization/MappingConverterTests.ToCSharpCode_With_Server_And_AddStartIsTrue.verified.txt +++ b/test/WireMock.Net.Tests/Serialization/MappingConverterTests.ToCSharpCode_With_Server_And_AddStartIsTrue.verified.txt @@ -3,8 +3,8 @@ server .Given(Request.Create() .WithEarlyMismatch(WireMock.Matchers.Request.RequestMatcherType.Method) .UsingMethod("GET") - .WithPath(new WildcardMatcher(WireMock.Matchers.MatchBehaviour.AcceptOnMatch, "/test_path", false, WireMock.Matchers.MatchOperator.Or)) - .WithParam("q", new ExactMatcher(WireMock.Matchers.MatchBehaviour.AcceptOnMatch, false, WireMock.Matchers.MatchOperator.And, "42")) + .WithPath(new WireMock.Matchers.WildcardMatcher(WireMock.Matchers.MatchBehaviour.AcceptOnMatch, new AnyOfTypes.AnyOf[] { "/test_path" }, false, WireMock.Matchers.MatchOperator.Or)) + .WithParam("q", new WireMock.Matchers.ExactMatcher(WireMock.Matchers.MatchBehaviour.AcceptOnMatch, false, WireMock.Matchers.MatchOperator.And, "42")) .WithClientIP("112.123.100.99") .WithHeader("h-key", "h-value", true) .WithCookie("c-key", "c-value", true)