/* * Copyright 2013-2015 Cenote GmbH. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package de.cenote.jasperstarter; import de.cenote.jasperstarter.types.DsType; import de.cenote.jasperstarter.types.OutputFormat; import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.FileReader; import java.io.InputStream; import java.util.ArrayList; import java.util.Arrays; import net.sf.jasperreports.engine.JRParameter; import static org.testng.Assert.*; import org.apache.poi.hssf.usermodel.HSSFCell; import org.apache.poi.hssf.usermodel.HSSFRow; import org.apache.poi.hssf.usermodel.HSSFSheet; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.testng.annotations.AfterClass; import org.testng.annotations.AfterMethod; import org.testng.annotations.BeforeClass; import org.testng.annotations.BeforeMethod; import org.testng.annotations.Test; /** * * @author Volker Voßkämper <vvo at cenote.de> */ public class ReportNGTest { public ReportNGTest() { } @BeforeClass public static void setUpClass() throws Exception { } @AfterClass public static void tearDownClass() throws Exception { } @BeforeMethod public void setUpMethod() throws Exception { } @AfterMethod public void tearDownMethod() throws Exception { } /** * Test of compileToFile method, of class Report. */ @Test public void testCompileToFile() throws Exception { System.out.println("compileToFile"); Config config = null; config = new Config(); //config.input = "target/test-classes/reports/report1.jrxml"; config.input = "target/test-classes/reports/csv.jrxml"; config.output = "target/test-classes/reports/compileToFile"; Report instance = new Report(config, new File(config.getInput())); instance.compileToFile(); assertEquals(((File) new File("target/test-classes/reports/compileToFile.jasper")).exists(), true); } /** * Test of compileToFile method, of class Report. * This report uses funktions with dependency to jasperreports-functions */ @Test public void testCompileToFileJasperreportsFunctions() throws Exception { System.out.println("compileToFileJasperreportsFunctions"); Config config = null; config = new Config(); config.input = "target/test-classes/reports/charactersetTestWithStudioBuiltinFunctions.jrxml"; config.output = "target/test-classes/reports/charactersetTestWithStudioBuiltinFunctions"; Report instance = new Report(config, new File(config.getInput())); instance.compileToFile(); assertEquals(((File) new File("target/test-classes/reports/charactersetTestWithStudioBuiltinFunctions.jasper")).exists(), true); } /** * Test of compileToFile method, of class Report. * This report uses funktions with dependency to jasperreports-functions */ @Test public void testCompileToFileJavaScript() throws Exception { System.out.println("compileToFileJavaScript"); Config config = null; config = new Config(); config.input = "target/test-classes/reports/charactersetTestWithJavaScript.jrxml"; config.output = "target/test-classes/reports/charactersetTestWithJavaScript"; Report instance = new Report(config, new File(config.getInput())); instance.compileToFile(); assertEquals(((File) new File("target/test-classes/reports/charactersetTestWithJavaScript.jasper")).exists(), true); } /** * Test of fill method, of class Report. * This report uses functions with dependency to Rhino */ @Test(dependsOnMethods = {"testCompileToFileJavaScript"}) public void testFillJavascript() throws Exception { System.out.println("fillJavascript"); Config config = null; config = new Config(); config.input = "target/test-classes/reports/charactersetTestWithJavaScript.jasper"; //config.dbType = DbType.none; config.dbType = DsType.none; config.outputFormats = new ArrayList<OutputFormat>(Arrays.asList(OutputFormat.jrprint)); Report instance = new Report(config, new File(config.getInput())); instance.fill(); assertEquals(((File) new File("target/test-classes/reports/charactersetTestWithJavaScript.jrprint")).exists(), true); } /** * Test of fill method, of class Report. * This report uses funktions with dependency to jasperreports-functions */ @Test(dependsOnMethods = {"testCompileToFileJasperreportsFunctions"}) public void testFillJasperreportsFunctions() throws Exception { System.out.println("fillJasperreportsFunctions"); Config config = null; config = new Config(); config.input = "target/test-classes/reports/charactersetTestWithStudioBuiltinFunctions.jasper"; //config.dbType = DbType.none; config.dbType = DsType.csv; config.dataFile = new File("target/test-classes/csvExampleHeaders.csv"); config.csvCharset = "utf8"; config.csvFieldDel = "|"; config.csvRecordDel = "\r\n"; config.csvFirstRow = true; config.outputFormats = new ArrayList<OutputFormat>(Arrays.asList(OutputFormat.jrprint)); Report instance = new Report(config, new File(config.getInput())); instance.fill(); assertEquals(((File) new File("target/test-classes/reports/charactersetTestWithStudioBuiltinFunctions.jrprint")).exists(), true); } /** * Test of compileToFile method, of class Report. * This report uses functions with dependency to jasperreports-functions */ @Test public void testCompileToFileJasperreportsFunctions2() throws Exception { System.out.println("compileToFileJasperreportsFunctions2"); Config config = null; config = new Config(); config.input = "target/test-classes/reports/Blank_A4_1.jrxml"; config.output = "target/test-classes/reports/Blank_A4_1"; Report instance = new Report(config, new File(config.getInput())); instance.compileToFile(); assertEquals(((File) new File("target/test-classes/reports/charactersetTestWithStudioBuiltinFunctions.jasper")).exists(), true); } /** * Test of fill method, of class Report. * This report uses functions with dependency to jasperreports-functions */ @Test(dependsOnMethods = {"testCompileToFileJasperreportsFunctions2"}) public void testFillJasperreportsFunctions2() throws Exception { System.out.println("fillJasperreportsFunctions2"); Config config = null; config = new Config(); config.input = "target/test-classes/reports/Blank_A4_1.jasper"; //config.dbType = DbType.none; config.dbType = DsType.none; config.outputFormats = new ArrayList<OutputFormat>(Arrays.asList(OutputFormat.jrprint)); Report instance = new Report(config, new File(config.getInput())); instance.fill(); assertEquals(((File) new File("target/test-classes/reports/Blank_A4_1.jrprint")).exists(), true); } /** * Test of fill method, of class Report. */ @Test(dependsOnMethods = {"testCompileToFile"}) public void testFill() throws Exception { System.out.println("fill"); Config config = null; config = new Config(); config.input = "target/test-classes/reports/compileToFile.jasper"; //config.dbType = DbType.none; config.dbType = DsType.csv; config.dataFile = new File("target/test-classes/csvExampleHeaders.csv"); config.csvCharset = "utf8"; config.csvFieldDel = "|"; config.csvRecordDel = "\r\n"; config.csvFirstRow = true; config.outputFormats = new ArrayList<OutputFormat>(Arrays.asList(OutputFormat.jrprint)); Report instance = new Report(config, new File(config.getInput())); instance.fill(); assertEquals(((File) new File("target/test-classes/reports/compileToFile.jrprint")).exists(), true); } /** * Test of fill method for metadata export, of class Report. */ @Test public void testFillMeta() throws Exception { System.out.println("fillMeta"); Config config = null; config = new Config(); config.input = "target/test-classes/reports/csvMeta.jrxml"; config.dbType = DsType.csv; config.dataFile = new File("target/test-classes/csvExampleHeaders.csv"); config.csvCharset = "utf8"; config.csvFieldDel = "|"; config.csvRecordDel = "\r\n"; config.csvFirstRow = true; config.outputFormats = new ArrayList<OutputFormat>(Arrays.asList(OutputFormat.jrprint)); Report instance = new Report(config, new File(config.getInput())); instance.fill(); assertEquals(((File) new File("target/test-classes/reports/csvMeta.jrprint")).exists(), true); } /** * Test of print method, of class Report. */ // @Test // public void testPrint() throws Exception { // System.out.println("print"); // Report instance = null; // instance.print(); // // TODO review the generated test code and remove the default call to fail. // fail("The test case is a prototype."); // } /** * Test of view method, of class Report. */ // @Test // public void testView() throws Exception { // System.out.println("view"); // Report instance = null; // instance.view(); // // TODO review the generated test code and remove the default call to fail. // fail("The test case is a prototype."); // } /** * Test of exportPdf method, of class Report. */ @Test(dependsOnMethods = {"testFill"}) public void testExportPdf() throws Exception { System.out.println("exportPdf"); Config config = null; config = new Config(); config.input = "target/test-classes/reports/compileToFile.jrprint"; Report instance = new Report(config, new File(config.getInput())); instance.exportPdf(); assertEquals(((File) new File("target/test-classes/reports/compileToFile.pdf")).exists(), true); } /** * Test of exportRtf method, of class Report. */ @Test(dependsOnMethods = {"testFill"}) public void testExportRtf() throws Exception { System.out.println("exportRtf"); Config config = null; config = new Config(); config.input = "target/test-classes/reports/compileToFile.jrprint"; Report instance = new Report(config, new File(config.getInput())); instance.exportRtf(); assertEquals(((File) new File("target/test-classes/reports/compileToFile.rtf")).exists(), true); } /** * Test of exportDocx method, of class Report. */ @Test(dependsOnMethods = {"testFill"}) public void testExportDocx() throws Exception { System.out.println("exportDocx"); Config config = null; config = new Config(); config.input = "target/test-classes/reports/compileToFile.jrprint"; Report instance = new Report(config, new File(config.getInput())); instance.exportDocx(); assertEquals(((File) new File("target/test-classes/reports/compileToFile.docx")).exists(), true); } /** * Test of exportOdt method, of class Report. */ @Test(dependsOnMethods = {"testFill"}) public void testExportOdt() throws Exception { System.out.println("exportOdt"); Config config = null; config = new Config(); config.input = "target/test-classes/reports/compileToFile.jrprint"; Report instance = new Report(config, new File(config.getInput())); instance.exportOdt(); assertEquals(((File) new File("target/test-classes/reports/compileToFile.odt")).exists(), true); } /** * Test of exportHtml method, of class Report. */ @Test(dependsOnMethods = {"testFill"}) public void testExportHtml() throws Exception { System.out.println("exportHtml"); Config config = null; config = new Config(); config.input = "target/test-classes/reports/compileToFile.jrprint"; Report instance = new Report(config, new File(config.getInput())); instance.exportHtml(); assertEquals(((File) new File("target/test-classes/reports/compileToFile.html")).exists(), true); } /** * Test of exportXml method, of class Report. */ @Test(dependsOnMethods = {"testFill"}) public void testExportXml() throws Exception { System.out.println("exportXml"); Config config = null; config = new Config(); config.input = "target/test-classes/reports/compileToFile.jrprint"; Report instance = new Report(config, new File(config.getInput())); instance.exportXml(); assertEquals(((File) new File("target/test-classes/reports/compileToFile.xml")).exists(), true); } /** * Test of exportXls method, of class Report. */ @Test(dependsOnMethods = {"testFill"}) public void testExportXls() throws Exception { System.out.println("exportXls"); Config config = null; config = new Config(); config.input = "target/test-classes/reports/compileToFile.jrprint"; Report instance = new Report(config, new File(config.getInput())); instance.exportXls(); assertEquals(((File) new File("target/test-classes/reports/compileToFile.xls")).exists(), true); // Read the content of a cell: InputStream inputStream = new FileInputStream("target/test-classes/reports/compileToFile.xls"); HSSFWorkbook wb = new HSSFWorkbook(inputStream); HSSFSheet sheet = wb.getSheetAt(0); // first sheet // select cell C12 HSSFRow row = sheet.getRow(11); HSSFCell cell = row.getCell(2); assertEquals(cell.getStringCellValue(), "Carl Grant"); } /** * Test of exportXlsMeta method, of class Report. */ @Test(dependsOnMethods = {"testFillMeta"}) public void testExportXlsMeta() throws Exception { System.out.println("exportXlsMeta"); Config config = null; config = new Config(); config.input = "target/test-classes/reports/csvMeta.jrprint"; Report instance = new Report(config, new File(config.getInput())); instance.exportXlsMeta(); assertEquals(((File) new File("target/test-classes/reports/csvMeta.xls")).exists(), true); // Read the content of a cell: InputStream inputStream = new FileInputStream("target/test-classes/reports/csvMeta.xls"); HSSFWorkbook wb = new HSSFWorkbook(inputStream); HSSFSheet sheet = wb.getSheetAt(0); // first sheet // select cell C12 HSSFRow row = sheet.getRow(11); HSSFCell cell = row.getCell(2); assertEquals(cell.getStringCellValue(), "Dampremy"); } /** * Test of exportXlsx method, of class Report. */ @Test(dependsOnMethods = {"testFill"}) public void testExportXlsx() throws Exception { System.out.println("exportXlsx"); Config config = null; config = new Config(); config.input = "target/test-classes/reports/compileToFile.jrprint"; Report instance = new Report(config, new File(config.getInput())); instance.exportXlsx(); assertEquals(((File) new File("target/test-classes/reports/compileToFile.xlsx")).exists(), true); } /** * Test of exportCsv method, of class Report. */ @Test(dependsOnMethods = {"testFill"}) public void testExportCsv() throws Exception { System.out.println("exportCsv"); Config config = null; config = new Config(); config.input = "target/test-classes/reports/compileToFile.jrprint"; config.outCharset = "utf-8"; Report instance = new Report(config, new File(config.getInput())); instance.exportCsv(); assertEquals(((File) new File("target/test-classes/reports/compileToFile.csv")).exists(), true); // now read the file - it could have 0 bytes if something goes wrong BufferedReader in = new BufferedReader(new FileReader( "target/test-classes/reports/compileToFile.csv")); // check the 3. line in.readLine(); in.readLine(); assertEquals(in.readLine(), ",Name,Street,,City,Phone,"); } /** * Test of exportCsvMeta method, of class Report. */ @Test(dependsOnMethods = {"testFillMeta"}) public void testExportCsvMeta() throws Exception { System.out.println("exportCsvMeta"); Config config = null; config = new Config(); config.input = "target/test-classes/reports/csvMeta.jrprint"; config.outCharset = "utf-8"; config.outFieldDel = "|"; Report instance = new Report(config, new File(config.getInput())); instance.exportCsvMeta(); assertEquals(((File) new File("target/test-classes/reports/csvMeta.csv")).exists(), true); // now read the file - it could have 0 bytes if something goes wrong BufferedReader in = new BufferedReader(new FileReader( "target/test-classes/reports/csvMeta.csv")); // check the 3. line in.readLine(); in.readLine(); assertEquals(in.readLine(), "Carl Grant|Ap #507-5431 Consectetuer, Avenue|Chippenham|1-472-350-4152"); } /** * Test of exportOds method, of class Report. */ @Test(dependsOnMethods = {"testFill"}) public void testExportOds() throws Exception { System.out.println("exportOds"); Config config = null; config = new Config(); config.input = "target/test-classes/reports/compileToFile.jrprint"; Report instance = new Report(config, new File(config.getInput())); instance.exportOds(); assertEquals(((File) new File("target/test-classes/reports/compileToFile.ods")).exists(), true); } /** * Test of exportPptx method, of class Report. */ @Test(dependsOnMethods = {"testFill"}) public void testExportPptx() throws Exception { System.out.println("exportPptx"); Config config = null; config = new Config(); config.input = "target/test-classes/reports/compileToFile.jrprint"; Report instance = new Report(config, new File(config.getInput())); instance.exportPptx(); assertEquals(((File) new File("target/test-classes/reports/compileToFile.pptx")).exists(), true); } /** * Test of exportXhtml method, of class Report. */ @Test(dependsOnMethods = {"testFill"}) public void testExportXhtml() throws Exception { System.out.println("exportXhtml"); Config config = null; config = new Config(); config.input = "target/test-classes/reports/compileToFile.jrprint"; Report instance = new Report(config, new File(config.getInput())); instance.exportXhtml(); assertEquals(((File) new File("target/test-classes/reports/compileToFile.x.html")).exists(), true); } /** * Test of setLookAndFeel method, of class Report. */ // @Test // public void testSetLookAndFeel() { // System.out.println("setLookAndFeel"); // Report.setLookAndFeel(); // // TODO review the generated test code and remove the default call to fail. // fail("The test case is a prototype."); // } /** * Test of getReportParameters method, of class Report. */ @Test public void testGetReportParameters() throws Exception { System.out.println("getReportParameters"); Config config = null; config = new Config(); config.input = "target/test-classes/reports/noDB-params.jrxml"; Report instance = new Report(config, new File(config.getInput())); JRParameter[] result = instance.getReportParameters(); // there are 20 system parameters and 4 user parameters // take the first user parameter assertEquals(result[20].getName(), "myString"); } /** * Test of fill method with xml datasource, of class Report. */ @Test public void testFillFromXmlDatasource() throws Exception { System.out.println("fill from xmldatasource"); Config config = null; config = new Config(); config.input = "target/test-classes/reports/CancelAck.jrxml"; //config.dbType = DbType.none; config.dbType = DsType.xml; config.dataFile = new File("target/test-classes/CancelAck.xml"); config.xmlXpath = "/CancelResponse/CancelResult/ID"; config.outputFormats = new ArrayList<OutputFormat>(Arrays.asList(OutputFormat.jrprint)); Report instance = new Report(config, new File(config.getInput())); instance.fill(); assertEquals(((File) new File("target/test-classes/reports/CancelAck.jrprint")).exists(), true); } /** * Test of fill method with json datasource, of class Report. */ @Test public void testFillFromJsonDatasource() throws Exception { System.out.println("fill from jsondatasource"); Config config = null; config = new Config(); config.input = "target/test-classes/reports/json.jrxml"; config.dbType = DsType.json; config.dataFile = new File("target/test-classes/contacts.json"); config.jsonQuery = "contacts.person"; config.outputFormats = new ArrayList<OutputFormat>(Arrays.asList(OutputFormat.jrprint)); Report instance = new Report(config, new File(config.getInput())); instance.fill(); assertEquals(((File) new File("target/test-classes/reports/json.jrprint")).exists(), true); } }