| /* |
| * Licensed to the Apache Software Foundation (ASF) under one or more |
| * contributor license agreements. See the NOTICE file distributed with |
| * this work for additional information regarding copyright ownership. |
| * The ASF licenses this file to You 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 org.apache.poi.ss.excelant; |
| |
| |
| /** |
| * JUnit test for the ExcelAnt tasks. |
| * Leverages Ant's test framework. |
| * |
| * @see <a href="http://svn.apache.org/repos/asf/ant/core/trunk/src/tests/junit/org/apache/tools/ant/BuildFileTest.java"> |
| * http://svn.apache.org/repos/asf/ant/core/trunk/src/tests/junit/org/apache/tools/ant/BuildFileTest.java</a> |
| */ |
| public class TestBuildFile extends BuildFileTest { |
| |
| @Override |
| public void setUp() { |
| configureProject(BuildFileTest.getDataDir() + "/../src/excelant/testcases/org/apache/poi/ss/excelant/tests.xml"); |
| } |
| |
| public void testMissingFilename() { |
| expectSpecificBuildException("test-nofile", "required argument not specified", |
| "fileName attribute must be set!"); |
| } |
| |
| public void testFileNotFound() { |
| expectSpecificBuildException("test-filenotfound", "required argument not specified", |
| "Cannot load file invalid.xls. Make sure the path and file permissions are correct."); |
| } |
| |
| public void testEvaluate() { |
| executeTarget("test-evaluate"); |
| assertLogContaining("Using input file: " + BuildFileTest.getDataDir() + "/spreadsheet/excelant.xls"); |
| assertLogContaining("Succeeded when evaluating 'MortgageCalculator'!$B$4."); |
| } |
| |
| public void testEvaluateNoDetails() { |
| executeTarget("test-evaluate-nodetails"); |
| assertLogContaining("Using input file: " + BuildFileTest.getDataDir() + "/spreadsheet/excelant.xls"); |
| assertLogNotContaining("Succeeded when evaluating 'MortgageCalculator'!$B$4."); |
| } |
| |
| public void testPrecision() { |
| executeTarget("test-precision"); |
| |
| assertLogContaining("Using input file: " + BuildFileTest.getDataDir() + "/spreadsheet/excelant.xls"); |
| assertLogContaining("Succeeded when evaluating 'MortgageCalculator'!$B$4. " + |
| "It evaluated to 2285.5761494145563 when the value of 2285.576149 with precision of 1.0E-4"); |
| assertLogContaining("Succeeded when evaluating 'MortgageCalculator'!$B$4. " + |
| "It evaluated to 2285.5761494145563 when the value of 2285.576149 with precision of 1.0E-5"); |
| assertLogContaining("Failed to evaluate cell 'MortgageCalculator'!$B$4. " + |
| "It evaluated to 2285.5761494145563 when the value of 2285.576149 with precision of 1.0E-10 was expected."); |
| assertLogContaining("2/3 tests passed"); |
| } |
| |
| public void testPrecisionFail() { |
| expectSpecificBuildException("test-precision-fails", "precision not matched", |
| "\tFailed to evaluate cell 'MortgageCalculator'!$B$4. It evaluated to 2285.5761494145563 when the value of 2285.576149 with precision of 1.0E-10 was expected."); |
| } |
| |
| public void testPassOnError() { |
| executeTarget("test-passonerror"); |
| } |
| |
| public void testFailOnError() { |
| expectBuildException("test-failonerror", "fail on error"); |
| assertLogContaining("Using input file: " + BuildFileTest.getDataDir() + "/spreadsheet/excelant.xls"); |
| assertLogNotContaining("failed because 1 of 0 evaluations failed to evaluate correctly. Failed to evaluate cell 'MortageCalculatorFunction'!$D$3"); |
| } |
| |
| public void testFailOnErrorNoDetails() { |
| expectBuildException("test-failonerror-nodetails", "fail on error"); |
| assertLogNotContaining("Using input file: " + BuildFileTest.getDataDir() + "/spreadsheet/excelant.xls"); |
| assertLogNotContaining("failed because 1 of 0 evaluations failed to evaluate correctly. Failed to evaluate cell 'MortageCalculatorFunction'!$D$3"); |
| } |
| |
| public void testUdf() { |
| executeTarget("test-udf"); |
| assertLogContaining("1/1 tests passed"); |
| } |
| |
| public void testSetText() { |
| executeTarget("test-settext"); |
| assertLogContaining("1/1 tests passed"); |
| } |
| |
| public void testAddHandler() { |
| executeTarget("test-addhandler"); |
| assertLogContaining("Using input file: " + BuildFileTest.getDataDir() + "/spreadsheet/excelant.xls"); |
| assertLogContaining("Succeeded when evaluating 'MortgageCalculator'!$B$4."); |
| |
| assertNotNull("The workbook should have been passed to the handler", MockExcelAntWorkbookHandler.workbook); |
| assertTrue("The handler should have been executed", MockExcelAntWorkbookHandler.executed); |
| } |
| |
| public void testAddHandlerWrongClass() { |
| executeTarget("test-addhandler-wrongclass"); |
| assertLogContaining("Using input file: " + BuildFileTest.getDataDir() + "/spreadsheet/excelant.xls"); |
| assertLogContaining("Succeeded when evaluating 'MortgageCalculator'!$B$4."); |
| } |
| |
| public void testAddHandlerFails() { |
| expectSpecificBuildException("test-addhandler-fails", "NullPointException", null); |
| } |
| } |