Ignore:
Timestamp:
2016-07-28T01:24:39+02:00 (8 years ago)
Author:
Don-vip
Message:

fix #13223 - Minor command class fixes (patch by michael2402, modified) - gsoc-core

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/test/unit/org/openstreetmap/josm/command/SelectCommandTest.java

    r9943 r10663  
    22package org.openstreetmap.josm.command;
    33
    4 import org.junit.BeforeClass;
     4import static org.junit.Assert.assertArrayEquals;
     5import static org.junit.Assert.assertFalse;
     6import static org.junit.Assert.assertTrue;
     7
     8import java.util.ArrayList;
     9import java.util.Arrays;
     10import java.util.List;
     11
     12import org.junit.Before;
     13import org.junit.Rule;
    514import org.junit.Test;
    6 import org.openstreetmap.josm.JOSMFixture;
     15import org.openstreetmap.josm.command.CommandTest.CommandTestDataWithRelation;
    716import org.openstreetmap.josm.data.osm.DataSet;
     17import org.openstreetmap.josm.data.osm.OsmPrimitive;
    818import org.openstreetmap.josm.data.osm.User;
    919import org.openstreetmap.josm.gui.layer.OsmDataLayer;
     20import org.openstreetmap.josm.testutils.JOSMTestRules;
    1021
     22import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
    1123import nl.jqno.equalsverifier.EqualsVerifier;
    1224import nl.jqno.equalsverifier.Warning;
     
    1830
    1931    /**
    20      * Setup test.
     32     * We need prefs for nodes.
    2133     */
    22     @BeforeClass
    23     public static void setUpBeforeClass() {
    24         JOSMFixture.createUnitTestFixture().init(false);
     34    @Rule
     35    @SuppressFBWarnings(value = "URF_UNREAD_PUBLIC_OR_PROTECTED_FIELD")
     36    public JOSMTestRules test = new JOSMTestRules().preferences();
     37    private CommandTestDataWithRelation testData;
     38
     39    /**
     40     * Set up the test data.
     41     */
     42    @Before
     43    public void createTestData() {
     44        testData = new CommandTestDataWithRelation();
     45    }
     46
     47    /**
     48     * Test {@link SelectCommand#executeCommand()}
     49     */
     50    @Test
     51    public void testExecute() {
     52        SelectCommand command = new SelectCommand(Arrays.asList(testData.existingNode, testData.existingWay));
     53
     54        testData.layer.data.setSelected(Arrays.asList(testData.existingNode2));
     55
     56        command.executeCommand();
     57
     58        assertTrue(testData.existingNode.isSelected());
     59        assertFalse(testData.existingNode2.isSelected());
     60        assertTrue(testData.existingWay.isSelected());
     61    }
     62
     63    /**
     64     * Test {@link SelectCommand#executeCommand()}
     65     */
     66    @Test
     67    public void testExecuteAfterModify() {
     68        List<OsmPrimitive> list = new ArrayList<>(Arrays.asList(testData.existingNode, testData.existingWay));
     69        SelectCommand command = new SelectCommand(list);
     70
     71        list.remove(testData.existingNode);
     72        list.add(testData.existingNode2);
     73
     74        command.executeCommand();
     75
     76        assertTrue(testData.existingNode.isSelected());
     77        assertFalse(testData.existingNode2.isSelected());
     78        assertTrue(testData.existingWay.isSelected());
     79    }
     80
     81    /**
     82     * Test {@link SelectCommand#undoCommand()}
     83     */
     84    @Test
     85    public void testUndo() {
     86        SelectCommand command = new SelectCommand(Arrays.asList(testData.existingNode, testData.existingWay));
     87        testData.layer.data.setSelected(Arrays.asList(testData.existingNode2));
     88
     89        command.executeCommand();
     90
     91        command.undoCommand();
     92
     93        assertFalse(testData.existingNode.isSelected());
     94        assertTrue(testData.existingNode2.isSelected());
     95        assertFalse(testData.existingWay.isSelected());
     96
     97        command.executeCommand();
     98
     99        assertTrue(testData.existingNode.isSelected());
     100        assertFalse(testData.existingNode2.isSelected());
     101        assertTrue(testData.existingWay.isSelected());
     102    }
     103
     104    /**
     105     * Tests {@link SelectCommand#fillModifiedData(java.util.Collection, java.util.Collection, java.util.Collection)}
     106     */
     107    @Test
     108    public void testFillModifiedData() {
     109        ArrayList<OsmPrimitive> modified = new ArrayList<>();
     110        ArrayList<OsmPrimitive> deleted = new ArrayList<>();
     111        ArrayList<OsmPrimitive> added = new ArrayList<>();
     112        SelectCommand command = new SelectCommand(Arrays.asList(testData.existingNode, testData.existingWay));
     113        command.fillModifiedData(modified, deleted, added);
     114        // intentionally empty.
     115        assertArrayEquals(new Object[] {}, modified.toArray());
     116        assertArrayEquals(new Object[] {}, deleted.toArray());
     117        assertArrayEquals(new Object[] {}, added.toArray());
     118    }
     119
     120    /**
     121     * Tests {@link SelectCommand#getParticipatingPrimitives()}
     122     */
     123    @Test
     124    public void testGetParticipatingPrimitives() {
     125        SelectCommand command = new SelectCommand(Arrays.asList(testData.existingNode, testData.existingWay));
     126        command.executeCommand();
     127        assertArrayEquals(new Object[] {}, command.getParticipatingPrimitives().toArray());
     128    }
     129
     130    /**
     131     * Test {@link SelectCommand#getDescriptionText()}
     132     */
     133    @Test
     134    public void testDescription() {
     135        assertTrue(new SelectCommand(Arrays.<OsmPrimitive>asList(testData.existingNode))
     136                .getDescriptionText().matches("Selected 1 object"));
     137        assertTrue(new SelectCommand(Arrays.asList(testData.existingNode, testData.existingWay))
     138                .getDescriptionText().matches("Selected 2 objects"));
     139        assertTrue(new SelectCommand(Arrays.<OsmPrimitive>asList())
     140                .getDescriptionText().matches("Selected 0 objects"));
     141        assertTrue(new SelectCommand(null)
     142                .getDescriptionText().matches("Selected 0 objects"));
    25143    }
    26144
Note: See TracChangeset for help on using the changeset viewer.