package org.org.eclipse.core.utils.platform.filegen;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.util.HashMap;
import java.util.Map;
import java.util.Properties;
import org.junit.Assert;
import org.junit.Test;
public class FileGeneratorTest {
@SuppressWarnings("unchecked")
@Test
public void testVelocityFileGenerator() throws Exception {
Map<String, String> parameters = new HashMap<String, String>();
parameters.put("person", "zepagé");
parameters.put("activity", "Bowling");
IFileGeneratorInput generatorInput = new VelocityFileGeneratorInput(parameters, "Hello $person,\n planned $activity lately?", "UTF-8");
IFileGenerator fileGenerator = new VelocityFileGenerator();
String result = fileGenerator.generate(generatorInput, "UTF-8");
Assert.assertFalse(result.trim().equals(""));
Assert.assertEquals("Hello zepagé,\n planned Bowling lately?", result);
Map<String, String> parameters2 = paramsFromProperties("filegen-velocity.properties");
IFileGeneratorInput generatorInput2 = new VelocityFileGeneratorInput(parameters2, streamFromFile("filegen-velocity.vm"));
IFileGenerator fileGenerator2 = new VelocityFileGenerator();
String result2 = fileGenerator2.generate(generatorInput2, "UTF-8");
Assert.assertFalse(result2.trim().equals(""));
Assert.assertEquals("Hello zepagé, planned Bowling lately?", result2);
}
private Map<String, String> paramsFromProperties(String string) throws FileNotFoundException, IOException {
Properties properties = new Properties();
properties.load(streamFromFile(string));
Map<String, String> map = new HashMap<String, String>();
for (Object key : properties.keySet()) {
map.put((String) key, (String) properties.get(key));
}
return map;
}
private InputStream streamFromFile(String string) throws FileNotFoundException {
return Thread.currentThread().getContextClassLoader().getResourceAsStream(string);
}
@SuppressWarnings("unchecked")
@Test
public void testFreemarkerFileGenerator() throws Exception {
Map<String, String> parameters = new HashMap<String, String>();
parameters.put("person", "zepagé");
parameters.put("activity", "Bowling");
IFileGeneratorInput generatorInput = new FreemarkerFileGeneratorInput(parameters, "Hello ${person},\n planned ${activity} lately?", "UTF-8");
IFileGenerator fileGenerator = new FreemarkerFileGenerator();
String result = fileGenerator.generate(generatorInput, "UTF-8");
Assert.assertFalse(result.trim().equals(""));
Assert.assertEquals("Hello zepagé,\n planned Bowling lately?", result);
Map<String, String> parameters2 = paramsFromProperties("filegen-freemarker.properties");
IFileGeneratorInput generatorInput2 = new FreemarkerFileGeneratorInput(parameters2, streamFromFile("filegen-freemarker.fm"));
IFileGenerator fileGenerator2 = new FreemarkerFileGenerator();
String result2 = fileGenerator2.generate(generatorInput2, "UTF-8");
Assert.assertFalse(result2.trim().equals(""));
Assert.assertEquals("Hello zepagé, planned Bowling lately?", result2);
}
}