blob: f5cddae57a5008a3d7d0569415d911218dcbbec5 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2012, 2020 Original authors and others.
*
* This program and the accompanying materials are made
* available under the terms of the Eclipse Public License 2.0
* which is available at https://www.eclipse.org/legal/epl-2.0/
*
* SPDX-License-Identifier: EPL-2.0
*
* Contributors:
* Original authors and others - initial API and implementation
******************************************************************************/
package org.eclipse.nebula.widgets.nattable.test;
import static org.junit.Assert.assertEquals;
import org.eclipse.nebula.widgets.nattable.layer.ILayer;
import org.eclipse.nebula.widgets.nattable.layer.LabelStack;
import org.eclipse.nebula.widgets.nattable.layer.cell.ILayerCell;
import org.eclipse.swt.graphics.Rectangle;
public class LayerAssert {
public static void assertLayerEquals(ILayer expectedLayer, ILayer actualLayer) {
// Horizontal features
// Columns
int expectedColumnCount = expectedLayer.getColumnCount();
int actualColumnCount = actualLayer.getColumnCount();
assertEquals("Column count", expectedColumnCount,
actualColumnCount);
// Assert.assertEquals("Preferred column count",
// expectedLayer.getPreferredColumnCount(),
// actualLayer.getPreferredColumnCount());
for (int columnPosition = 0; columnPosition < expectedColumnCount; columnPosition++) {
int expectedColumnIndexByPosition = expectedLayer
.getColumnIndexByPosition(columnPosition);
int actualColumnIndexByPosition = actualLayer
.getColumnIndexByPosition(columnPosition);
assertEquals("Column index by position (" + columnPosition
+ ")", expectedColumnIndexByPosition,
actualColumnIndexByPosition);
}
for (int localColumnPosition = 0; localColumnPosition < expectedColumnCount; localColumnPosition++) {
int expectedLocalToUnderlyingColumnPosition = expectedLayer
.localToUnderlyingColumnPosition(localColumnPosition);
int actualLocalToUnderlyingColumnPosition = actualLayer
.localToUnderlyingColumnPosition(localColumnPosition);
assertEquals("Local to underlying column position ("
+ localColumnPosition + ")",
expectedLocalToUnderlyingColumnPosition,
actualLocalToUnderlyingColumnPosition);
}
// for (int underlyingColumnPosition = 0; underlyingColumnPosition <
// expectedLayer.getColumnCount(); underlyingColumnPosition++) {
// Assert.assertEquals("Underlying to local column position (" +
// underlyingColumnPosition + ")",
// expectedLayer.underlyingToLocalColumnPosition(null,
// underlyingColumnPosition),
// actualLayer.underlyingToLocalColumnPosition(null,
// underlyingColumnPosition));
// }
// Width
int expectedWidth = expectedLayer.getWidth();
int actualWidth = actualLayer.getWidth();
assertEquals("Width", expectedWidth, actualWidth);
// Assert.assertEquals("Preferred width",
// expectedLayer.getPreferredWidth(), actualLayer.getPreferredWidth());
for (int columnPosition = 0; columnPosition < expectedColumnCount; columnPosition++) {
int expectedColumnWidthByPosition = expectedLayer
.getColumnWidthByPosition(columnPosition);
int actualColumnWidthByPosition = actualLayer
.getColumnWidthByPosition(columnPosition);
assertEquals("Column width by position (" + columnPosition
+ ")", expectedColumnWidthByPosition,
actualColumnWidthByPosition);
}
// Column resize
for (int columnPosition = 0; columnPosition < expectedColumnCount; columnPosition++) {
boolean expectedColumnPositionResizable = expectedLayer
.isColumnPositionResizable(columnPosition);
boolean actualColumnPositionResizable = actualLayer
.isColumnPositionResizable(columnPosition);
assertEquals("Column position resizable (" + columnPosition
+ ")", expectedColumnPositionResizable,
actualColumnPositionResizable);
}
// X
for (int x = 0; x < expectedWidth; x++) {
int expectedColumnPositionByX = expectedLayer
.getColumnPositionByX(x);
int actualColumnPositionByX = actualLayer.getColumnPositionByX(x);
assertEquals("Column position by X (" + x + ")",
expectedColumnPositionByX, actualColumnPositionByX);
}
for (int columnPosition = 0; columnPosition < expectedColumnCount; columnPosition++) {
int expectedStartXOfColumnPosition = expectedLayer
.getStartXOfColumnPosition(columnPosition);
int actualStartXOfColumnPosition = actualLayer
.getStartXOfColumnPosition(columnPosition);
assertEquals("Start X of column position (" + columnPosition
+ ")", expectedStartXOfColumnPosition,
actualStartXOfColumnPosition);
}
// Vertical features
// Rows
int expectedRowCount = expectedLayer.getRowCount();
int actualRowCount = actualLayer.getRowCount();
assertEquals("Row count", expectedRowCount, actualRowCount);
// Assert.assertEquals("Preferred row count",
// expectedLayer.getPreferredRowCount(),
// actualLayer.getPreferredRowCount());
for (int rowPosition = 0; rowPosition < expectedRowCount; rowPosition++) {
int expectedRowIndexByPosition = expectedLayer
.getRowIndexByPosition(rowPosition);
int actualRowIndexByPosition = actualLayer
.getRowIndexByPosition(rowPosition);
assertEquals("Row index by position (" + rowPosition + ")",
expectedRowIndexByPosition, actualRowIndexByPosition);
}
for (int localRowPosition = 0; localRowPosition < expectedRowCount; localRowPosition++) {
int expectedLocalToUnderlyingRowPosition = expectedLayer
.localToUnderlyingRowPosition(localRowPosition);
int actualLocalToUnderlyingRowPosition = actualLayer
.localToUnderlyingRowPosition(localRowPosition);
assertEquals("Local to underlying row position ("
+ localRowPosition + ")",
expectedLocalToUnderlyingRowPosition,
actualLocalToUnderlyingRowPosition);
}
// for (int underlyingRowPosition = 0; underlyingRowPosition <
// expectedLayer.getRowCount(); underlyingRowPosition++) {
// Assert.assertEquals("Underlying to local row position (" +
// underlyingRowPosition + ")",
// expectedLayer.underlyingToLocalRowPosition(null,
// underlyingRowPosition),
// actualLayer.underlyingToLocalRowPosition(null,
// underlyingRowPosition));
// }
// Height
int expectedHeight = expectedLayer.getHeight();
int actualHeight = actualLayer.getHeight();
assertEquals("Height", expectedHeight, actualHeight);
// Assert.assertEquals("Preferred height",
// expectedLayer.getPreferredHeight(),
// actualLayer.getPreferredHeight());
for (int rowPosition = 0; rowPosition < expectedRowCount; rowPosition++) {
int expectedRowHeightByPosition = expectedLayer
.getRowHeightByPosition(rowPosition);
int actualRowHeightByPosition = actualLayer
.getRowHeightByPosition(rowPosition);
assertEquals("Row height by position (" + rowPosition + ")",
expectedRowHeightByPosition, actualRowHeightByPosition);
}
// Row resize
for (int rowPosition = 0; rowPosition < expectedRowCount; rowPosition++) {
boolean expectedRowPositionResizable = expectedLayer
.isRowPositionResizable(rowPosition);
boolean actualRowPositionResizable = actualLayer
.isRowPositionResizable(rowPosition);
assertEquals("Row position resizable (" + rowPosition + ")",
expectedRowPositionResizable, actualRowPositionResizable);
}
// Y
for (int y = 0; y < expectedHeight; y++) {
int expectedRowPositionByY = expectedLayer.getRowPositionByY(y);
int actualRowPositionByY = actualLayer.getRowPositionByY(y);
assertEquals("Row position by Y (" + y + ")",
expectedRowPositionByY, actualRowPositionByY);
}
for (int rowPosition = 0; rowPosition < expectedRowCount; rowPosition++) {
int expectedStartYOfRowPosition = expectedLayer
.getStartYOfRowPosition(rowPosition);
int actualStartYOfRowPosition = actualLayer
.getStartYOfRowPosition(rowPosition);
assertEquals(
"Start Y of row position (" + rowPosition + ")",
expectedStartYOfRowPosition, actualStartYOfRowPosition);
}
// Cell features
for (int columnPosition = 0; columnPosition < expectedColumnCount; columnPosition++) {
for (int rowPosition = 0; rowPosition < expectedRowCount; rowPosition++) {
ILayerCell expectedCellByPosition = expectedLayer
.getCellByPosition(columnPosition, rowPosition);
ILayerCell actualCellByPosition = actualLayer
.getCellByPosition(columnPosition, rowPosition);
assertEquals("Cell by position (" + columnPosition
+ ", " + rowPosition + ")", expectedCellByPosition,
actualCellByPosition);
}
}
for (int columnPosition = 0; columnPosition < expectedColumnCount; columnPosition++) {
for (int rowPosition = 0; rowPosition < expectedRowCount; rowPosition++) {
Rectangle expectedBoundsByPosition = expectedLayer
.getBoundsByPosition(columnPosition, rowPosition);
Rectangle actualBoundsByPosition = actualLayer
.getBoundsByPosition(columnPosition, rowPosition);
assertEquals("Bounds by position (" + columnPosition
+ ", " + rowPosition + ")", expectedBoundsByPosition,
actualBoundsByPosition);
}
}
for (int columnPosition = 0; columnPosition < expectedColumnCount; columnPosition++) {
for (int rowPosition = 0; rowPosition < expectedRowCount; rowPosition++) {
String expectedDisplayModeByPosition = expectedLayer
.getDisplayModeByPosition(columnPosition, rowPosition);
String actualDisplayModeByPosition = actualLayer
.getDisplayModeByPosition(columnPosition, rowPosition);
assertEquals("Display mode by position ("
+ columnPosition + ", " + rowPosition + ")",
expectedDisplayModeByPosition,
actualDisplayModeByPosition);
}
}
for (int columnPosition = 0; columnPosition < expectedColumnCount; columnPosition++) {
for (int rowPosition = 0; rowPosition < expectedRowCount; rowPosition++) {
LabelStack expectedConfigLabelsByPosition = expectedLayer
.getConfigLabelsByPosition(columnPosition, rowPosition);
LabelStack actualConfigLabelsByPosition = actualLayer
.getConfigLabelsByPosition(columnPosition, rowPosition);
assertEquals("Config labels by position ("
+ columnPosition + ", " + rowPosition + ")",
expectedConfigLabelsByPosition,
actualConfigLabelsByPosition);
}
}
for (int columnPosition = 0; columnPosition < expectedColumnCount; columnPosition++) {
for (int rowPosition = 0; rowPosition < expectedRowCount; rowPosition++) {
Object expectedDataValueByPosition = expectedLayer
.getDataValueByPosition(columnPosition, rowPosition);
Object actualDataValueByPosition = actualLayer
.getDataValueByPosition(columnPosition, rowPosition);
assertEquals("Data value by position (" + columnPosition
+ ", " + rowPosition + ")",
expectedDataValueByPosition, actualDataValueByPosition);
}
}
}
}