package org.trimou.engine; import static org.junit.Assert.fail; import java.util.Locale; import java.util.Set; import org.junit.Test; import org.trimou.AbstractTest; import org.trimou.engine.config.Configuration; import org.trimou.engine.config.ConfigurationKey; import org.trimou.engine.config.EngineConfigurationKey; import org.trimou.engine.listener.AbstractMustacheListener; import org.trimou.engine.locale.LocaleSupport; import org.trimou.engine.locator.FileSystemTemplateLocator; import org.trimou.engine.resolver.i18n.DateTimeFormatResolver; import org.trimou.engine.text.TextSupport; /** * * @author Martin Kouba */ public class MustacheEngineBuilderTest extends AbstractTest { @Test public void testBuilderIsImmutable() { MustacheEngineBuilder builder = MustacheEngineBuilder.newBuilder(); builder.build(); try { builder.addGlobalData("foo", 10); fail(); } catch (Exception e) { // Expected } try { builder.addMustacheListener(new AbstractMustacheListener() { }); fail(); } catch (Exception e) { // Expected } try { builder.addResolver(new DateTimeFormatResolver()); fail(); } catch (Exception e) { // Expected } try { builder.addTemplateLocator(new FileSystemTemplateLocator(11, "foo")); fail(); } catch (Exception e) { // Expected } try { builder.setLocaleSupport(new LocaleSupport() { @Override public void init(Configuration configuration) { } @Override public Set<ConfigurationKey> getConfigurationKeys() { return null; } @Override public Locale getCurrentLocale() { return null; } }); fail(); } catch (Exception e) { // Expected } try { builder.setTextSupport(new TextSupport() { @Override public void init(Configuration configuration) { } @Override public Set<ConfigurationKey> getConfigurationKeys() { return null; } @Override public String escapeHtml(String input) { return null; } }); fail(); } catch (Exception e) { // Expected } try { builder.omitServiceLoaderConfigurationExtensions(); fail(); } catch (Exception e) { // Expected } try { builder.setProperty("foo", "bar"); fail(); } catch (Exception e) { // Expected } try { builder.setProperty( EngineConfigurationKey.CACHE_SECTION_LITERAL_BLOCK, "bar"); fail(); } catch (Exception e) { // Expected } try { builder.registerCallback(engine -> { }); fail(); } catch (Exception e) { // Expected } } }