package org.krakenapps.docxcod.test;
import static org.junit.Assert.assertTrue;
import java.io.File;
import java.io.FileOutputStream;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import org.json.JSONObject;
import org.json.JSONTokener;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.krakenapps.docxcod.ChartDirectiveParser;
import org.krakenapps.docxcod.FreeMarkerRunner;
import org.krakenapps.docxcod.JsonHelper;
import org.krakenapps.docxcod.OOXMLPackage;
import org.krakenapps.docxcod.OOXMLProcessor;
import org.krakenapps.docxcod.MergeFieldParser;
public class UseCaseScenarios {
private TearDownHelper tearDownHelper = new TearDownHelper();
@Before
public void setUp() throws Exception {
}
@After
public void tearDown() throws Exception {
tearDownHelper.tearDown();
}
@Test
public void testScenario1() throws Exception {
File targetDir = new File("mainTest");
targetDir.mkdirs();
// tearDownHelper.add(targetDir);
OOXMLPackage docx = new OOXMLPackage();
docx.load(getClass().getResourceAsStream("/nestedList2.docx"), targetDir);
InputStreamReader inputReader = new InputStreamReader(getClass().getResourceAsStream("/nestedListTest.in"));
JSONTokener tokener = new JSONTokener(inputReader);
Map<String, Object> rootMap = JsonHelper.parse((JSONObject) tokener.nextValue());
List<OOXMLProcessor> processors = new ArrayList<OOXMLProcessor>();
processors.add(new MergeFieldParser());
processors.add(new ChartDirectiveParser());
processors.add(new FreeMarkerRunner(rootMap));
for (OOXMLProcessor processor : processors) {
processor.process(docx, rootMap);
}
File saveFile = new File("mainTest-save.docx");
docx.save(new FileOutputStream(saveFile));
//tearDownHelper.add(saveFile);
assertTrue(saveFile.exists());
}
}