Package org.testfx.matcher.control
Class TableViewMatchers
java.lang.Object
org.testfx.matcher.control.TableViewMatchers
TestFX matchers for
TableView controls.-
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic org.hamcrest.Matcher<javafx.scene.control.TableView> containsRow(Object... cells) Creates a matcher that matches allTableViews that have at least one row that contains the given values for each column of aTableView.private static <T> booleancontainsRow(javafx.scene.control.TableView<T> tableView, Object... cells) static org.hamcrest.Matcher<javafx.scene.control.TableView> containsRowAtIndex(int rowIndex, Object... cells) Creates a matcher that matches allTableViews that have a row at the givenindexthat contains the given values for each column of aTableView.private static <T> booleancontainsRowAtIndex(javafx.scene.control.TableView<T> tableView, int rowIndex, Object... cells) private static List<javafx.beans.value.ObservableValue<?>> getRowValues(javafx.scene.control.TableView<?> tableView, int rowIndex) private static booleanhasCellValue(javafx.scene.control.Cell cell, Object value) static org.hamcrest.Matcher<javafx.scene.control.TableView> hasItems(int rows) Deprecated.private static booleanhasItemValue(Object item, Object value) static org.hamcrest.Matcher<javafx.scene.control.TableView> hasNumRows(int rows) Creates a matcher that matches allTableViews that have exactlyamountrows.static org.hamcrest.Matcher<javafx.scene.control.TableView> hasTableCell(Object value) Creates a matcher that matches allTableViews that has aTableCellwhose value orvalue.toString()equals the given value.private static booleanhasTableCell(javafx.scene.control.TableView tableView, Object value) private static StringtoText(javafx.scene.control.TableView<?> tableView) Returns a textual representation of all rows of the giventableView.private static StringtoText(javafx.scene.control.TableView<?> tableView, int rowIndex) Returns a textual representation of one row (specified byrowIndex) of the giventableView.
-
Field Details
-
SELECTOR_TABLE_CELL
- See Also:
-
-
Constructor Details
-
TableViewMatchers
private TableViewMatchers()
-
-
Method Details
-
hasTableCell
Creates a matcher that matches allTableViews that has aTableCellwhose value orvalue.toString()equals the given value.Test code must ensure that the cell is visible by scrolling it into the viewport before using the matcher:
int row = ... int col = ... tableView.scrollTo(row); tableView.scrollToColumn(col); verifyThat(tableView, hasTableCell(contentOfCell); -
hasItems
Deprecated.UsehasNumRows(int amount)instead.Creates a matcher that matches allTableViews that have exactlyamountitems. -
hasNumRows
public static org.hamcrest.Matcher<javafx.scene.control.TableView> hasNumRows(int rows) Creates a matcher that matches allTableViews that have exactlyamountrows. -
containsRowAtIndex
public static org.hamcrest.Matcher<javafx.scene.control.TableView> containsRowAtIndex(int rowIndex, Object... cells) Creates a matcher that matches allTableViews that have a row at the givenindexthat contains the given values for each column of aTableView.For example, given a
TableViewthat has three columns:
Then to verify that such aTableColumn<RegularPolygon, String> nameColumn = new TableColumn<>("Name"); TableColumn<RegularPolygon, Integer> numSidesColumn = new TableColumn<>("Number of Sides"); TableColumn<RegularPolygon, Double> unitAreaColumn = new TableColumn<>("Area when Side = 1"); polygonsTable.getColumns().setAll(nameColumn, numSidesColumn, unitAreaColumn);TableView, contains, at index 3, a row for aRegularPolygonthat has the name "Pentagon", the number of sides 5, and a unit area of 1.720477401 one would use:
Where the types of each argument, after the row index, correspond to the types of theverifyThat("#polygonsTable", TableViewMatchers.containsRowAtIndex(3, "Pentagon", 5, 1.720477401);TableColumns which in our example is(String, Integer, Double).- Parameters:
rowIndex- the row number (starting from 0) that must contains the given cell valuescells- The values or String representations of the values (e.g. the result of callingtoString()) contained in the row at a given index you want to verify aTableViewcontains - one such value for each column of thatTableView. Usenullif the value is expected to not be set or if no cell value factory has been set.
-
containsRow
Creates a matcher that matches allTableViews that have at least one row that contains the given values for each column of aTableView.For example, given a
TableViewthat has three columns:
Then to verify that such aTableColumn<Person, String> nameColumn = new TableColumn<>("Name"); TableColumn<Person, Double> bmiColumn = new TableColumn<>("Body Mass Index"); TableColumn<Person, Boolean> membershipColumn = new TableColumn<>("Gym Membership Valid"); fitnessTable.getColumns().setAll(nameColumn, bmiColumn, membershipColumn);TableView, contains at least one row with aPersonthat has the name "Dan Anderson", the body mass index 28.83, and a valid gym membership (true) one would use:
Where the types of each argument correspond to the types of theverifyThat("#fitnessTable", TableViewMatchers.containsRow("Dan Anderson", 28.83, true);TableColumns which in our example is(String, Double, Boolean).- Parameters:
cells- The values or String representations of the values (e.g. the result of callingtoString()) contained in the row you want to verify aTableViewcontains - one such value for each column of thatTableView. Usenullif the value is expected to not be set or if no cell value factory has been set.
-
hasTableCell
-
containsRowAtIndex
private static <T> boolean containsRowAtIndex(javafx.scene.control.TableView<T> tableView, int rowIndex, Object... cells) -
getRowValues
private static List<javafx.beans.value.ObservableValue<?>> getRowValues(javafx.scene.control.TableView<?> tableView, int rowIndex) -
toText
Returns a textual representation of all rows of the giventableView. -
toText
Returns a textual representation of one row (specified byrowIndex) of the giventableView. -
containsRow
private static <T> boolean containsRow(javafx.scene.control.TableView<T> tableView, Object... cells) -
hasCellValue
-
hasItemValue
-
hasNumRows(int amount)instead.