package com.eas.client.reports; import com.eas.client.scripts.ScriptedResource; import com.eas.script.Scripts; import java.nio.file.Path; import jdk.nashorn.api.scripting.JSObject; import net.sf.jxls.transformer.XLSTransformer; import static org.junit.Assert.*; import org.junit.BeforeClass; import org.junit.Test; /** * * @author Andrew */ public class ExelTemplateTest { @BeforeClass public static void init() throws Exception { Path platypusJsPath = ScriptedResource.lookupPlatypusJs(); Scripts.init(platypusJsPath, false); Scripts.setOnlySpace(Scripts.createSpace()); Scripts.getSpace().initSpaceGlobal(); } /** * Test of generateDataNamedMap method, of class ExelTemplate. * * @throws java.lang.Exception */ @Test public void testGenerateDataNamedMap() throws Exception { System.out.println("GenerateDataNamedMap jsObject"); JSObject data = (JSObject) Scripts.getSpace().exec("({name : 'test', count : 5, time : new Date(1402470671000), elems : [1, 'Hi', true, {text:'Hello!'}, new Date(1403461342000)]})"); ExelTemplate template = new ExelTemplate(data, "xlsx", new ReportTemplate(null, null, null, data)); XLSTransformer transformer = new XLSTransformer(); transformer.registerRowProcessor(new ExcelRowProcessor()); template.generateDataNamedMap(transformer); assertEquals(template.generated.size(), 4); assertEquals(template.generated.get("count"), 5); assertEquals(template.generated.get("name"), "test"); double expectedNamedTimestamp = 1402470671000d / 86400000d + 25569; Object doubledDate = template.generated.get("time"); assertTrue(doubledDate instanceof Double); double generatedNamedTimestamp = (Double) doubledDate; assertTrue(Math.abs(expectedNamedTimestamp - generatedNamedTimestamp) < 1e-10d); JSDynaList list = (JSDynaList) template.generated.get("elems"); assertEquals(list.get(0), 1); assertEquals(list.get(1), "Hi"); assertEquals(list.get(2), Boolean.TRUE); assertEquals(((JSDynaBean) list.get(3)).get("text"), "Hello!"); double expectedIndexedTimestamp = 1403461342000d / 86400000d + 25569; double generatedIndexedTimestamp = (Double) list.get(4); assertTrue(Math.abs(expectedIndexedTimestamp - generatedIndexedTimestamp) < 1e-10); } }