| /* ==================================================================== |
| 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.xwpf.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 java.io.IOException; |
| import java.math.BigInteger; |
| import java.util.List; |
| |
| import org.apache.poi.xwpf.XWPFTestDataSamples; |
| import org.apache.poi.xwpf.usermodel.XWPFTable.XWPFBorderType; |
| import org.junit.jupiter.api.Test; |
| import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTP; |
| import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTR; |
| import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTRow; |
| import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTTbl; |
| import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTTblBorders; |
| import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTTblCellMar; |
| import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTTblGrid; |
| import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTTblGridCol; |
| import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTTc; |
| import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTText; |
| import org.openxmlformats.schemas.wordprocessingml.x2006.main.STBorder; |
| |
| |
| /** |
| * Tests for XWPF Tables |
| */ |
| class TestXWPFTable { |
| |
| @Test |
| void testConstructor() throws IOException { |
| try (XWPFDocument doc = new XWPFDocument()) { |
| CTTbl ctTable = CTTbl.Factory.newInstance(); |
| XWPFTable xtab = new XWPFTable(ctTable, doc); |
| assertNotNull(xtab); |
| assertEquals(1, ctTable.sizeOfTrArray()); |
| assertEquals(1, ctTable.getTrArray(0).sizeOfTcArray()); |
| assertNotNull(ctTable.getTrArray(0).getTcArray(0).getPArray(0)); |
| |
| ctTable = CTTbl.Factory.newInstance(); |
| xtab = new XWPFTable(ctTable, doc, 3, 2); |
| assertNotNull(xtab); |
| assertEquals(3, ctTable.sizeOfTrArray()); |
| assertEquals(2, ctTable.getTrArray(0).sizeOfTcArray()); |
| assertNotNull(ctTable.getTrArray(0).getTcArray(0).getPArray(0)); |
| } |
| } |
| |
| @Test |
| void testTblGrid() throws IOException { |
| try (XWPFDocument doc = new XWPFDocument()) { |
| CTTbl ctTable = CTTbl.Factory.newInstance(); |
| CTTblGrid cttblgrid = ctTable.addNewTblGrid(); |
| cttblgrid.addNewGridCol().setW(BigInteger.valueOf(123)); |
| cttblgrid.addNewGridCol().setW(BigInteger.valueOf(321)); |
| |
| XWPFTable xtab = new XWPFTable(ctTable, doc); |
| CTTblGridCol[] ca = xtab.getCTTbl().getTblGrid().getGridColArray(); |
| assertEquals("123", ca[0].getW().toString()); |
| assertEquals("321", ca[1].getW().toString()); |
| } |
| } |
| |
| @Test |
| void testGetText() throws IOException { |
| try (XWPFDocument doc = new XWPFDocument()) { |
| CTTbl table = CTTbl.Factory.newInstance(); |
| CTRow row = table.addNewTr(); |
| CTTc cell = row.addNewTc(); |
| CTP paragraph = cell.addNewP(); |
| CTR run = paragraph.addNewR(); |
| CTText text = run.addNewT(); |
| text.setStringValue("finally I can write!"); |
| |
| XWPFTable xtab = new XWPFTable(table, doc); |
| assertEquals("finally I can write!\n", xtab.getText()); |
| } |
| } |
| |
| @Test |
| void testCreateRow() throws IOException { |
| try (XWPFDocument doc = new XWPFDocument()) { |
| |
| CTTbl table = CTTbl.Factory.newInstance(); |
| CTRow r1 = table.addNewTr(); |
| r1.addNewTc().addNewP(); |
| r1.addNewTc().addNewP(); |
| CTRow r2 = table.addNewTr(); |
| r2.addNewTc().addNewP(); |
| r2.addNewTc().addNewP(); |
| CTRow r3 = table.addNewTr(); |
| r3.addNewTc().addNewP(); |
| r3.addNewTc().addNewP(); |
| |
| XWPFTable xtab = new XWPFTable(table, doc); |
| assertEquals(3, xtab.getNumberOfRows()); |
| assertNotNull(xtab.getRow(2)); |
| |
| //add a new row |
| xtab.createRow(); |
| assertEquals(4, xtab.getNumberOfRows()); |
| |
| //check number of cols |
| assertEquals(2, table.getTrArray(0).sizeOfTcArray()); |
| |
| //check creation of first row |
| xtab = new XWPFTable(CTTbl.Factory.newInstance(), doc); |
| assertEquals(1, xtab.getCTTbl().getTrArray(0).sizeOfTcArray()); |
| } |
| } |
| |
| @Test |
| void testSetGetWidth() throws IOException { |
| try (XWPFDocument doc = new XWPFDocument()) { |
| |
| XWPFTable xtab = doc.createTable(); |
| |
| assertEquals(0, xtab.getWidth()); |
| assertEquals(TableWidthType.AUTO, xtab.getWidthType()); |
| |
| xtab.setWidth(1000); |
| assertEquals(TableWidthType.DXA, xtab.getWidthType()); |
| assertEquals(1000, xtab.getWidth()); |
| |
| xtab.setWidth("auto"); |
| assertEquals(TableWidthType.AUTO, xtab.getWidthType()); |
| assertEquals(0, xtab.getWidth()); |
| assertEquals(0.0, xtab.getWidthDecimal(), 0.01); |
| |
| xtab.setWidth("999"); |
| assertEquals(TableWidthType.DXA, xtab.getWidthType()); |
| assertEquals(999, xtab.getWidth()); |
| |
| xtab.setWidth("50.5%"); |
| assertEquals(TableWidthType.PCT, xtab.getWidthType()); |
| assertEquals(50.5, xtab.getWidthDecimal(), 0.01); |
| |
| // Test effect of setting width type to a new value |
| |
| // From PCT to NIL: |
| xtab.setWidthType(TableWidthType.NIL); |
| assertEquals(TableWidthType.NIL, xtab.getWidthType()); |
| assertEquals(0, xtab.getWidth()); |
| |
| xtab.setWidth("999"); // Sets type to DXA |
| assertEquals(TableWidthType.DXA, xtab.getWidthType()); |
| |
| // From DXA to AUTO: |
| xtab.setWidthType(TableWidthType.AUTO); |
| assertEquals(TableWidthType.AUTO, xtab.getWidthType()); |
| assertEquals(0, xtab.getWidth()); |
| |
| xtab.setWidthType(TableWidthType.PCT); |
| assertEquals(TableWidthType.PCT, xtab.getWidthType()); |
| |
| // From PCT to DXA: |
| xtab.setWidth("33.3%"); |
| xtab.setWidthType(TableWidthType.DXA); |
| assertEquals(TableWidthType.DXA, xtab.getWidthType()); |
| assertEquals(0, xtab.getWidth()); |
| |
| // From DXA to DXA: (value should be unchanged) |
| xtab.setWidth("999"); |
| xtab.setWidthType(TableWidthType.DXA); |
| assertEquals(TableWidthType.DXA, xtab.getWidthType()); |
| assertEquals(999, xtab.getWidth()); |
| |
| // From DXA to PCT: |
| xtab.setWidthType(TableWidthType.PCT); |
| assertEquals(TableWidthType.PCT, xtab.getWidthType()); |
| assertEquals(100.0, xtab.getWidthDecimal(), 0.0); |
| } |
| } |
| |
| @Test |
| void testSetGetHeight() throws IOException { |
| try (XWPFDocument doc = new XWPFDocument()) { |
| |
| CTTbl table = CTTbl.Factory.newInstance(); |
| |
| XWPFTable xtab = new XWPFTable(table, doc); |
| XWPFTableRow row = xtab.createRow(); |
| row.setHeight(20); |
| assertEquals(20, row.getHeight()); |
| } |
| } |
| |
| @Test |
| void testSetGetMargins() throws IOException { |
| // instantiate the following class so it'll get picked up by |
| // the XmlBean process and added to the jar file. it's required |
| // for the following XWPFTable methods. |
| CTTblCellMar ctm = CTTblCellMar.Factory.newInstance(); |
| assertNotNull(ctm); |
| // create a table |
| try (XWPFDocument doc = new XWPFDocument()) { |
| CTTbl ctTable = CTTbl.Factory.newInstance(); |
| XWPFTable table = new XWPFTable(ctTable, doc); |
| // set margins |
| table.setCellMargins(50, 50, 250, 450); |
| // get margin components |
| int t = table.getCellMarginTop(); |
| assertEquals(50, t); |
| int l = table.getCellMarginLeft(); |
| assertEquals(50, l); |
| int b = table.getCellMarginBottom(); |
| assertEquals(250, b); |
| int r = table.getCellMarginRight(); |
| assertEquals(450, r); |
| } |
| } |
| |
| @Test |
| void testSetGetHBorders() throws IOException { |
| // instantiate the following classes so they'll get picked up by |
| // the XmlBean process and added to the jar file. they are required |
| // for the following XWPFTable methods. |
| CTTblBorders cttb = CTTblBorders.Factory.newInstance(); |
| assertNotNull(cttb); |
| STBorder stb = STBorder.Factory.newInstance(); |
| assertNotNull(stb); |
| // create a table |
| try (XWPFDocument doc = new XWPFDocument()) { |
| CTTbl ctTable = CTTbl.Factory.newInstance(); |
| XWPFTable table = new XWPFTable(ctTable, doc); |
| // check initial state |
| XWPFBorderType bt = table.getInsideHBorderType(); |
| assertEquals(XWPFBorderType.SINGLE, bt); |
| int sz = table.getInsideHBorderSize(); |
| assertEquals(-1, sz); |
| int sp = table.getInsideHBorderSpace(); |
| assertEquals(-1, sp); |
| String clr = table.getInsideHBorderColor(); |
| assertNull(clr); |
| // set inside horizontal border |
| table.setInsideHBorder(XWPFBorderType.SINGLE, 4, 0, "FF0000"); |
| // get inside horizontal border components |
| bt = table.getInsideHBorderType(); |
| assertEquals(XWPFBorderType.SINGLE, bt); |
| sz = table.getInsideHBorderSize(); |
| assertEquals(4, sz); |
| sp = table.getInsideHBorderSpace(); |
| assertEquals(0, sp); |
| clr = table.getInsideHBorderColor(); |
| assertEquals("FF0000", clr); |
| // remove the border and verify state |
| table.removeInsideHBorder(); |
| bt = table.getInsideHBorderType(); |
| assertNull(bt); |
| sz = table.getInsideHBorderSize(); |
| assertEquals(-1, sz); |
| sp = table.getInsideHBorderSpace(); |
| assertEquals(-1, sp); |
| clr = table.getInsideHBorderColor(); |
| assertNull(clr); |
| // check other borders |
| bt = table.getInsideVBorderType(); |
| assertEquals(XWPFBorderType.SINGLE, bt); |
| bt = table.getTopBorderType(); |
| assertEquals(XWPFBorderType.SINGLE, bt); |
| bt = table.getBottomBorderType(); |
| assertEquals(XWPFBorderType.SINGLE, bt); |
| bt = table.getLeftBorderType(); |
| assertEquals(XWPFBorderType.SINGLE, bt); |
| bt = table.getRightBorderType(); |
| assertEquals(XWPFBorderType.SINGLE, bt); |
| // remove the rest all at once and test |
| table.removeBorders(); |
| bt = table.getInsideVBorderType(); |
| assertNull(bt); |
| bt = table.getTopBorderType(); |
| assertNull(bt); |
| bt = table.getBottomBorderType(); |
| assertNull(bt); |
| bt = table.getLeftBorderType(); |
| assertNull(bt); |
| bt = table.getRightBorderType(); |
| assertNull(bt); |
| } |
| } |
| |
| @Test |
| void testSetGetVBorders() throws IOException { |
| // create a table |
| try (XWPFDocument doc = new XWPFDocument()) { |
| CTTbl ctTable = CTTbl.Factory.newInstance(); |
| XWPFTable table = new XWPFTable(ctTable, doc); |
| // check initial state |
| XWPFBorderType bt = table.getInsideVBorderType(); |
| assertEquals(XWPFBorderType.SINGLE, bt); |
| int sz = table.getInsideVBorderSize(); |
| assertEquals(-1, sz); |
| int sp = table.getInsideVBorderSpace(); |
| assertEquals(-1, sp); |
| String clr = table.getInsideVBorderColor(); |
| assertNull(clr); |
| // set inside vertical border |
| table.setInsideVBorder(XWPFBorderType.DOUBLE, 4, 0, "00FF00"); |
| // get inside vertical border components |
| bt = table.getInsideVBorderType(); |
| assertEquals(XWPFBorderType.DOUBLE, bt); |
| sz = table.getInsideVBorderSize(); |
| assertEquals(4, sz); |
| sp = table.getInsideVBorderSpace(); |
| assertEquals(0, sp); |
| clr = table.getInsideVBorderColor(); |
| assertEquals("00FF00", clr); |
| // remove the border and verify state |
| table.removeInsideVBorder(); |
| bt = table.getInsideVBorderType(); |
| assertNull(bt); |
| sz = table.getInsideVBorderSize(); |
| assertEquals(-1, sz); |
| sp = table.getInsideVBorderSpace(); |
| assertEquals(-1, sp); |
| clr = table.getInsideVBorderColor(); |
| assertNull(clr); |
| // check the rest |
| bt = table.getInsideHBorderType(); |
| assertEquals(XWPFBorderType.SINGLE, bt); |
| bt = table.getTopBorderType(); |
| assertEquals(XWPFBorderType.SINGLE, bt); |
| bt = table.getBottomBorderType(); |
| assertEquals(XWPFBorderType.SINGLE, bt); |
| bt = table.getLeftBorderType(); |
| assertEquals(XWPFBorderType.SINGLE, bt); |
| bt = table.getRightBorderType(); |
| assertEquals(XWPFBorderType.SINGLE, bt); |
| // remove the rest one at a time and test |
| table.removeInsideHBorder(); |
| table.removeTopBorder(); |
| table.removeBottomBorder(); |
| table.removeLeftBorder(); |
| table.removeRightBorder(); |
| bt = table.getInsideHBorderType(); |
| assertNull(bt); |
| bt = table.getTopBorderType(); |
| assertNull(bt); |
| bt = table.getBottomBorderType(); |
| assertNull(bt); |
| bt = table.getLeftBorderType(); |
| assertNull(bt); |
| bt = table.getRightBorderType(); |
| assertNull(bt); |
| } |
| } |
| |
| @Test |
| void testSetGetTopBorders() throws IOException { |
| // create a table |
| try (XWPFDocument doc = new XWPFDocument()) { |
| CTTbl ctTable = CTTbl.Factory.newInstance(); |
| XWPFTable table = new XWPFTable(ctTable, doc); |
| // check initial state |
| XWPFBorderType bt = table.getTopBorderType(); |
| assertEquals(XWPFBorderType.SINGLE, bt); |
| int sz = table.getTopBorderSize(); |
| assertEquals(-1, sz); |
| int sp = table.getTopBorderSpace(); |
| assertEquals(-1, sp); |
| String clr = table.getTopBorderColor(); |
| assertNull(clr); |
| // set top border |
| table.setTopBorder(XWPFBorderType.THICK, 4, 0, "00FF00"); |
| // get inside vertical border components |
| bt = table.getTopBorderType(); |
| assertEquals(XWPFBorderType.THICK, bt); |
| sz = table.getTopBorderSize(); |
| assertEquals(4, sz); |
| sp = table.getTopBorderSpace(); |
| assertEquals(0, sp); |
| clr = table.getTopBorderColor(); |
| assertEquals("00FF00", clr); |
| // remove the border and verify state |
| table.removeTopBorder(); |
| bt = table.getTopBorderType(); |
| assertNull(bt); |
| sz = table.getTopBorderSize(); |
| assertEquals(-1, sz); |
| sp = table.getTopBorderSpace(); |
| assertEquals(-1, sp); |
| clr = table.getTopBorderColor(); |
| assertNull(clr); |
| } |
| } |
| |
| @Test |
| void testSetGetBottomBorders() throws IOException { |
| // create a table |
| try (XWPFDocument doc = new XWPFDocument()) { |
| CTTbl ctTable = CTTbl.Factory.newInstance(); |
| XWPFTable table = new XWPFTable(ctTable, doc); |
| // check initial state |
| XWPFBorderType bt = table.getBottomBorderType(); |
| assertEquals(XWPFBorderType.SINGLE, bt); |
| int sz = table.getBottomBorderSize(); |
| assertEquals(-1, sz); |
| int sp = table.getBottomBorderSpace(); |
| assertEquals(-1, sp); |
| String clr = table.getBottomBorderColor(); |
| assertNull(clr); |
| // set inside vertical border |
| table.setBottomBorder(XWPFBorderType.DOTTED, 4, 0, "00FF00"); |
| // get inside vertical border components |
| bt = table.getBottomBorderType(); |
| assertEquals(XWPFBorderType.DOTTED, bt); |
| sz = table.getBottomBorderSize(); |
| assertEquals(4, sz); |
| sp = table.getBottomBorderSpace(); |
| assertEquals(0, sp); |
| clr = table.getBottomBorderColor(); |
| assertEquals("00FF00", clr); |
| // remove the border and verify state |
| table.removeBottomBorder(); |
| bt = table.getBottomBorderType(); |
| assertNull(bt); |
| sz = table.getBottomBorderSize(); |
| assertEquals(-1, sz); |
| sp = table.getBottomBorderSpace(); |
| assertEquals(-1, sp); |
| clr = table.getBottomBorderColor(); |
| assertNull(clr); |
| } |
| } |
| |
| @Test |
| void testSetGetLeftBorders() throws IOException { |
| // create a table |
| try (XWPFDocument doc = new XWPFDocument()) { |
| CTTbl ctTable = CTTbl.Factory.newInstance(); |
| XWPFTable table = new XWPFTable(ctTable, doc); |
| // check initial state |
| XWPFBorderType bt = table.getLeftBorderType(); |
| assertEquals(XWPFBorderType.SINGLE, bt); |
| int sz = table.getLeftBorderSize(); |
| assertEquals(-1, sz); |
| int sp = table.getLeftBorderSpace(); |
| assertEquals(-1, sp); |
| String clr = table.getLeftBorderColor(); |
| assertNull(clr); |
| // set inside vertical border |
| table.setLeftBorder(XWPFBorderType.DASHED, 4, 0, "00FF00"); |
| // get inside vertical border components |
| bt = table.getLeftBorderType(); |
| assertEquals(XWPFBorderType.DASHED, bt); |
| sz = table.getLeftBorderSize(); |
| assertEquals(4, sz); |
| sp = table.getLeftBorderSpace(); |
| assertEquals(0, sp); |
| clr = table.getLeftBorderColor(); |
| assertEquals("00FF00", clr); |
| // remove the border and verify state |
| table.removeLeftBorder(); |
| bt = table.getLeftBorderType(); |
| assertNull(bt); |
| sz = table.getLeftBorderSize(); |
| assertEquals(-1, sz); |
| sp = table.getLeftBorderSpace(); |
| assertEquals(-1, sp); |
| clr = table.getLeftBorderColor(); |
| assertNull(clr); |
| } |
| } |
| |
| @Test |
| void testSetGetRightBorders() throws IOException { |
| // create a table |
| try (XWPFDocument doc = new XWPFDocument()) { |
| CTTbl ctTable = CTTbl.Factory.newInstance(); |
| XWPFTable table = new XWPFTable(ctTable, doc); |
| // check initial state |
| XWPFBorderType bt = table.getRightBorderType(); |
| assertEquals(XWPFBorderType.SINGLE, bt); |
| int sz = table.getRightBorderSize(); |
| assertEquals(-1, sz); |
| int sp = table.getRightBorderSpace(); |
| assertEquals(-1, sp); |
| String clr = table.getRightBorderColor(); |
| assertNull(clr); |
| // set inside vertical border |
| table.setRightBorder(XWPFBorderType.DOT_DASH, 4, 0, "00FF00"); |
| // get inside vertical border components |
| bt = table.getRightBorderType(); |
| assertEquals(XWPFBorderType.DOT_DASH, bt); |
| sz = table.getRightBorderSize(); |
| assertEquals(4, sz); |
| sp = table.getRightBorderSpace(); |
| assertEquals(0, sp); |
| clr = table.getRightBorderColor(); |
| assertEquals("00FF00", clr); |
| // remove the border and verify state |
| table.removeRightBorder(); |
| bt = table.getRightBorderType(); |
| assertNull(bt); |
| sz = table.getRightBorderSize(); |
| assertEquals(-1, sz); |
| sp = table.getRightBorderSpace(); |
| assertEquals(-1, sp); |
| clr = table.getRightBorderColor(); |
| assertNull(clr); |
| } |
| } |
| |
| @Test |
| void testSetGetRowBandSize() throws IOException { |
| try (XWPFDocument doc = new XWPFDocument()) { |
| CTTbl ctTable = CTTbl.Factory.newInstance(); |
| XWPFTable table = new XWPFTable(ctTable, doc); |
| table.setRowBandSize(12); |
| int sz = table.getRowBandSize(); |
| assertEquals(12, sz); |
| } |
| } |
| |
| @Test |
| void testSetGetColBandSize() throws IOException { |
| try (XWPFDocument doc = new XWPFDocument()) { |
| CTTbl ctTable = CTTbl.Factory.newInstance(); |
| XWPFTable table = new XWPFTable(ctTable, doc); |
| table.setColBandSize(16); |
| int sz = table.getColBandSize(); |
| assertEquals(16, sz); |
| } |
| } |
| |
| @Test |
| void testCreateTable() throws Exception { |
| // open an empty document |
| try (XWPFDocument doc = XWPFTestDataSamples.openSampleDocument("sample.docx")) { |
| |
| // create a table with 5 rows and 7 columns |
| int noRows = 5; |
| int noCols = 7; |
| XWPFTable table = doc.createTable(noRows, noCols); |
| |
| // assert the table is empty |
| List<XWPFTableRow> rows = table.getRows(); |
| assertEquals(noRows, rows.size(), "Table has less rows than requested."); |
| int row = 0; |
| for (XWPFTableRow xwpfRow : rows) { |
| assertNotNull(xwpfRow); |
| assertEquals(noCols, xwpfRow.getTableCells().size(), |
| "Row has less columns than requested."); |
| for (int i = 0; i < 7; i++) { |
| XWPFTableCell xwpfCell = xwpfRow.getCell(i); |
| assertNotNull(xwpfCell); |
| assertEquals(row != 0 || i != 0 ? 0 : 1, xwpfCell.getParagraphs().size(), |
| "Empty cells should not have one paragraph: " + i); |
| |
| xwpfCell = xwpfRow.getCell(i); |
| assertEquals(row != 0 || i != 0 ? 0 : 1, xwpfCell.getParagraphs().size(), |
| "Calling 'getCell' must not modify cells content: " + i); |
| } |
| |
| row++; |
| } |
| doc.getPackage().revert(); |
| } |
| } |
| |
| @Test |
| void testSetGetTableAlignment() throws IOException { |
| try (XWPFDocument doc = new XWPFDocument()) { |
| XWPFTable tbl = doc.createTable(1, 1); |
| tbl.setTableAlignment(TableRowAlign.LEFT); |
| assertEquals(TableRowAlign.LEFT, tbl.getTableAlignment()); |
| tbl.setTableAlignment(TableRowAlign.CENTER); |
| assertEquals(TableRowAlign.CENTER, tbl.getTableAlignment()); |
| tbl.setTableAlignment(TableRowAlign.RIGHT); |
| assertEquals(TableRowAlign.RIGHT, tbl.getTableAlignment()); |
| tbl.removeTableAlignment(); |
| assertNull(tbl.getTableAlignment()); |
| } |
| } |
| } |