1 | // License: GPL. For details, see LICENSE file.
|
---|
2 | package org.openstreetmap.josm.gui.dialogs.validator;
|
---|
3 |
|
---|
4 | import static org.junit.jupiter.api.Assertions.assertEquals;
|
---|
5 | import static org.junit.jupiter.api.Assertions.assertNotNull;
|
---|
6 | import static org.junit.jupiter.api.Assertions.assertNull;
|
---|
7 |
|
---|
8 | import java.util.ArrayList;
|
---|
9 | import java.util.Arrays;
|
---|
10 | import java.util.Collections;
|
---|
11 | import java.util.Enumeration;
|
---|
12 | import java.util.HashSet;
|
---|
13 | import java.util.Set;
|
---|
14 |
|
---|
15 | import org.junit.jupiter.api.extension.RegisterExtension;
|
---|
16 | import org.junit.jupiter.api.Test;
|
---|
17 | import org.openstreetmap.josm.data.osm.Node;
|
---|
18 | import org.openstreetmap.josm.data.osm.OsmPrimitive;
|
---|
19 | import org.openstreetmap.josm.data.validation.Severity;
|
---|
20 | import org.openstreetmap.josm.data.validation.TestError;
|
---|
21 | import org.openstreetmap.josm.testutils.JOSMTestRules;
|
---|
22 |
|
---|
23 | import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
|
---|
24 |
|
---|
25 | /**
|
---|
26 | * Unit tests of {@link ValidatorTreePanel} class.
|
---|
27 | */
|
---|
28 | class ValidatorTreePanelTest {
|
---|
29 |
|
---|
30 | /**
|
---|
31 | * Setup tests
|
---|
32 | */
|
---|
33 | @RegisterExtension
|
---|
34 | @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
|
---|
35 | public JOSMTestRules test = new JOSMTestRules().preferences();
|
---|
36 |
|
---|
37 | /**
|
---|
38 | * Unit test of {@link ValidatorTreePanel#ValidatorTreePanel}.
|
---|
39 | */
|
---|
40 | @Test
|
---|
41 | void testValidatorTreePanel() {
|
---|
42 | assertNotNull(new ValidatorTreePanel());
|
---|
43 |
|
---|
44 | ValidatorTreePanel vtp = new ValidatorTreePanel(new ArrayList<>(Arrays.asList(
|
---|
45 | TestError.builder(null, Severity.ERROR, 0)
|
---|
46 | .message("err")
|
---|
47 | .primitives(new Node(1))
|
---|
48 | .build(),
|
---|
49 | TestError.builder(null, Severity.WARNING, 0)
|
---|
50 | .message("warn", "foo")
|
---|
51 | .primitives(new Node(2))
|
---|
52 | .build(),
|
---|
53 | TestError.builder(null, Severity.WARNING, 0)
|
---|
54 | .message("warn", "bar")
|
---|
55 | .primitives(new Node(2))
|
---|
56 | .build())));
|
---|
57 | assertNotNull(vtp);
|
---|
58 | final Enumeration<?> nodes = vtp.getRoot().breadthFirstEnumeration();
|
---|
59 | assertEquals("", nodes.nextElement().toString());
|
---|
60 | assertEquals("Errors (1)", nodes.nextElement().toString());
|
---|
61 | assertEquals("Warnings (2)", nodes.nextElement().toString());
|
---|
62 | assertEquals("err (1)", nodes.nextElement().toString());
|
---|
63 | assertEquals("warn (2)", nodes.nextElement().toString());
|
---|
64 | nodes.nextElement();
|
---|
65 | assertEquals("bar (1)", nodes.nextElement().toString());
|
---|
66 | assertEquals("foo (1)", nodes.nextElement().toString());
|
---|
67 | vtp.setVisible(true);
|
---|
68 | vtp.setVisible(false);
|
---|
69 | Node n = new Node(10);
|
---|
70 | vtp.setErrors(Arrays.asList(TestError.builder(null, Severity.ERROR, 0)
|
---|
71 | .message("")
|
---|
72 | .primitives(n)
|
---|
73 | .build()));
|
---|
74 | assertEquals(1, vtp.getErrors().size());
|
---|
75 | vtp.selectRelatedErrors(Collections.<OsmPrimitive>singleton(n));
|
---|
76 | vtp.expandAll();
|
---|
77 | assertNotNull(vtp.getRoot());
|
---|
78 | vtp.resetErrors();
|
---|
79 | Set<? extends OsmPrimitive> filter = new HashSet<>(Arrays.asList(n));
|
---|
80 | vtp.setFilter(filter);
|
---|
81 | assertEquals(filter, vtp.getFilter());
|
---|
82 | vtp.setFilter(new HashSet<OsmPrimitive>());
|
---|
83 | assertNull(vtp.getFilter());
|
---|
84 | vtp.setFilter(null);
|
---|
85 | assertNull(vtp.getFilter());
|
---|
86 | vtp.destroy();
|
---|
87 | }
|
---|
88 | }
|
---|