|
|
@@ -48,15 +48,15 @@ public class TestExcelAntWorkbookUtil extends TestCase { |
|
|
|
} |
|
|
|
|
|
|
|
public void testStringConstructor() { |
|
|
|
fixture = new ExcelAntWorkbookUtilTestHelper( |
|
|
|
mortgageCalculatorFileName ) ; |
|
|
|
fixture = new ExcelAntWorkbookUtilTestHelper( |
|
|
|
mortgageCalculatorFileName); |
|
|
|
|
|
|
|
assertNotNull( fixture ) ; |
|
|
|
assertNotNull(fixture); |
|
|
|
} |
|
|
|
|
|
|
|
public void testLoadNotExistingFile() { |
|
|
|
try { |
|
|
|
assertNotNull(new ExcelAntWorkbookUtilTestHelper( |
|
|
|
assertNotNull(new ExcelAntWorkbookUtilTestHelper( |
|
|
|
"notexistingFile" )); |
|
|
|
fail("Should catch exception here"); |
|
|
|
} catch (BuildException e) { |
|
|
@@ -69,152 +69,287 @@ public class TestExcelAntWorkbookUtil extends TestCase { |
|
|
|
FileInputStream fis = new FileInputStream(workbookFile); |
|
|
|
Workbook workbook = WorkbookFactory.create(fis); |
|
|
|
|
|
|
|
fixture = new ExcelAntWorkbookUtilTestHelper( workbook ) ; |
|
|
|
|
|
|
|
assertNotNull( fixture ) ; |
|
|
|
fixture = new ExcelAntWorkbookUtilTestHelper(workbook); |
|
|
|
|
|
|
|
assertNotNull(fixture); |
|
|
|
} |
|
|
|
|
|
|
|
public void testAddFunction() { |
|
|
|
fixture = new ExcelAntWorkbookUtilTestHelper( |
|
|
|
mortgageCalculatorFileName ) ; |
|
|
|
fixture = new ExcelAntWorkbookUtilTestHelper( |
|
|
|
mortgageCalculatorFileName); |
|
|
|
|
|
|
|
assertNotNull( fixture ) ; |
|
|
|
assertNotNull(fixture); |
|
|
|
|
|
|
|
fixture.addFunction("h2_ZFactor", new CalculateMortgageFunction() ) ; |
|
|
|
fixture.addFunction("h2_ZFactor", new CalculateMortgageFunction()); |
|
|
|
|
|
|
|
UDFFinder functions = fixture.getFunctions() ; |
|
|
|
UDFFinder functions = fixture.getFunctions(); |
|
|
|
|
|
|
|
assertNotNull( functions ) ; |
|
|
|
assertNotNull(functions); |
|
|
|
assertNotNull(functions.findFunction("h2_ZFactor")); |
|
|
|
} |
|
|
|
|
|
|
|
public void testAddFunctionClassName() throws Exception { |
|
|
|
fixture = new ExcelAntWorkbookUtilTestHelper( |
|
|
|
mortgageCalculatorFileName); |
|
|
|
|
|
|
|
assertNotNull(fixture); |
|
|
|
|
|
|
|
fixture.addFunction("h2_ZFactor", CalculateMortgageFunction.class.getName()); |
|
|
|
|
|
|
|
UDFFinder functions = fixture.getFunctions(); |
|
|
|
|
|
|
|
assertNotNull(functions); |
|
|
|
assertNotNull(functions.findFunction("h2_ZFactor")); |
|
|
|
} |
|
|
|
|
|
|
|
public void testAddFunctionInvalidClassName() throws Exception { |
|
|
|
fixture = new ExcelAntWorkbookUtilTestHelper( |
|
|
|
mortgageCalculatorFileName); |
|
|
|
|
|
|
|
assertNotNull(fixture); |
|
|
|
|
|
|
|
fixture.addFunction("h2_ZFactor", String.class.getName()); |
|
|
|
|
|
|
|
UDFFinder functions = fixture.getFunctions(); |
|
|
|
|
|
|
|
assertNotNull(functions); |
|
|
|
assertNull(functions.findFunction("h2_ZFactor")); |
|
|
|
} |
|
|
|
|
|
|
|
public void testGetWorkbook() { |
|
|
|
fixture = new ExcelAntWorkbookUtilTestHelper( |
|
|
|
mortgageCalculatorFileName ) ; |
|
|
|
fixture = new ExcelAntWorkbookUtilTestHelper( |
|
|
|
mortgageCalculatorFileName); |
|
|
|
|
|
|
|
assertNotNull( fixture ) ; |
|
|
|
assertNotNull(fixture); |
|
|
|
|
|
|
|
Workbook workbook = fixture.getWorkbook() ; |
|
|
|
Workbook workbook = fixture.getWorkbook(); |
|
|
|
|
|
|
|
assertNotNull( workbook ) ; |
|
|
|
assertNotNull(workbook); |
|
|
|
} |
|
|
|
|
|
|
|
public void testFileName() { |
|
|
|
fixture = new ExcelAntWorkbookUtilTestHelper( |
|
|
|
mortgageCalculatorFileName ) ; |
|
|
|
fixture = new ExcelAntWorkbookUtilTestHelper( |
|
|
|
mortgageCalculatorFileName); |
|
|
|
|
|
|
|
assertNotNull( fixture ) ; |
|
|
|
assertNotNull(fixture); |
|
|
|
|
|
|
|
String fileName = fixture.getFileName() ; |
|
|
|
String fileName = fixture.getFileName(); |
|
|
|
|
|
|
|
assertNotNull( fileName ) ; |
|
|
|
assertNotNull(fileName); |
|
|
|
|
|
|
|
assertEquals( mortgageCalculatorFileName, fileName ) ; |
|
|
|
assertEquals(mortgageCalculatorFileName, fileName); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
public void testGetEvaluator() { |
|
|
|
fixture = new ExcelAntWorkbookUtilTestHelper( |
|
|
|
mortgageCalculatorFileName ) ; |
|
|
|
|
|
|
|
FormulaEvaluator evaluator = fixture.getEvaluator( |
|
|
|
mortgageCalculatorFileName ) ; |
|
|
|
|
|
|
|
assertNotNull( evaluator ) ; |
|
|
|
fixture = new ExcelAntWorkbookUtilTestHelper( |
|
|
|
mortgageCalculatorFileName); |
|
|
|
|
|
|
|
FormulaEvaluator evaluator = fixture.getEvaluator( |
|
|
|
mortgageCalculatorFileName); |
|
|
|
|
|
|
|
assertNotNull(evaluator); |
|
|
|
} |
|
|
|
|
|
|
|
public void testGetEvaluatorWithUDF() { |
|
|
|
fixture = new ExcelAntWorkbookUtilTestHelper( |
|
|
|
mortgageCalculatorFileName); |
|
|
|
|
|
|
|
fixture.addFunction("h2_ZFactor", new CalculateMortgageFunction()); |
|
|
|
|
|
|
|
FormulaEvaluator evaluator = fixture.getEvaluator( |
|
|
|
mortgageCalculatorFileName); |
|
|
|
|
|
|
|
assertNotNull(evaluator); |
|
|
|
} |
|
|
|
|
|
|
|
public void testGetEvaluatorXLSX() { |
|
|
|
fixture = new ExcelAntWorkbookUtilTestHelper( |
|
|
|
BuildFileTest.getDataDir() + "/spreadsheet/sample.xlsx") ; |
|
|
|
fixture = new ExcelAntWorkbookUtilTestHelper( |
|
|
|
BuildFileTest.getDataDir() + "/spreadsheet/sample.xlsx"); |
|
|
|
|
|
|
|
FormulaEvaluator evaluator = fixture.getEvaluator( |
|
|
|
BuildFileTest.getDataDir() + "/spreadsheet/sample.xlsx" ) ; |
|
|
|
FormulaEvaluator evaluator = fixture.getEvaluator( |
|
|
|
BuildFileTest.getDataDir() + "/spreadsheet/sample.xlsx"); |
|
|
|
|
|
|
|
assertNotNull( evaluator ) ; |
|
|
|
assertNotNull(evaluator); |
|
|
|
} |
|
|
|
|
|
|
|
public void testGetEvaluatorXLSXWithFunction() { |
|
|
|
fixture = new ExcelAntWorkbookUtilTestHelper( |
|
|
|
BuildFileTest.getDataDir() + "/spreadsheet/sample.xlsx"); |
|
|
|
|
|
|
|
fixture.addFunction("h2_ZFactor", new CalculateMortgageFunction()); |
|
|
|
|
|
|
|
FormulaEvaluator evaluator = fixture.getEvaluator( |
|
|
|
BuildFileTest.getDataDir() + "/spreadsheet/sample.xlsx"); |
|
|
|
|
|
|
|
assertNotNull(evaluator); |
|
|
|
} |
|
|
|
|
|
|
|
public void testEvaluateCell() { |
|
|
|
String cell = "'MortgageCalculator'!B4" ; |
|
|
|
double expectedValue = 790.79 ; |
|
|
|
double precision = 0.1 ; |
|
|
|
|
|
|
|
fixture = new ExcelAntWorkbookUtilTestHelper( |
|
|
|
mortgageCalculatorFileName ) ; |
|
|
|
fixture = new ExcelAntWorkbookUtilTestHelper( |
|
|
|
mortgageCalculatorFileName); |
|
|
|
|
|
|
|
ExcelAntEvaluationResult result = fixture.evaluateCell( cell, |
|
|
|
ExcelAntEvaluationResult result = fixture.evaluateCell(cell, |
|
|
|
expectedValue, |
|
|
|
precision ) ; |
|
|
|
|
|
|
|
System.out.println( result ) ; |
|
|
|
|
|
|
|
assertTrue( result.didTestPass() ) ; |
|
|
|
precision); |
|
|
|
|
|
|
|
//System.out.println(result); |
|
|
|
assertTrue(result.toString().contains("evaluationCompletedWithError=false")); |
|
|
|
assertTrue(result.toString().contains("returnValue=790.79")); |
|
|
|
assertTrue(result.toString().contains("cellName='MortgageCalculator'!B4")); |
|
|
|
|
|
|
|
assertFalse(result.evaluationCompleteWithError()); |
|
|
|
assertTrue(result.didTestPass()); |
|
|
|
} |
|
|
|
|
|
|
|
public void testEvaluateCellFailedPrecision() { |
|
|
|
String cell = "'MortgageCalculator'!B4" ; |
|
|
|
double expectedValue = 790.79 ; |
|
|
|
double precision = 0.0000000000001 ; |
|
|
|
|
|
|
|
fixture = new ExcelAntWorkbookUtilTestHelper( |
|
|
|
mortgageCalculatorFileName); |
|
|
|
|
|
|
|
ExcelAntEvaluationResult result = fixture.evaluateCell(cell, |
|
|
|
expectedValue, |
|
|
|
precision); |
|
|
|
|
|
|
|
//System.out.println(result); |
|
|
|
assertTrue(result.toString().contains("evaluationCompletedWithError=false")); |
|
|
|
assertTrue(result.toString().contains("returnValue=790.79")); |
|
|
|
assertTrue(result.toString().contains("cellName='MortgageCalculator'!B4")); |
|
|
|
|
|
|
|
assertFalse(result.evaluationCompleteWithError()); |
|
|
|
assertFalse(result.didTestPass()); |
|
|
|
} |
|
|
|
|
|
|
|
public void testEvaluateCellWithError() { |
|
|
|
String cell = "'ErrorCell'!A1" ; |
|
|
|
double expectedValue = 790.79 ; |
|
|
|
double precision = 0.1 ; |
|
|
|
|
|
|
|
fixture = new ExcelAntWorkbookUtilTestHelper( |
|
|
|
mortgageCalculatorFileName); |
|
|
|
|
|
|
|
ExcelAntEvaluationResult result = fixture.evaluateCell(cell, |
|
|
|
expectedValue, |
|
|
|
precision); |
|
|
|
|
|
|
|
System.out.println(result); |
|
|
|
assertTrue(result.toString().contains("evaluationCompletedWithError=true")); |
|
|
|
assertTrue(result.toString().contains("returnValue=0.0")); |
|
|
|
assertTrue(result.toString().contains("cellName='ErrorCell'!A1")); |
|
|
|
|
|
|
|
assertTrue(result.evaluationCompleteWithError()); |
|
|
|
assertFalse(result.didTestPass()); |
|
|
|
} |
|
|
|
|
|
|
|
public void testGetSheets() { |
|
|
|
fixture = new ExcelAntWorkbookUtilTestHelper( |
|
|
|
mortgageCalculatorFileName ) ; |
|
|
|
fixture = new ExcelAntWorkbookUtilTestHelper( |
|
|
|
mortgageCalculatorFileName); |
|
|
|
|
|
|
|
ArrayList<String> sheets = fixture.getSheets() ; |
|
|
|
ArrayList<String> sheets = fixture.getSheets(); |
|
|
|
|
|
|
|
assertNotNull( sheets ) ; |
|
|
|
assertEquals( sheets.size(), 3 ) ; |
|
|
|
assertNotNull(sheets); |
|
|
|
assertEquals(sheets.size(), 3); |
|
|
|
} |
|
|
|
|
|
|
|
public void testSetString() { |
|
|
|
String cell = "'MortgageCalculator'!C14" ; |
|
|
|
String cellValue = "testString" ; |
|
|
|
|
|
|
|
fixture = new ExcelAntWorkbookUtilTestHelper( |
|
|
|
mortgageCalculatorFileName ) ; |
|
|
|
|
|
|
|
fixture.setStringValue( cell, cellValue ) ; |
|
|
|
|
|
|
|
String value = fixture.getCellAsString( cell ) ; |
|
|
|
fixture = new ExcelAntWorkbookUtilTestHelper( |
|
|
|
mortgageCalculatorFileName); |
|
|
|
|
|
|
|
assertNotNull( value ) ; |
|
|
|
fixture.setStringValue(cell, cellValue); |
|
|
|
|
|
|
|
assertEquals( cellValue, value ) ; |
|
|
|
String value = fixture.getCellAsString(cell); |
|
|
|
|
|
|
|
assertNotNull(value); |
|
|
|
assertEquals(cellValue, value); |
|
|
|
} |
|
|
|
|
|
|
|
public void testSetNotExistingSheet() { |
|
|
|
String cell = "'NotexistingSheet'!C14" ; |
|
|
|
|
|
|
|
fixture = new ExcelAntWorkbookUtilTestHelper( |
|
|
|
mortgageCalculatorFileName); |
|
|
|
try { |
|
|
|
fixture.setStringValue(cell, "some"); |
|
|
|
fail("Should catch exception here"); |
|
|
|
} catch (BuildException e) { |
|
|
|
assertTrue(e.getMessage().contains("NotexistingSheet")); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
public void testSetFormula() { |
|
|
|
String cell = "'MortgageCalculator'!C14" ; |
|
|
|
String cellValue = "SUM(B14:B18)" ; |
|
|
|
|
|
|
|
fixture = new ExcelAntWorkbookUtilTestHelper( |
|
|
|
mortgageCalculatorFileName); |
|
|
|
|
|
|
|
fixture.setFormulaValue(cell, cellValue); |
|
|
|
|
|
|
|
double value = fixture.getCellAsDouble(cell); |
|
|
|
|
|
|
|
assertNotNull(value); |
|
|
|
assertEquals(0.0, value); |
|
|
|
} |
|
|
|
|
|
|
|
public void testSetDoubleValue() { |
|
|
|
String cell = "'MortgageCalculator'!C14" ; |
|
|
|
double cellValue = 1.2; |
|
|
|
|
|
|
|
fixture = new ExcelAntWorkbookUtilTestHelper( |
|
|
|
mortgageCalculatorFileName); |
|
|
|
|
|
|
|
fixture.setDoubleValue(cell, cellValue); |
|
|
|
|
|
|
|
Double value = fixture.getCellAsDouble(cell); |
|
|
|
|
|
|
|
assertNotNull(value); |
|
|
|
assertEquals(cellValue, value); |
|
|
|
} |
|
|
|
|
|
|
|
public void testSetDate() { |
|
|
|
String cell = "'MortgageCalculator'!C14" ; |
|
|
|
Date cellValue = new Date(); |
|
|
|
|
|
|
|
fixture = new ExcelAntWorkbookUtilTestHelper( |
|
|
|
mortgageCalculatorFileName ) ; |
|
|
|
|
|
|
|
fixture.setDateValue( cell, cellValue ) ; |
|
|
|
|
|
|
|
double value = fixture.getCellAsDouble( cell ) ; |
|
|
|
fixture = new ExcelAntWorkbookUtilTestHelper( |
|
|
|
mortgageCalculatorFileName); |
|
|
|
|
|
|
|
assertNotNull( value ) ; |
|
|
|
fixture.setDateValue(cell, cellValue); |
|
|
|
|
|
|
|
assertEquals( DateUtil.getExcelDate(cellValue, false), value ) ; |
|
|
|
double value = fixture.getCellAsDouble(cell); |
|
|
|
|
|
|
|
assertNotNull(value); |
|
|
|
assertEquals(DateUtil.getExcelDate(cellValue, false), value); |
|
|
|
} |
|
|
|
|
|
|
|
public void testGetNonexistingString() { |
|
|
|
String cell = "'MortgageCalculator'!C33" ; |
|
|
|
|
|
|
|
fixture = new ExcelAntWorkbookUtilTestHelper( |
|
|
|
mortgageCalculatorFileName ) ; |
|
|
|
fixture = new ExcelAntWorkbookUtilTestHelper( |
|
|
|
mortgageCalculatorFileName); |
|
|
|
|
|
|
|
String value = fixture.getCellAsString( cell ) ; |
|
|
|
String value = fixture.getCellAsString(cell); |
|
|
|
|
|
|
|
assertEquals( "", value ) ; |
|
|
|
assertEquals("", value); |
|
|
|
} |
|
|
|
|
|
|
|
public void testGetNonexistingDouble() { |
|
|
|
String cell = "'MortgageCalculator'!C33" ; |
|
|
|
|
|
|
|
fixture = new ExcelAntWorkbookUtilTestHelper( |
|
|
|
mortgageCalculatorFileName ) ; |
|
|
|
fixture = new ExcelAntWorkbookUtilTestHelper( |
|
|
|
mortgageCalculatorFileName); |
|
|
|
|
|
|
|
double value = fixture.getCellAsDouble( cell ) ; |
|
|
|
double value = fixture.getCellAsDouble(cell); |
|
|
|
|
|
|
|
assertEquals( 0.0, value ) ; |
|
|
|
assertEquals(0.0, value); |
|
|
|
} |
|
|
|
} |