package azkaban.fixture;
import java.io.StringWriter;
import org.apache.velocity.VelocityContext;
import org.apache.velocity.app.VelocityEngine;
/**
* Test utility to render a template and other helper methods.
*/
public class VelocityTemplateTestUtil {
private static final String TEMPLATE_BASE_DIR = "azkaban/webapp/servlet/velocity/";
/**
* Render a template and return the result
*
* @param templateName the template name only without the .vm extension
* @param context the context
* @return string
*/
public static String renderTemplate(final String templateName, final VelocityContext context) {
final StringWriter stringWriter = new StringWriter();
final VelocityEngine engine = new VelocityEngine();
engine.init("src/test/resources/velocity.properties");
engine.mergeTemplate(TEMPLATE_BASE_DIR + templateName + ".vm", "UTF-8", context, stringWriter);
return stringWriter.getBuffer().toString();
}
/**
* @param source the rendered template as a String
* @param target the String fragment within the template
* @return - boolean
*/
public static boolean ignoreCaseContains(final String source, final String target) {
final String sourceNoSpace = source.replaceAll("\\s+", "");
final String targetNoSpace = target.replaceAll("\\s+", "");
return sourceNoSpace.contains(targetNoSpace);
}
}