Changeset 18439 in josm for trunk/test/unit/org/openstreetmap
- Timestamp:
- 2022-05-04T21:08:02+02:00 (3 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/test/unit/org/openstreetmap/josm/gui/dialogs/relation/MemberTableModelTest.java
r18037 r18439 2 2 package org.openstreetmap.josm.gui.dialogs.relation; 3 3 4 import static org.junit.jupiter.api.Assertions.assertAll; 5 import static org.junit.jupiter.api.Assertions.assertEquals; 4 6 import static org.junit.jupiter.api.Assertions.assertNotNull; 5 7 8 import java.util.Arrays; 6 9 import java.util.Collection; 7 10 import java.util.Collections; 8 11 import java.util.List; 12 import java.util.stream.Stream; 9 13 14 import org.junit.jupiter.api.Test; 15 import org.openstreetmap.josm.TestUtils; 16 import org.openstreetmap.josm.data.coor.LatLon; 17 import org.openstreetmap.josm.data.osm.DataSet; 10 18 import org.openstreetmap.josm.data.osm.Node; 11 19 import org.openstreetmap.josm.data.osm.OsmPrimitive; 20 import org.openstreetmap.josm.data.osm.Relation; 21 import org.openstreetmap.josm.data.osm.RelationMember; 12 22 import org.openstreetmap.josm.data.osm.Tag; 23 import org.openstreetmap.josm.gui.layer.OsmDataLayer; 13 24 import org.openstreetmap.josm.gui.tagging.presets.TaggingPresetHandler; 14 25 import org.openstreetmap.josm.testutils.annotations.BasicPreferences; 15 16 import org.junit.jupiter.api.Test;17 26 18 27 /** … … 35 44 @Override 36 45 public Collection<OsmPrimitive> getSelection() { 37 return Collections. <OsmPrimitive>singleton(n);46 return Collections.singleton(n); 38 47 } 39 48 }).getRelationMemberForPrimitive(n)); 40 49 } 50 51 /** 52 * Non-regression test for JOSM #12617, #17906, and #21889. Regrettably, it was not easily possible to test using 53 * drag-n-drop methods. 54 */ 55 @Test 56 void testTicket12617() { 57 final Node[] nodes = new Node[10]; 58 for (int i = 0; i < nodes.length; i++) { 59 nodes[i] = new Node(LatLon.ZERO); 60 // The id has to be > 0 61 nodes[i].setOsmId(i + 1, 1); 62 } 63 final Relation relation = TestUtils.newRelation("", Stream.of(nodes).map(node -> new RelationMember("", node)) 64 .toArray(RelationMember[]::new)); 65 final OsmDataLayer osmDataLayer = new OsmDataLayer(new DataSet(), "testTicket12617", null); 66 osmDataLayer.getDataSet().addPrimitiveRecursive(relation); 67 final MemberTableModel model = new MemberTableModel(relation, osmDataLayer, new TaggingPresetHandler() { 68 @Override 69 public Collection<OsmPrimitive> getSelection() { 70 return Collections.singleton(relation); 71 } 72 73 @Override 74 public void updateTags(List<Tag> tags) { 75 // Do nothing 76 } 77 }); 78 79 model.populate(relation); 80 // Select the members to move 81 model.setSelectedMembersIdx(Arrays.asList(2, 3, 5, 9)); 82 // Move the members (this is similar to what the drag-n-drop code is doing) 83 model.addMembersAtIndexKeepingOldSelection(model.getSelectedMembers(), 2); 84 model.remove(model.getSelectedIndices()); 85 // Apply the changes 86 model.applyToRelation(relation); 87 88 // Perform the tests 89 assertAll(() -> assertEquals(10, relation.getMembersCount(), "There should be no changes to the member count"), 90 () -> assertEquals(nodes[0], relation.getMember(0).getMember()), 91 () -> assertEquals(nodes[1], relation.getMember(1).getMember()), 92 () -> assertEquals(nodes[2], relation.getMember(2).getMember(), "Node 2 should not have moved"), 93 () -> assertEquals(nodes[3], relation.getMember(3).getMember(), "Node 3 should not have moved"), 94 () -> assertEquals(nodes[4], relation.getMember(6).getMember(), "Node 4 should be in position 5"), 95 () -> assertEquals(nodes[5], relation.getMember(4).getMember(), "Node 5 should be in position 4"), 96 () -> assertEquals(nodes[6], relation.getMember(7).getMember(), "Node 6 should not have moved"), 97 () -> assertEquals(nodes[7], relation.getMember(8).getMember()), 98 () -> assertEquals(nodes[8], relation.getMember(9).getMember()), 99 () -> assertEquals(nodes[9], relation.getMember(5).getMember(), "Node 9 should have moved") 100 ); 101 } 41 102 }
Note:
See TracChangeset
for help on using the changeset viewer.