1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
|
package at.ac.tuwien.sepm.assignment.groupphase.util;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import javafx.stage.Modality;
import javafx.stage.Stage;
import javafx.stage.Window;
import org.dbunit.database.IDatabaseConnection;
import org.dbunit.dataset.DataSetException;
import org.dbunit.dataset.IDataSet;
import org.dbunit.dataset.ITable;
import org.dbunit.dataset.filter.DefaultColumnFilter;
import org.dbunit.util.fileloader.FlatXmlDataFileLoader;
import org.testfx.api.FxRobotContext;
public class Helper {
public static Stage getTopModalStage(FxRobotContext robotContext) {
List<Window> allWindows = new ArrayList<>(robotContext.getWindowFinder().listWindows());
Collections.reverse(allWindows);
return (Stage)
allWindows
.stream()
.filter(window -> window instanceof Stage)
.filter(
window ->
((Stage) window).getModality()
== Modality.APPLICATION_MODAL)
.findFirst()
.orElse(null);
}
public static ITable getActualFilteredTableData(
IDatabaseConnection connection, String tableName, String[] excludedColumns)
throws Exception {
IDataSet actualDataSet = connection.createDataSet();
ITable actualTable = actualDataSet.getTable(tableName);
return getFilteredTableData(actualTable, excludedColumns);
}
public static ITable getExpectedFilteredTableData(
String tableName, String[] excludedColumns, String expectedXmlDataFileName)
throws Exception {
IDataSet dataSet = loadDataSet(expectedXmlDataFileName);
ITable table = dataSet.getTable(tableName);
return getFilteredTableData(table, excludedColumns);
}
public static ITable getActualFilteredQueryTableData(
IDatabaseConnection connection,
String resultTableName,
String sql,
String[] excludedColumns)
throws Exception {
ITable queryData = connection.createQueryTable(resultTableName, sql);
return getFilteredTableData(queryData, excludedColumns);
}
private static ITable getFilteredTableData(ITable tableData, String[] excludedColumns)
throws DataSetException {
return DefaultColumnFilter.excludedColumnsTable(tableData, excludedColumns);
}
private static IDataSet loadDataSet(String fileName) {
return new FlatXmlDataFileLoader().load("/" + fileName);
}
}
|