This commit is contained in:
Stef Heyenrath
2023-06-01 21:14:13 +02:00
parent b1ae9aaf46
commit b609191095
4 changed files with 15 additions and 6 deletions

View File

@@ -1,5 +1,6 @@
using System; using System;
using System.IO; using System.IO;
using WireMock.Net.OpenApiParser.Types;
using WireMock.RequestBuilders; using WireMock.RequestBuilders;
using WireMock.ResponseBuilders; using WireMock.ResponseBuilders;
@@ -18,7 +19,7 @@ class Program
private static void RunMockServerWithDynamicExampleGeneration() private static void RunMockServerWithDynamicExampleGeneration()
{ {
// Run your mocking framework specifying your Example Values generator class. // Run your mocking framework specifying your Example Values generator class.
var serverCustomer_V2_json = Run.RunServer(Path.Combine(Folder, "Swagger_Customer_V2.0.json"), "http://localhost:8090/", true, new DynamicDataGeneration(), Types.PatternType.Value, Types.PatternType.Value); var serverCustomer_V2_json = Run.RunServer(Path.Combine(Folder, "Swagger_Customer_V2.0.json"), "http://localhost:8090/", true, new DynamicDataGeneration(), ExampleValueType.Value, ExampleValueType.Value);
Console.WriteLine("Press any key to stop the servers"); Console.WriteLine("Press any key to stop the servers");
Console.ReadKey(); Console.ReadKey();

View File

@@ -18,8 +18,8 @@ public static class Run
string url, string url,
bool dynamicExamples = true, bool dynamicExamples = true,
IWireMockOpenApiParserExampleValues? examplesValuesGenerator = null, IWireMockOpenApiParserExampleValues? examplesValuesGenerator = null,
PatternType pathPatternToUse = PatternType.Wildcard, ExampleValueType pathPatternToUse = ExampleValueType.Wildcard,
PatternType headerPatternToUse = PatternType.Wildcard ExampleValueType headerPatternToUse = ExampleValueType.Wildcard
) )
{ {
var server = WireMockServer.Start(new WireMockServerSettings var server = WireMockServer.Start(new WireMockServerSettings

View File

@@ -21,7 +21,7 @@ internal class RegexExampleValueGenerator : IExampleValueGenerator
return @"(true|false)"; return @"(true|false)";
case SchemaType.Integer: case SchemaType.Integer:
return @"-?\d+$"; return @"-?\d+";
case SchemaType.Number: case SchemaType.Number:
return @"[-+]?[0-9]*\.?[0-9]+([eE][-+]?[0-9]+)?"; return @"[-+]?[0-9]*\.?[0-9]+([eE][-+]?[0-9]+)?";

View File

@@ -9,6 +9,7 @@ using RamlToOpenApiConverter;
using WireMock.Admin.Mappings; using WireMock.Admin.Mappings;
using WireMock.Net.OpenApiParser.Mappers; using WireMock.Net.OpenApiParser.Mappers;
using WireMock.Net.OpenApiParser.Settings; using WireMock.Net.OpenApiParser.Settings;
using WireMock.Net.OpenApiParser.Types;
namespace WireMock.Net.OpenApiParser; namespace WireMock.Net.OpenApiParser;
@@ -17,13 +18,20 @@ namespace WireMock.Net.OpenApiParser;
/// </summary> /// </summary>
public class WireMockOpenApiParser : IWireMockOpenApiParser public class WireMockOpenApiParser : IWireMockOpenApiParser
{ {
private readonly WireMockOpenApiParserSettings _wireMockOpenApiParserSettings = new WireMockOpenApiParserSettings
{
HeaderPatternToUse = ExampleValueType.Regex,
QueryParameterPatternToUse = ExampleValueType.Regex,
PathPatternToUse = ExampleValueType.Regex
};
private readonly OpenApiStreamReader _reader = new(); private readonly OpenApiStreamReader _reader = new();
/// <inheritdoc /> /// <inheritdoc />
[PublicAPI] [PublicAPI]
public IReadOnlyList<MappingModel> FromFile(string path, out OpenApiDiagnostic diagnostic) public IReadOnlyList<MappingModel> FromFile(string path, out OpenApiDiagnostic diagnostic)
{ {
return FromFile(path, new WireMockOpenApiParserSettings(), out diagnostic); return FromFile(path, _wireMockOpenApiParserSettings, out diagnostic);
} }
/// <inheritdoc /> /// <inheritdoc />
@@ -49,7 +57,7 @@ public class WireMockOpenApiParser : IWireMockOpenApiParser
[PublicAPI] [PublicAPI]
public IReadOnlyList<MappingModel> FromDocument(OpenApiDocument openApiDocument, WireMockOpenApiParserSettings? settings = null) public IReadOnlyList<MappingModel> FromDocument(OpenApiDocument openApiDocument, WireMockOpenApiParserSettings? settings = null)
{ {
return new OpenApiPathsMapper(settings ?? new WireMockOpenApiParserSettings()).ToMappingModels(openApiDocument.Paths, openApiDocument.Servers); return new OpenApiPathsMapper(settings ?? _wireMockOpenApiParserSettings).ToMappingModels(openApiDocument.Paths, openApiDocument.Servers);
} }
/// <inheritdoc /> /// <inheritdoc />