BAEL-3656 Change the integration test into unit test.

This commit is contained in:
Gang 2020-01-05 00:19:49 -07:00
parent 7de715c611
commit f484bcb498
3 changed files with 87 additions and 128 deletions

View File

@ -1,128 +0,0 @@
package com.baeldung.poi.excel;
import static org.junit.Assert.assertEquals;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.CellStyle;
import org.apache.poi.ss.usermodel.DataFormat;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
public class ExcelCellFormatterIntegrationTest {
private static int STRING_CELL_INDEX = 0;
private static int BOOLEAN_CELL_INDEX = 1;
private static int RAW_NUMERIC_CELL_INDEX = 2;
private static int FORMATTED_NUMERIC_CELL_INDEX = 3;
private static int FORMULA_CELL_INDEX = 4;
private String fileLocation;
@Before
public void generateExcelFile() throws IOException {
Workbook workbook = new XSSFWorkbook();
Sheet sheet = workbook.createSheet("Test");
Row row = sheet.createRow(0);
Cell cell = row.createCell(STRING_CELL_INDEX);
cell.setCellValue("String Test"); // STRING cell
cell = row.createCell(BOOLEAN_CELL_INDEX);
cell.setCellValue(true); // BOOLEAN cell
cell = row.createCell(RAW_NUMERIC_CELL_INDEX);
cell.setCellValue(1234.5678); // NUMERIC cell
cell = row.createCell(FORMATTED_NUMERIC_CELL_INDEX);
cell.setCellValue(1234.5678);
CellStyle curStyle = workbook.createCellStyle();
DataFormat df = workbook.createDataFormat();
curStyle.setDataFormat(df.getFormat("$#,##0.00"));
cell.setCellStyle(curStyle); // NUMERIC cell with format rule
cell = row.createCell(FORMULA_CELL_INDEX);
cell.setCellFormula("SUM(C1:D1)"); // FORMULA cell
File tempFile = File.createTempFile("ExcelCellFormatterIntegrationTest", ".xlsx");
fileLocation = tempFile.getAbsolutePath();
FileOutputStream outputStream = new FileOutputStream(fileLocation);
workbook.write(outputStream);
workbook.close();
outputStream.close();
}
@Test
public void gvieStringCell_whenGetCellStringValue_thenReturnStringValue() throws IOException {
Workbook workbook = new XSSFWorkbook(fileLocation);
Sheet sheet = workbook.getSheetAt(0);
Row row = sheet.getRow(0);
ExcelCellFormatter formatter = new ExcelCellFormatter();
assertEquals("String Test", formatter.getCellStringValue(row.getCell(STRING_CELL_INDEX)));
workbook.close();
}
@Test
public void gvieBooleanCell_whenGetCellStringValue_thenReturnBooleanStringValue() throws IOException {
Workbook workbook = new XSSFWorkbook(fileLocation);
Sheet sheet = workbook.getSheetAt(0);
Row row = sheet.getRow(0);
ExcelCellFormatter formatter = new ExcelCellFormatter();
assertEquals("TRUE", formatter.getCellStringValue(row.getCell(BOOLEAN_CELL_INDEX)));
workbook.close();
}
@Test
public void gvieNumericCell_whenGetCellStringValue_thenReturnNumericStringValue() throws IOException {
Workbook workbook = new XSSFWorkbook(fileLocation);
Sheet sheet = workbook.getSheetAt(0);
Row row = sheet.getRow(0);
ExcelCellFormatter formatter = new ExcelCellFormatter();
assertEquals("1234.5678", formatter.getCellStringValue(row.getCell(RAW_NUMERIC_CELL_INDEX)));
assertEquals("$1,234.57", formatter.getCellStringValue(row.getCell(FORMATTED_NUMERIC_CELL_INDEX)));
workbook.close();
}
@Test
public void gvieFormualCell_whenGetCellStringValue_thenReturnOriginalFormulaString() throws IOException {
Workbook workbook = new XSSFWorkbook(fileLocation);
Sheet sheet = workbook.getSheetAt(0);
Row row = sheet.getRow(0);
ExcelCellFormatter formatter = new ExcelCellFormatter();
assertEquals("SUM(C1:D1)", formatter.getCellStringValue(row.getCell(FORMULA_CELL_INDEX)));
workbook.close();
}
@Test
public void gvieFormualCell_whenGetCellStringValueForFormula_thenReturnOriginalFormulatring() throws IOException {
Workbook workbook = new XSSFWorkbook(fileLocation);
Sheet sheet = workbook.getSheetAt(0);
Row row = sheet.getRow(0);
ExcelCellFormatter formatter = new ExcelCellFormatter();
assertEquals("2469.1356", formatter.getCellStringValueWithFormula(row.getCell(FORMULA_CELL_INDEX), workbook));
workbook.close();
}
@After
public void cleanup() {
File testFile = new File(fileLocation);
if (testFile.exists()) {
testFile.deleteOnExit();
}
}
}

View File

@ -0,0 +1,87 @@
package com.baeldung.poi.excel;
import static org.junit.Assert.assertEquals;
import java.io.IOException;
import java.net.URISyntaxException;
import java.nio.file.Paths;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.junit.Before;
import org.junit.Test;
public class ExcelCellFormatterUnitTest {
private static final String FILE_NAME = "ExcelCellFormatterTest.xlsx";
private static final int STRING_CELL_INDEX = 0;
private static final int BOOLEAN_CELL_INDEX = 1;
private static final int RAW_NUMERIC_CELL_INDEX = 2;
private static final int FORMATTED_NUMERIC_CELL_INDEX = 3;
private static final int FORMULA_CELL_INDEX = 4;
private String fileLocation;
@Before
public void setup() throws IOException, URISyntaxException {
fileLocation = Paths.get(ClassLoader.getSystemResource(FILE_NAME).toURI()).toString();
}
@Test
public void gvieStringCell_whenGetCellStringValue_thenReturnStringValue() throws IOException {
Workbook workbook = new XSSFWorkbook(fileLocation);
Sheet sheet = workbook.getSheetAt(0);
Row row = sheet.getRow(0);
ExcelCellFormatter formatter = new ExcelCellFormatter();
assertEquals("String Test", formatter.getCellStringValue(row.getCell(STRING_CELL_INDEX)));
workbook.close();
}
@Test
public void gvieBooleanCell_whenGetCellStringValue_thenReturnBooleanStringValue() throws IOException {
Workbook workbook = new XSSFWorkbook(fileLocation);
Sheet sheet = workbook.getSheetAt(0);
Row row = sheet.getRow(0);
ExcelCellFormatter formatter = new ExcelCellFormatter();
assertEquals("TRUE", formatter.getCellStringValue(row.getCell(BOOLEAN_CELL_INDEX)));
workbook.close();
}
@Test
public void gvieNumericCell_whenGetCellStringValue_thenReturnNumericStringValue() throws IOException {
Workbook workbook = new XSSFWorkbook(fileLocation);
Sheet sheet = workbook.getSheetAt(0);
Row row = sheet.getRow(0);
ExcelCellFormatter formatter = new ExcelCellFormatter();
assertEquals("1.234", formatter.getCellStringValue(row.getCell(RAW_NUMERIC_CELL_INDEX)));
assertEquals("1.23", formatter.getCellStringValue(row.getCell(FORMATTED_NUMERIC_CELL_INDEX)));
workbook.close();
}
@Test
public void gvieFormualCell_whenGetCellStringValue_thenReturnOriginalFormulaString() throws IOException {
Workbook workbook = new XSSFWorkbook(fileLocation);
Sheet sheet = workbook.getSheetAt(0);
Row row = sheet.getRow(0);
ExcelCellFormatter formatter = new ExcelCellFormatter();
assertEquals("SUM(1+2)", formatter.getCellStringValue(row.getCell(FORMULA_CELL_INDEX)));
workbook.close();
}
@Test
public void gvieFormualCell_whenGetCellStringValueForFormula_thenReturnOriginalFormulatring() throws IOException {
Workbook workbook = new XSSFWorkbook(fileLocation);
Sheet sheet = workbook.getSheetAt(0);
Row row = sheet.getRow(0);
ExcelCellFormatter formatter = new ExcelCellFormatter();
assertEquals("3", formatter.getCellStringValueWithFormula(row.getCell(FORMULA_CELL_INDEX), workbook));
workbook.close();
}
}