Update Transformer functionality to return value instead of string (#858)

This commit is contained in:
Stef Heyenrath
2022-12-11 11:07:56 +01:00
committed by GitHub
parent 6b03dfaa8c
commit 9606fee8cb
25 changed files with 639 additions and 506 deletions

View File

@@ -1,33 +1,30 @@
using System;
using HandlebarsDotNet;
using Stef.Validation;
using WireMock.Handlers;
using WireMock.Settings;
namespace WireMock.Transformers.Handlebars;
internal class HandlebarsContextFactory : ITransformerContextFactory
{
private readonly IFileSystemHandler _fileSystemHandler;
private readonly Action<IHandlebars, IFileSystemHandler>? _action;
private readonly WireMockServerSettings _settings;
public HandlebarsContextFactory(IFileSystemHandler fileSystemHandler, Action<IHandlebars, IFileSystemHandler>? action)
public HandlebarsContextFactory(WireMockServerSettings settings)
{
_fileSystemHandler = Guard.NotNull(fileSystemHandler);
_action = action;
_settings = Guard.NotNull(settings);
}
public ITransformerContext Create()
{
var handlebars = HandlebarsDotNet.Handlebars.Create();
WireMockHandlebarsHelpers.Register(handlebars, _fileSystemHandler);
_action?.Invoke(handlebars, _fileSystemHandler);
return new HandlebarsContext
var config = new HandlebarsConfiguration
{
Handlebars = handlebars,
FileSystemHandler = _fileSystemHandler
FormatProvider = _settings.Culture
};
var handlebars = HandlebarsDotNet.Handlebars.Create(config);
WireMockHandlebarsHelpers.Register(handlebars, _settings.FileSystemHandler);
_settings.HandlebarsRegistrationCallback?.Invoke(handlebars, _settings.FileSystemHandler);
return new HandlebarsContext(handlebars, _settings.FileSystemHandler);
}
}