From da900382f83b7e6a1a4fcef3b37c939afee6a586 Mon Sep 17 00:00:00 2001 From: Kleeven81 Date: Tue, 10 Dec 2013 08:59:57 +0100 Subject: [PATCH] Added custom ITemplateModeHandler and IMessageResolver support Added support for custom template modes and custom message resolver by adding getters and setters to the TestExecutor to inject your own template mode and/or message resolver --- .../templateengine/engine/TestExecutor.java | 32 +++++++++++++++++-- 1 file changed, 30 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/thymeleaf/testing/templateengine/engine/TestExecutor.java b/src/main/java/org/thymeleaf/testing/templateengine/engine/TestExecutor.java index 1f42c336..2c240ccb 100755 --- a/src/main/java/org/thymeleaf/testing/templateengine/engine/TestExecutor.java +++ b/src/main/java/org/thymeleaf/testing/templateengine/engine/TestExecutor.java @@ -34,7 +34,9 @@ import org.thymeleaf.context.IProcessingContext; import org.thymeleaf.dialect.IDialect; import org.thymeleaf.fragment.IFragmentSpec; +import org.thymeleaf.messageresolver.IMessageResolver; import org.thymeleaf.standard.StandardDialect; +import org.thymeleaf.templatemode.ITemplateModeHandler; import org.thymeleaf.testing.templateengine.context.IProcessingContextBuilder; import org.thymeleaf.testing.templateengine.context.web.WebProcessingContextBuilder; import org.thymeleaf.testing.templateengine.engine.cache.TestCacheManager; @@ -62,6 +64,8 @@ public final class TestExecutor { private ITestableResolver testableResolver = new StandardTestableResolver(); private IProcessingContextBuilder processingContextBuilder = new WebProcessingContextBuilder(); private List dialects = Collections.singletonList((IDialect)new StandardDialect()); + private List templateModeHandlers = new ArrayList(); + private IMessageResolver messageResolver = null; protected ITestReporter reporter = new ConsoleTestReporter(); @@ -139,9 +143,26 @@ public void setDialects(final List dialects) { public List getDialects() { return this.dialects; } + + public void addTemplateModeHandler(final ITemplateModeHandler templateModeHandler) { + this.templateModeHandlers.add(templateModeHandler); + } + + public void setTemplateModeHandlers(final List templateModeHandlers) { + this.templateModeHandlers = templateModeHandlers; + } + public List getTemplateModeHandlers() { + return this.templateModeHandlers; + } + public void setMessageResolver(IMessageResolver messageResolver) { + this.messageResolver = messageResolver; + } + public IMessageResolver getMessageResolver() { + return this.messageResolver; + } @@ -193,14 +214,21 @@ private void execute(final ITestable testable, final TestExecutionContext contex Validate.notNull(context, "Test execution context cannot be null"); final TestEngineTemplateResolver templateResolver = new TestEngineTemplateResolver(); - final TestEngineMessageResolver messageResolver = new TestEngineMessageResolver(); + final TestEngineMessageResolver testMessageResolver = new TestEngineMessageResolver(); final TestCacheManager cacheManager = new TestCacheManager(); final TemplateEngine templateEngine = new TemplateEngine(); templateEngine.setTemplateResolver(templateResolver); - templateEngine.setMessageResolver(messageResolver); + if(this.messageResolver != null) { + templateEngine.setMessageResolver(this.messageResolver); + } else { + templateEngine.setMessageResolver(testMessageResolver); + } templateEngine.setDialects(new HashSet(this.dialects)); templateEngine.setCacheManager(cacheManager); + for(ITemplateModeHandler templateModeHandler: this.templateModeHandlers) { + templateEngine.addTemplateModeHandler(templateModeHandler); + } context.setTemplateEngine(templateEngine);