source: josm/trunk/test/unit/org/openstreetmap/josm/gui/dialogs/FilterDialogTest.java@ 18870

Last change on this file since 18870 was 18870, checked in by taylor.smock, 11 months ago

See #16567: Update to JUnit 5

This converts most tests to use @Annotations. There are also some performance
improvements as it relates to tests.

File size: 2.0 KB
Line 
1// License: GPL. For details, see LICENSE file.
2package org.openstreetmap.josm.gui.dialogs;
3
4import static org.junit.jupiter.api.Assertions.assertEquals;
5import static org.junit.jupiter.api.Assertions.assertFalse;
6
7import java.lang.reflect.Field;
8import java.util.List;
9import java.util.stream.Collectors;
10import java.util.stream.Stream;
11
12import javax.swing.AbstractAction;
13
14import org.junit.jupiter.params.ParameterizedTest;
15import org.junit.jupiter.params.provider.ValueSource;
16import org.openstreetmap.josm.data.osm.Filter;
17import org.openstreetmap.josm.testutils.annotations.BasicPreferences;
18import org.openstreetmap.josm.testutils.annotations.Main;
19import org.openstreetmap.josm.tools.ReflectionUtils;
20
21/**
22 * Test class for {@link FilterDialog}
23 */
24@BasicPreferences(true)
25@Main
26class FilterDialogTest {
27 private static final List<Filter> FILTERS = Stream.of("type:node", "type:way", "type:relation")
28 .map(Filter::readFromString).map(Filter::new).collect(Collectors.toList());
29
30 @ParameterizedTest
31 @ValueSource(ints = {0, 1, 2})
32 void testNonRegression22439(int indexToRemove) throws ReflectiveOperationException {
33 FilterDialog filterDialog = new FilterDialog();
34 FilterTableModel filterModel = filterDialog.getFilterModel();
35 filterModel.addFilters(FILTERS.toArray(new Filter[0]));
36 Filter toRemove = filterModel.getValue(indexToRemove);
37
38 assertEquals(FILTERS.get(indexToRemove), toRemove, "The indexes don't match between lists");
39
40 filterModel.getSelectionModel().setSelectionInterval(indexToRemove, indexToRemove);
41 Field deleteField = FilterDialog.class.getDeclaredField("deleteAction");
42 ReflectionUtils.setObjectsAccessible(deleteField);
43 AbstractAction deleteAction = (AbstractAction) deleteField.get(filterDialog);
44 deleteAction.actionPerformed(null);
45
46 assertEquals(2, filterModel.getFilters().size());
47 assertFalse(filterModel.getFilters().contains(toRemove));
48 }
49}
Note: See TracBrowser for help on using the repository browser.