package org.docbag.template.transformer.xslt; import java.util.HashMap; import java.util.Map; import junit.framework.Assert; import org.docbag.Context; import org.docbag.DefaultContext; import org.docbag.chart.jfree.PieChart; import org.docbag.template.DocumentTemplateStream; import org.docbag.template.repo.ClasspathDocumentTemplateRepository; import org.jfree.data.general.DefaultPieDataset; import org.jfree.data.general.PieDataset; import org.junit.Test; /** * XSLTTemplateTransformerTest * * @author Jakub Torbicki */ public class XSLTTemplateTransformerTest { private static final ClasspathDocumentTemplateRepository repository = new ClasspathDocumentTemplateRepository(); private static final XSLTTemplateTransformer transformer = new XSLTTemplateTransformer(repository.findTemplate("xslt/xhtml2fo.xsl")); private static final String[] templates = {"templates/test-chart.html", "templates/test-table.html", "templates/test-template.html"}; @Test public void testTransformContext() throws Exception { Context context = getContext(); for (String template : templates) { DocumentTemplateStream templateStream = transformer.transform(repository.findTemplate(template), context); Assert.assertNotNull(templateStream); Assert.assertNotNull(templateStream.getName()); } } @Test(expected = NullPointerException.class) public void testNull() throws Exception { transformer.transform(null); } @Test public void testToString() throws Exception { Assert.assertNotNull(transformer.toString()); } private Context getContext() { Context documentContext = new DefaultContext(); Map<Comparable<String>, Double> exploded = new HashMap<Comparable<String>, Double>(); exploded.put("Mac", 0.3); documentContext.put("chart1", new PieChart.Builder(createPieDataSet()).exploded(exploded).title("Pie Chart").build()); documentContext.put("name", "Friend"); return documentContext; } private static PieDataset createPieDataSet() { DefaultPieDataset result = new DefaultPieDataset(); result.setValue("A", 30); result.setValue("B", 30); result.setValue("C", 40); return result; } }