package org.eclipse.xtext.xdoc.tests;
import java.io.File;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.xtext.generator.JavaIoFileSystemAccess;
import org.eclipse.xtext.junit4.InjectWith;
import org.eclipse.xtext.xdoc.XdocInjectorProvider;
import org.eclipse.xtext.xdoc.generator.LatexGenerator;
import org.eclipse.xtext.xdoc.generator.config.Config;
import org.eclipse.xtext.xdoc.xdoc.Document;
import org.junit.Test;
import com.google.inject.Inject;
@InjectWith(XdocInjectorProvider.class)
public class LatexGeneratorTest extends AbstractXdocGeneratorTest {
@Inject
JavaIoFileSystemAccess fsa;
@Inject
LatexGenerator gen;
@Override
public void setUp() throws Exception {
super.setUp();
gen.getConfiguration().put(Config.release, false);
}
@Test
public void testSimpleDoc() throws Exception {
Document doc = initDoc("Simple Doc");
generate(doc);
}
@Override
public void testFullHirarchy() throws Exception {
Document doc = initDocFromFile("downToSection4Test", "downToSection4Test.xdoc");
generate(doc);
validate(EXPECTATION_DIR + "fullHirarchy.tex", RESULT_DIR + "foo.tex");
}
@Override
public void testGenCode() throws Exception {
Document doc = initDocFromFile("code", "codeTest.xdoc");
generate(doc);
validate(EXPECTATION_DIR + "codeTest.tex", RESULT_DIR + "Main.tex");
}
@Override
public void testGenCodeWithLanguage() throws Exception {
Document doc = initDocFromFile("codeWithLanguage", "codeWithLanguageTest.xdoc");
generate(doc);
validate(EXPECTATION_DIR + "codeWithLanguage.tex", RESULT_DIR + "Main.tex");
}
@Override
public void testARef() throws Exception {
Document doc = initDocFromFile("aRefTest", "aRefTest.xdoc");
generate(doc);
validate(EXPECTATION_DIR + "aRefTest.tex", RESULT_DIR + "aRefTest.tex");
}
@Override
public void testCodeRef() throws Exception {
Document doc = initDocFromFile("codeRef", "codeRef.xdoc");
generate(doc);
validate(EXPECTATION_DIR + "codeRef.tex", RESULT_DIR + "codeRef.tex");
}
@Override
public void testComment() throws Exception {
Document doc = initDocFromFile("commentTest", "commentTest.xdoc");
generate(doc);
validate(EXPECTATION_DIR + "commentTest.tex", RESULT_DIR + "commentTest.tex");
}
@Override
public void testImg() throws Exception {
Document doc = initDocFromFile("imgTest", "imgTest.xdoc");
generate(doc);
validate(EXPECTATION_DIR + "imgTest.tex", RESULT_DIR + "imgTest.tex");
}
@Override
public void testLink() throws Exception {
Document doc = initDocFromFile("linkTest", "linkTest.xdoc");
generate(doc);
validate(EXPECTATION_DIR + "linkTest.tex", RESULT_DIR + "linkTest.tex");
}
@Override
public void testRefText() throws Exception {
Document doc = initDocFromFile("namedRefAndTextTest", "namedRefAndTextTest.xdoc");
generate(doc);
validate(EXPECTATION_DIR + "namedRefAndTextTest.tex", RESULT_DIR + "namedRefAndTextTest.tex");
}
@Override
public void testNestedList() throws Exception {
Document doc = initDocFromFile("nestedListTest", "nestedListTest.xdoc");
generate(doc);
validate(EXPECTATION_DIR + "nestedListTest.tex", RESULT_DIR + "nestedListTest.tex");
}
@Override
public void testSimpleRef() throws Exception {
Document doc = initDocFromFile("simpleRefTest", "simpleRefTest.xdoc");
generate(doc);
validate(EXPECTATION_DIR + "simpleRefTest.tex", RESULT_DIR + "simpleRefTest.tex");
}
@Override
public void testEscape() throws Exception {
Document doc = initDocFromFile("testEscape", "testEscape.xdoc");
generate(doc);
validate(EXPECTATION_DIR + "testEscape.tex", RESULT_DIR + "testEscape.tex");
}
@Override
public void testTable() throws Exception {
Document doc = initDocFromFile("table", "table.xdoc");
generate(doc);
validate(EXPECTATION_DIR + "table.tex", RESULT_DIR + "table.tex");
}
@Override
public void testTwoChapters() throws Exception {
Document doc = initDocFromFile("twoChapters", "twoChapters.xdoc");
generate(doc);
validate(EXPECTATION_DIR + "twoChapters.tex", RESULT_DIR + "Foo Title.tex");
}
@Override
protected void generate(EObject eObject) {
generate(eObject, "false");
}
private void generate(EObject obj, String release) {
fsa.setOutputPath(System.getProperty("user.dir") + File.separatorChar + "test-gen");
gen.doGenerate(obj, fsa);
// Map<String, Variable> vars = getXpandCtx().getGlobalVariables();
// Variable var = new Variable("release", release);
// vars.put("release", var);
// XpandFacade.create(getXpandCtx()).evaluate(
// "templates::Template::main", obj);
}
}