package com.github.jknack.handlebars; import static org.junit.Assert.assertEquals; import java.io.IOException; import org.junit.Test; public class TypeSafeTemplateDefaultMethodTest { private static class User { private final String name; User(final String name) { this.name = name; } public String getName() { return name; } } interface UserTemplate extends TypeSafeTemplate<User> { default String renderUpperCase(User user) throws IOException { return apply(user).toUpperCase(); } } @Test public void testDefaultMethod() throws Exception { User user = new User("Smitty"); UserTemplate template = new Handlebars() .compileInline("Hello {{name}}") .as(UserTemplate.class); String result = template.renderUpperCase(user); assertEquals("HELLO SMITTY", result); } }