package cn.org.rapid_framework.freemarker.loader;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
import javax.sql.DataSource;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import cn.org.rapid_framework.freemarker.FreemarkerTemplateProcessor;
import cn.org.rapid_framework.test.hsql.HSQLMemDataSourceUtils;
import freemarker.template.Configuration;
import freemarker.template.Template;
import freemarker.template.TemplateException;
public class DataSourceTemplateLoaderTest {
DataSourceTemplateLoader loader = new DataSourceTemplateLoader();
DataSource ds = null;
Map model = new HashMap();
Configuration conf = new Configuration();
@Before
public void setUp() throws Exception {
ds = HSQLMemDataSourceUtils.getDataSource(DataSourceTemplateLoaderTest.class,"UTF-8");
loader.setDataSource(ds);
loader.setTableName("template");
loader.setTemplateNameColumn("template_name");
loader.setTemplateContentColumn("template_content");
loader.setTimestampColumn("last_modified");
loader.afterPropertiesSet();
conf.setDefaultEncoding("UTF-8");
conf.setTemplateLoader(loader);
model.put("username", "qiu");
model.put("sex", "男");
}
@Test
public void test_get_template() throws Exception, TemplateException {
testProcessTemplate();
Thread.sleep(1000 * 5);
System.out.println("**************************");
testProcessTemplate();
}
private void testProcessTemplate() throws IOException {
Template t = conf.getTemplate("/test/template.ftl");
String out = FreemarkerTemplateProcessor.processTemplateIntoString(t, model);
System.out.println(out);
Assert.assertEquals("用户名: qiu 性别:男",out);
}
}