Ignore:
Timestamp:
2017-05-01T00:31:23+02:00 (7 years ago)
Author:
Don-vip
Message:

add more unit tests

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/test/unit/org/openstreetmap/josm/data/osm/ChangesetTest.java

    r11324 r12033  
    22package org.openstreetmap.josm.data.osm;
    33
     4import static org.junit.Assert.assertEquals;
     5import static org.junit.Assert.assertFalse;
     6import static org.junit.Assert.assertNull;
     7import static org.junit.Assert.assertTrue;
    48import static org.openstreetmap.josm.data.osm.Changeset.MAX_CHANGESET_TAG_LENGTH;
    59
     10import java.util.Calendar;
     11import java.util.Collection;
     12import java.util.Date;
    613import java.util.HashMap;
    714import java.util.Map;
     
    1118import org.junit.Test;
    1219import org.openstreetmap.josm.Main;
     20import org.openstreetmap.josm.data.Bounds;
     21import org.openstreetmap.josm.data.coor.LatLon;
     22import org.openstreetmap.josm.data.osm.visitor.Visitor;
     23import org.openstreetmap.josm.gui.DefaultNameFormatter;
    1324import org.openstreetmap.josm.testutils.JOSMTestRules;
    1425
     
    6980        }
    7081    }
     82
     83    /**
     84     * Unit test of method {@link Changeset#compareTo}.
     85     */
     86    @Test
     87    public void testCompareTo() {
     88        Changeset cs1 = new Changeset(1);
     89        Changeset cs2 = new Changeset(2);
     90        assertEquals(0, cs1.compareTo(cs1));
     91        assertEquals(-1, cs1.compareTo(cs2));
     92        assertEquals(+1, cs2.compareTo(cs1));
     93    }
     94
     95    /**
     96     * Unit test of method {@link Changeset#getBounds}.
     97     */
     98    @Test
     99    public void testGetBounds() {
     100        Changeset cs = new Changeset();
     101        assertNull(cs.getBounds());
     102        cs.setMin(LatLon.NORTH_POLE);
     103        cs.setMax(null);
     104        assertNull(cs.getBounds());
     105        cs.setMin(null);
     106        cs.setMax(LatLon.SOUTH_POLE);
     107        assertNull(cs.getBounds());
     108        cs.setMin(LatLon.NORTH_POLE);
     109        cs.setMax(LatLon.SOUTH_POLE);
     110        assertEquals(new Bounds(90, 0, -90, 0), cs.getBounds());
     111    }
     112
     113    /**
     114     * Unit test of methods {@link Changeset#getContent} / {@link Changeset#setContent} / {@link Changeset#hasContent}.
     115     */
     116    @Test
     117    public void testGetSetHasContent() {
     118        Changeset cs = new Changeset();
     119        assertNull(cs.getContent());
     120        assertFalse(cs.hasContent());
     121        ChangesetDataSet cds = new ChangesetDataSet();
     122        cs.setContent(cds);
     123        assertEquals(cds, cs.getContent());
     124        assertTrue(cs.hasContent());
     125    }
     126
     127    /**
     128     * Unit test of method {@link Changeset#getDisplayName}.
     129     */
     130    @Test
     131    public void testGetDisplayName() {
     132        assertEquals("Changeset 0", new Changeset().getDisplayName(DefaultNameFormatter.getInstance()));
     133    }
     134
     135    /**
     136     * Unit test of method {@link Changeset#getName}.
     137     */
     138    @Test
     139    public void testGetName() {
     140        assertEquals("changeset 0", new Changeset().getName());
     141    }
     142
     143    private static Date yesterday() {
     144        final Calendar cal = Calendar.getInstance();
     145        cal.add(Calendar.DATE, -1);
     146        return cal.getTime();
     147    }
     148
     149    /**
     150     * Unit test of method {@link Changeset#hasEqualSemanticAttributes}.
     151     */
     152    @Test
     153    public void testHasEqualSemanticAttributes() {
     154        Changeset cs1 = new Changeset();
     155        Changeset cs2 = new Changeset();
     156        assertTrue(cs1.hasEqualSemanticAttributes(cs2));
     157        assertFalse(cs1.hasEqualSemanticAttributes(null));
     158        // Closed At
     159        cs1.setClosedAt(null);
     160        cs2.setClosedAt(new Date());
     161        assertFalse(cs1.hasEqualSemanticAttributes(cs2));
     162        cs1.setClosedAt(yesterday());
     163        cs2.setClosedAt(new Date());
     164        assertFalse(cs1.hasEqualSemanticAttributes(cs2));
     165        cs1.setClosedAt(new Date());
     166        cs2.setClosedAt(new Date());
     167        assertTrue(cs1.hasEqualSemanticAttributes(cs2));
     168        // Created At
     169        cs1.setCreatedAt(null);
     170        cs2.setCreatedAt(new Date());
     171        assertFalse(cs1.hasEqualSemanticAttributes(cs2));
     172        cs1.setCreatedAt(yesterday());
     173        cs2.setCreatedAt(new Date());
     174        assertFalse(cs1.hasEqualSemanticAttributes(cs2));
     175        cs1.setCreatedAt(new Date());
     176        cs2.setCreatedAt(new Date());
     177        assertTrue(cs1.hasEqualSemanticAttributes(cs2));
     178        // Id
     179        cs1.setId(1);
     180        cs2.setId(2);
     181        assertFalse(cs1.hasEqualSemanticAttributes(cs2));
     182        cs1.setId(1);
     183        cs2.setId(1);
     184        assertTrue(cs1.hasEqualSemanticAttributes(cs2));
     185        // Max
     186        cs1.setMax(null);
     187        cs2.setMax(null);
     188        assertTrue(cs1.hasEqualSemanticAttributes(cs2));
     189        cs1.setMax(null);
     190        cs2.setMax(LatLon.NORTH_POLE);
     191        assertFalse(cs1.hasEqualSemanticAttributes(cs2));
     192        cs1.setMax(LatLon.SOUTH_POLE);
     193        cs2.setMax(LatLon.NORTH_POLE);
     194        assertFalse(cs1.hasEqualSemanticAttributes(cs2));
     195        cs1.setMax(LatLon.SOUTH_POLE);
     196        cs2.setMax(LatLon.SOUTH_POLE);
     197        assertTrue(cs1.hasEqualSemanticAttributes(cs2));
     198        // Min
     199        cs1.setMin(null);
     200        cs2.setMin(null);
     201        assertTrue(cs1.hasEqualSemanticAttributes(cs2));
     202        cs1.setMin(null);
     203        cs2.setMin(LatLon.SOUTH_POLE);
     204        assertFalse(cs1.hasEqualSemanticAttributes(cs2));
     205        cs1.setMin(LatLon.NORTH_POLE);
     206        cs2.setMin(LatLon.SOUTH_POLE);
     207        assertFalse(cs1.hasEqualSemanticAttributes(cs2));
     208        cs1.setMin(LatLon.NORTH_POLE);
     209        cs2.setMin(LatLon.NORTH_POLE);
     210        assertTrue(cs1.hasEqualSemanticAttributes(cs2));
     211        // Open
     212        cs1.setOpen(false);
     213        cs2.setOpen(true);
     214        assertFalse(cs1.hasEqualSemanticAttributes(cs2));
     215        cs1.setOpen(false);
     216        cs2.setOpen(false);
     217        assertTrue(cs1.hasEqualSemanticAttributes(cs2));
     218        // Tags
     219        Map<String, String> tags = new HashMap<>();
     220        tags.put("foo", "bar");
     221        cs2.setKeys(tags);
     222        assertFalse(cs1.hasEqualSemanticAttributes(cs2));
     223        cs1.setKeys(new HashMap<>(tags));
     224        assertTrue(cs1.hasEqualSemanticAttributes(cs2));
     225        // User
     226        cs1.setUser(null);
     227        cs2.setUser(User.createLocalUser("foo"));
     228        assertFalse(cs1.hasEqualSemanticAttributes(cs2));
     229        cs1.setUser(null);
     230        cs2.setUser(null);
     231        assertTrue(cs1.hasEqualSemanticAttributes(cs2));
     232        cs1.setUser(User.createLocalUser("foo"));
     233        cs2.setUser(User.createLocalUser("foo"));
     234        assertTrue(cs1.hasEqualSemanticAttributes(cs2));
     235        // Comment count
     236        cs1.setCommentsCount(1);
     237        cs2.setCommentsCount(2);
     238        assertFalse(cs1.hasEqualSemanticAttributes(cs2));
     239        cs1.setCommentsCount(1);
     240        cs2.setCommentsCount(1);
     241        assertTrue(cs1.hasEqualSemanticAttributes(cs2));
     242    }
     243
     244    /**
     245     * Unit test of methods {@link Changeset#keySet} / {@link Changeset#put} / {@link Changeset#remove} / {@link Changeset#removeAll}.
     246     */
     247    @Test
     248    public void testKeySet() {
     249        Changeset cs = new Changeset();
     250        assertTrue(cs.keySet().isEmpty());
     251        Map<String, String> tags = new HashMap<>();
     252        tags.put("foo", "bar");
     253        cs.setKeys(tags);
     254        Collection<String> set = cs.keySet();
     255        assertEquals(1, set.size());
     256        assertEquals("foo", set.iterator().next());
     257        cs.remove("foo");
     258        assertTrue(cs.keySet().isEmpty());
     259        cs.put("foo", "bar");
     260        cs.put("bar", "foo");
     261        assertEquals(2, cs.keySet().size());
     262        cs.removeAll();
     263        assertTrue(cs.keySet().isEmpty());
     264    }
     265
     266    private static class CsVisitor implements Visitor {
     267
     268        boolean visited;
     269
     270        @Override
     271        public void visit(Node n) {
     272            // Do nothing
     273        }
     274
     275        @Override
     276        public void visit(Way w) {
     277            // Do nothing
     278        }
     279
     280        @Override
     281        public void visit(Relation r) {
     282            // Do nothing
     283        }
     284
     285        @Override
     286        public void visit(Changeset cs) {
     287            visited = true;
     288        }
     289    }
     290
     291    /**
     292     * Unit test of method {@link Changeset#visit}.
     293     */
     294    @Test
     295    public void testVisit() {
     296        CsVisitor v = new CsVisitor();
     297        new Changeset().visit(v);
     298        assertTrue(v.visited);
     299    }
    71300}
Note: See TracChangeset for help on using the changeset viewer.