mirror of https://github.com/apache/poi.git
Sonar fixes
add asserts to tests git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1885954 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
5cb3cb0384
commit
1d26df99ee
|
@ -24,10 +24,13 @@ import static org.junit.jupiter.api.Assertions.assertNull;
|
|||
import static org.junit.jupiter.api.Assertions.assertSame;
|
||||
import static org.junit.jupiter.api.Assertions.assertThrows;
|
||||
import static org.junit.jupiter.api.Assertions.assertTrue;
|
||||
import static org.junit.jupiter.api.Assertions.fail;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.Objects;
|
||||
import java.util.Spliterator;
|
||||
import java.util.TreeMap;
|
||||
import java.util.stream.IntStream;
|
||||
import java.util.stream.StreamSupport;
|
||||
|
||||
import org.apache.poi.ss.usermodel.Cell;
|
||||
import org.apache.poi.ss.usermodel.Row;
|
||||
|
@ -446,31 +449,16 @@ public final class TestXSSFRichTextString {
|
|||
@Test
|
||||
void testBug56511() throws IOException {
|
||||
try (XSSFWorkbook wb = XSSFTestDataSamples.openSampleWorkbook("56511.xlsx")) {
|
||||
for (Sheet sheet : wb) {
|
||||
int lastRow = sheet.getLastRowNum();
|
||||
for (int rowIdx = sheet.getFirstRowNum(); rowIdx <= lastRow; rowIdx++) {
|
||||
Row row = sheet.getRow(rowIdx);
|
||||
if (row != null) {
|
||||
int lastCell = row.getLastCellNum();
|
||||
|
||||
for (int cellIdx = row.getFirstCellNum(); cellIdx <= lastCell; cellIdx++) {
|
||||
|
||||
Cell cell = row.getCell(cellIdx);
|
||||
if (cell != null) {
|
||||
//System.out.println("row " + rowIdx + " column " + cellIdx + ": " + cell.getCellType() + ": " + cell.toString());
|
||||
|
||||
XSSFRichTextString richText = (XSSFRichTextString) cell.getRichStringCellValue();
|
||||
int anzFormattingRuns = richText.numFormattingRuns();
|
||||
for (int run = 0; run < anzFormattingRuns; run++) {
|
||||
/*XSSFFont font =*/ richText.getFontOfFormattingRun(run);
|
||||
//System.out.println(" run " + run
|
||||
// + " font " + (font == null ? "<null>" : font.getFontName()));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
int[] idx = { 0 };
|
||||
StreamSupport.stream(wb::spliterator, Spliterator.IMMUTABLE, false)
|
||||
.flatMap(sheet -> StreamSupport.stream(sheet::spliterator, Spliterator.IMMUTABLE, false))
|
||||
.filter(Objects::nonNull)
|
||||
.flatMap(row -> StreamSupport.stream(row::spliterator, Spliterator.IMMUTABLE, false))
|
||||
.filter(Objects::nonNull)
|
||||
.map(Cell::getRichStringCellValue)
|
||||
.map(XSSFRichTextString.class::cast)
|
||||
.flatMap(x -> IntStream.range(0, x.numFormattingRuns()).mapToObj(x::getFontOfFormattingRun))
|
||||
.forEach(f -> { if (idx[0]++ == 2) { assertNull(f); } else { assertNotNull(f); }} );
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -1274,7 +1274,9 @@ public final class TestXSSFSheet extends BaseTestXSheet {
|
|||
@Timeout(value = 180, unit = SECONDS)
|
||||
@Test
|
||||
void bug51585() throws IOException {
|
||||
XSSFTestDataSamples.openSampleWorkbook("51585.xlsx").close();
|
||||
try (XSSFWorkbook wb = XSSFTestDataSamples.openSampleWorkbook("51585.xlsx")) {
|
||||
assertNotNull(wb.getSheetAt(0));
|
||||
}
|
||||
}
|
||||
|
||||
private XSSFWorkbook setupSheet(){
|
||||
|
@ -1885,45 +1887,49 @@ public final class TestXSSFSheet extends BaseTestXSheet {
|
|||
*/
|
||||
@Test
|
||||
void testInsertCommentsToClonedSheet() throws IOException {
|
||||
Workbook wb = XSSFTestDataSamples.openSampleWorkbook("52425.xlsx");
|
||||
CreationHelper helper = wb.getCreationHelper();
|
||||
Sheet sheet2 = wb.createSheet("Sheet 2");
|
||||
Sheet sheet3 = wb.cloneSheet(0);
|
||||
wb.setSheetName(2, "Sheet 3");
|
||||
try (Workbook wb = XSSFTestDataSamples.openSampleWorkbook("52425.xlsx")) {
|
||||
CreationHelper helper = wb.getCreationHelper();
|
||||
Sheet sheet2 = wb.createSheet("Sheet 2");
|
||||
Sheet sheet3 = wb.cloneSheet(0);
|
||||
wb.setSheetName(2, "Sheet 3");
|
||||
|
||||
// Adding Comment to new created Sheet 2
|
||||
addComments(helper, sheet2);
|
||||
// Adding Comment to cloned Sheet 3
|
||||
addComments(helper, sheet3);
|
||||
Sheet[] sheets = { sheet2, sheet3 };
|
||||
|
||||
wb.close();
|
||||
}
|
||||
for (Sheet sheet : sheets) {
|
||||
Drawing<?> drawing = sheet.createDrawingPatriarch();
|
||||
|
||||
private void addComments(CreationHelper helper, Sheet sheet) {
|
||||
Drawing<?> drawing = sheet.createDrawingPatriarch();
|
||||
for (int i = 0; i < 2; i++) {
|
||||
ClientAnchor anchor = helper.createClientAnchor();
|
||||
anchor.setCol1(0);
|
||||
anchor.setRow1(i);
|
||||
anchor.setCol2(2);
|
||||
anchor.setRow2(3 + i);
|
||||
|
||||
for (int i = 0; i < 2; i++) {
|
||||
ClientAnchor anchor = helper.createClientAnchor();
|
||||
anchor.setCol1(0);
|
||||
anchor.setRow1(i);
|
||||
anchor.setCol2(2);
|
||||
anchor.setRow2(3 + i);
|
||||
Comment comment = drawing.createCellComment(anchor);
|
||||
comment.setString(helper.createRichTextString("BugTesting"));
|
||||
|
||||
Comment comment = drawing.createCellComment(anchor);
|
||||
comment.setString(helper.createRichTextString("BugTesting"));
|
||||
Row row = sheet.getRow(i);
|
||||
if (row == null) {
|
||||
row = sheet.createRow(i);
|
||||
}
|
||||
Cell cell = row.getCell(0);
|
||||
if (cell == null) {
|
||||
cell = row.createCell(0);
|
||||
}
|
||||
|
||||
Row row = sheet.getRow(i);
|
||||
if (row == null) {
|
||||
row = sheet.createRow(i);
|
||||
}
|
||||
Cell cell = row.getCell(0);
|
||||
if (cell == null) {
|
||||
cell = row.createCell(0);
|
||||
cell.setCellComment(comment);
|
||||
}
|
||||
}
|
||||
|
||||
cell.setCellComment(comment);
|
||||
}
|
||||
|
||||
for (Sheet sheet : sheets) {
|
||||
for (int i = 0; i < 2; i++) {
|
||||
CellAddress ref = new CellAddress(i, 0);
|
||||
Comment c = sheet.getCellComment(ref);
|
||||
assertNotNull(c);
|
||||
assertEquals("BugTesting", c.getString().getString());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// bug 59687: XSSFSheet.RemoveRow doesn't handle row gaps properly when removing row comments
|
||||
|
|
|
@ -17,18 +17,27 @@
|
|||
|
||||
package org.apache.poi.xssf.usermodel;
|
||||
|
||||
import org.apache.poi.ss.usermodel.*;
|
||||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||
import static org.junit.jupiter.api.Assertions.assertNotNull;
|
||||
import static org.junit.jupiter.api.Assertions.assertNull;
|
||||
import static org.junit.jupiter.api.Assertions.assertThrows;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.stream.IntStream;
|
||||
|
||||
import org.apache.poi.ss.usermodel.BaseTestSheetShiftRows;
|
||||
import org.apache.poi.ss.usermodel.Cell;
|
||||
import org.apache.poi.ss.usermodel.CellType;
|
||||
import org.apache.poi.ss.usermodel.Comment;
|
||||
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.ss.util.CellAddress;
|
||||
import org.apache.poi.ss.util.CellUtil;
|
||||
import org.apache.poi.util.IOUtils;
|
||||
import org.apache.poi.xssf.XSSFITestDataProvider;
|
||||
import org.apache.poi.xssf.XSSFTestDataSamples;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import java.io.IOException;
|
||||
|
||||
import static org.junit.jupiter.api.Assertions.*;
|
||||
|
||||
public final class TestXSSFSheetShiftRows extends BaseTestSheetShiftRows {
|
||||
|
||||
public TestXSSFSheetShiftRows(){
|
||||
|
@ -390,61 +399,71 @@ public final class TestXSSFSheetShiftRows extends BaseTestSheetShiftRows {
|
|||
// bug 59983: Wrong update of shared formulas after shiftRow
|
||||
@Test
|
||||
void testSharedFormulas() throws Exception {
|
||||
XSSFWorkbook wb = XSSFTestDataSamples.openSampleWorkbook("TestShiftRowSharedFormula.xlsx");
|
||||
XSSFSheet sheet = wb.getSheetAt(0);
|
||||
assertEquals("SUM(C2:C4)", getCellFormula(sheet, "C5"));
|
||||
assertEquals("SUM(D2:D4)", getCellFormula(sheet, "D5"));
|
||||
assertEquals("SUM(E2:E4)", getCellFormula(sheet, "E5"));
|
||||
try (XSSFWorkbook wb = XSSFTestDataSamples.openSampleWorkbook("TestShiftRowSharedFormula.xlsx")) {
|
||||
XSSFSheet sheet = wb.getSheetAt(0);
|
||||
assertEquals("SUM(C2:C4)", getCellFormula(sheet, "C5"));
|
||||
assertEquals("SUM(D2:D4)", getCellFormula(sheet, "D5"));
|
||||
assertEquals("SUM(E2:E4)", getCellFormula(sheet, "E5"));
|
||||
|
||||
assertEquals("SUM(C3:C5)", getCellFormula(sheet, "C6"));
|
||||
assertEquals("SUM(D3:D5)", getCellFormula(sheet, "D6"));
|
||||
assertEquals("SUM(E3:E5)", getCellFormula(sheet, "E6"));
|
||||
assertEquals("SUM(C3:C5)", getCellFormula(sheet, "C6"));
|
||||
assertEquals("SUM(D3:D5)", getCellFormula(sheet, "D6"));
|
||||
assertEquals("SUM(E3:E5)", getCellFormula(sheet, "E6"));
|
||||
|
||||
sheet.shiftRows(3, sheet.getLastRowNum(), 1);
|
||||
sheet.shiftRows(3, sheet.getLastRowNum(), 1);
|
||||
|
||||
assertEquals("SUM(C2:C5)", getCellFormula(sheet, "C6"));
|
||||
assertEquals("SUM(D2:D5)", getCellFormula(sheet, "D6"));
|
||||
assertEquals("SUM(E2:E5)", getCellFormula(sheet, "E6"));
|
||||
assertEquals("SUM(C2:C5)", getCellFormula(sheet, "C6"));
|
||||
assertEquals("SUM(D2:D5)", getCellFormula(sheet, "D6"));
|
||||
assertEquals("SUM(E2:E5)", getCellFormula(sheet, "E6"));
|
||||
|
||||
assertEquals("SUM(C3:C6)", getCellFormula(sheet, "C7"));
|
||||
assertEquals("SUM(D3:D6)", getCellFormula(sheet, "D7"));
|
||||
assertEquals("SUM(E3:E6)", getCellFormula(sheet, "E7"));
|
||||
wb.close();
|
||||
assertEquals("SUM(C3:C6)", getCellFormula(sheet, "C7"));
|
||||
assertEquals("SUM(D3:D6)", getCellFormula(sheet, "D7"));
|
||||
assertEquals("SUM(E3:E6)", getCellFormula(sheet, "E7"));
|
||||
}
|
||||
}
|
||||
|
||||
// bug 59983: Wrong update of shared formulas after shiftRow
|
||||
@Test
|
||||
void testShiftSharedFormulas() throws Exception {
|
||||
XSSFWorkbook wb = XSSFTestDataSamples.openSampleWorkbook("TestShiftRowSharedFormula.xlsx");
|
||||
XSSFSheet sheet = wb.getSheetAt(0);
|
||||
assertEquals("SUM(C2:C4)", getCellFormula(sheet, "C5"));
|
||||
assertEquals("SUM(D2:D4)", getCellFormula(sheet, "D5"));
|
||||
assertEquals("SUM(E2:E4)", getCellFormula(sheet, "E5"));
|
||||
try (XSSFWorkbook wb = XSSFTestDataSamples.openSampleWorkbook("TestShiftRowSharedFormula.xlsx")) {
|
||||
XSSFSheet sheet = wb.getSheetAt(0);
|
||||
assertEquals("SUM(C2:C4)", getCellFormula(sheet, "C5"));
|
||||
assertEquals("SUM(D2:D4)", getCellFormula(sheet, "D5"));
|
||||
assertEquals("SUM(E2:E4)", getCellFormula(sheet, "E5"));
|
||||
|
||||
assertEquals("SUM(C3:C5)", getCellFormula(sheet, "C6"));
|
||||
assertEquals("SUM(D3:D5)", getCellFormula(sheet, "D6"));
|
||||
assertEquals("SUM(E3:E5)", getCellFormula(sheet, "E6"));
|
||||
assertEquals("SUM(C3:C5)", getCellFormula(sheet, "C6"));
|
||||
assertEquals("SUM(D3:D5)", getCellFormula(sheet, "D6"));
|
||||
assertEquals("SUM(E3:E5)", getCellFormula(sheet, "E6"));
|
||||
|
||||
sheet.shiftRows(sheet.getFirstRowNum(), 4, -1);
|
||||
sheet.shiftRows(sheet.getFirstRowNum(), 4, -1);
|
||||
|
||||
assertEquals("SUM(C1:C3)", getCellFormula(sheet, "C4"));
|
||||
assertEquals("SUM(D1:D3)", getCellFormula(sheet, "D4"));
|
||||
assertEquals("SUM(E1:E3)", getCellFormula(sheet, "E4"));
|
||||
assertEquals("SUM(C1:C3)", getCellFormula(sheet, "C4"));
|
||||
assertEquals("SUM(D1:D3)", getCellFormula(sheet, "D4"));
|
||||
assertEquals("SUM(E1:E3)", getCellFormula(sheet, "E4"));
|
||||
|
||||
assertEquals("SUM(C2:C4)", getCellFormula(sheet, "C6"));
|
||||
assertEquals("SUM(D2:D4)", getCellFormula(sheet, "D6"));
|
||||
assertEquals("SUM(E2:E4)", getCellFormula(sheet, "E6"));
|
||||
wb.close();
|
||||
assertEquals("SUM(C2:C4)", getCellFormula(sheet, "C6"));
|
||||
assertEquals("SUM(D2:D4)", getCellFormula(sheet, "D6"));
|
||||
assertEquals("SUM(E2:E4)", getCellFormula(sheet, "E6"));
|
||||
}
|
||||
}
|
||||
|
||||
// bug 60260: shift rows or rename a sheet containing a named range
|
||||
// that refers to formula with a unicode (non-ASCII) sheet name formula
|
||||
@Test
|
||||
void shiftRowsWithUnicodeNamedRange() {
|
||||
XSSFWorkbook wb = XSSFTestDataSamples.openSampleWorkbook("unicodeSheetName.xlsx");
|
||||
XSSFSheet sheet = wb.getSheetAt(0);
|
||||
sheet.shiftRows(1, 2, 3);
|
||||
IOUtils.closeQuietly(wb);
|
||||
void shiftRowsWithUnicodeNamedRange() throws IOException {
|
||||
try (XSSFWorkbook wb = XSSFTestDataSamples.openSampleWorkbook("unicodeSheetName.xlsx")) {
|
||||
XSSFSheet sheet = wb.getSheetAt(0);
|
||||
sheet.shiftRows(1, 2, 3);
|
||||
|
||||
Integer[] exp = { 1, null, null, 4, 2, 3, 7, 8, 9 };
|
||||
IntStream.rangeClosed(0, 8).forEach(i -> {
|
||||
Row row = sheet.getRow(i);
|
||||
if (exp[i] == null) {
|
||||
assertNull(row);
|
||||
} else {
|
||||
assertEquals(exp[i], (int)row.getCell(0).getNumericCellValue());
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
|
|
|
@ -22,7 +22,6 @@ import static org.junit.jupiter.api.Assertions.assertFalse;
|
|||
import static org.junit.jupiter.api.Assertions.assertNotNull;
|
||||
import static org.junit.jupiter.api.Assertions.assertNull;
|
||||
import static org.junit.jupiter.api.Assertions.assertTrue;
|
||||
import static org.junit.jupiter.api.Assertions.fail;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.ArrayList;
|
||||
|
@ -57,22 +56,23 @@ public final class TestXWPFStyles {
|
|||
|
||||
@Test
|
||||
void testAddStylesToDocument() throws IOException {
|
||||
XWPFDocument docOut = new XWPFDocument();
|
||||
XWPFStyles styles = docOut.createStyles();
|
||||
try (XWPFDocument docOut = new XWPFDocument()) {
|
||||
XWPFStyles styles = docOut.createStyles();
|
||||
|
||||
String strStyleId = "headline1";
|
||||
CTStyle ctStyle = CTStyle.Factory.newInstance();
|
||||
String strStyleId = "headline1";
|
||||
CTStyle ctStyle = CTStyle.Factory.newInstance();
|
||||
|
||||
ctStyle.setStyleId(strStyleId);
|
||||
XWPFStyle s = new XWPFStyle(ctStyle);
|
||||
styles.addStyle(s);
|
||||
ctStyle.setStyleId(strStyleId);
|
||||
XWPFStyle s = new XWPFStyle(ctStyle);
|
||||
styles.addStyle(s);
|
||||
|
||||
assertTrue(styles.styleExist(strStyleId));
|
||||
assertTrue(styles.styleExist(strStyleId));
|
||||
|
||||
XWPFDocument docIn = XWPFTestDataSamples.writeOutAndReadBack(docOut);
|
||||
XWPFDocument docIn = XWPFTestDataSamples.writeOutAndReadBack(docOut);
|
||||
|
||||
styles = docIn.getStyles();
|
||||
assertTrue(styles.styleExist(strStyleId));
|
||||
styles = docIn.getStyles();
|
||||
assertTrue(styles.styleExist(strStyleId));
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -96,17 +96,18 @@ public final class TestXWPFStyles {
|
|||
* YK: tests below don't make much sense,
|
||||
* they exist only to copy xml beans to pi-ooxml-lite.jar
|
||||
*/
|
||||
@SuppressWarnings("resource")
|
||||
@Test
|
||||
void testLanguages() {
|
||||
XWPFDocument docOut = new XWPFDocument();
|
||||
XWPFStyles styles = docOut.createStyles();
|
||||
styles.setEastAsia("Chinese");
|
||||
void testLanguages() throws IOException {
|
||||
try (XWPFDocument docOut = new XWPFDocument()) {
|
||||
XWPFStyles styles = docOut.createStyles();
|
||||
styles.setEastAsia("Chinese");
|
||||
styles.setSpellingLanguage("English");
|
||||
|
||||
styles.setSpellingLanguage("English");
|
||||
CTFonts def = CTFonts.Factory.newInstance();
|
||||
styles.setDefaultFonts(def);
|
||||
|
||||
CTFonts def = CTFonts.Factory.newInstance();
|
||||
styles.setDefaultFonts(def);
|
||||
assertEquals(1, styles.getDefaultRunStyle().getRPr().sizeOfRFontsArray());
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
|
@ -130,22 +131,23 @@ public final class TestXWPFStyles {
|
|||
|
||||
@Test
|
||||
void testSetStyles_Bug57254() throws IOException {
|
||||
XWPFDocument docOut = new XWPFDocument();
|
||||
XWPFStyles styles = docOut.createStyles();
|
||||
try (XWPFDocument docOut = new XWPFDocument()) {
|
||||
XWPFStyles styles = docOut.createStyles();
|
||||
|
||||
CTStyles ctStyles = CTStyles.Factory.newInstance();
|
||||
String strStyleId = "headline1";
|
||||
CTStyle ctStyle = ctStyles.addNewStyle();
|
||||
CTStyles ctStyles = CTStyles.Factory.newInstance();
|
||||
String strStyleId = "headline1";
|
||||
CTStyle ctStyle = ctStyles.addNewStyle();
|
||||
|
||||
ctStyle.setStyleId(strStyleId);
|
||||
styles.setStyles(ctStyles);
|
||||
ctStyle.setStyleId(strStyleId);
|
||||
styles.setStyles(ctStyles);
|
||||
|
||||
assertTrue(styles.styleExist(strStyleId));
|
||||
assertTrue(styles.styleExist(strStyleId));
|
||||
|
||||
XWPFDocument docIn = XWPFTestDataSamples.writeOutAndReadBack(docOut);
|
||||
XWPFDocument docIn = XWPFTestDataSamples.writeOutAndReadBack(docOut);
|
||||
|
||||
styles = docIn.getStyles();
|
||||
assertTrue(styles.styleExist(strStyleId));
|
||||
styles = docIn.getStyles();
|
||||
assertTrue(styles.styleExist(strStyleId));
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
|
|
Loading…
Reference in New Issue